mirror of
https://github.com/asticode/go-astiav.git
synced 2025-10-23 08:09:24 +08:00
NewDisplayMatrixFromBytes should return a pointer
This commit is contained in:
@@ -11,13 +11,16 @@ import (
|
|||||||
|
|
||||||
type DisplayMatrix [9]uint32
|
type DisplayMatrix [9]uint32
|
||||||
|
|
||||||
func NewDisplayMatrixFromBytes(b []byte) (m DisplayMatrix, err error) {
|
func NewDisplayMatrixFromBytes(b []byte) (m *DisplayMatrix, err error) {
|
||||||
// Check length
|
// Check length
|
||||||
if len(b) < 36 {
|
if len(b) < 36 {
|
||||||
err = fmt.Errorf("astiav: invalid length %d < 36", len(b))
|
err = fmt.Errorf("astiav: invalid length %d < 36", len(b))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create display matrix
|
||||||
|
m = &DisplayMatrix{}
|
||||||
|
|
||||||
// Loop
|
// Loop
|
||||||
for idx := 0; idx < 9; idx++ {
|
for idx := 0; idx < 9; idx++ {
|
||||||
m[idx] = binary.BigEndian.Uint32(b[idx*4 : (idx+1)*4])
|
m[idx] = binary.BigEndian.Uint32(b[idx*4 : (idx+1)*4])
|
||||||
|
@@ -11,6 +11,6 @@ func TestDisplayMatrix(t *testing.T) {
|
|||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
dm, err := NewDisplayMatrixFromBytes([]byte{0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64})
|
dm, err := NewDisplayMatrixFromBytes([]byte{0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, DisplayMatrix{0x0, 0xffff, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40}, dm)
|
require.Equal(t, DisplayMatrix{0x0, 0xffff, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40}, *dm)
|
||||||
require.Equal(t, float64(-90), dm.Rotation())
|
require.Equal(t, float64(-90), dm.Rotation())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user