diff --git a/display_matrix.go b/display_matrix.go index 0d00248..6c6c068 100644 --- a/display_matrix.go +++ b/display_matrix.go @@ -11,13 +11,16 @@ import ( type DisplayMatrix [9]uint32 -func NewDisplayMatrixFromBytes(b []byte) (m DisplayMatrix, err error) { +func NewDisplayMatrixFromBytes(b []byte) (m *DisplayMatrix, err error) { // Check length if len(b) < 36 { err = fmt.Errorf("astiav: invalid length %d < 36", len(b)) return } + // Create display matrix + m = &DisplayMatrix{} + // Loop for idx := 0; idx < 9; idx++ { m[idx] = binary.BigEndian.Uint32(b[idx*4 : (idx+1)*4]) diff --git a/display_matrix_test.go b/display_matrix_test.go index 6286cc8..6c357ee 100644 --- a/display_matrix_test.go +++ b/display_matrix_test.go @@ -11,6 +11,6 @@ func TestDisplayMatrix(t *testing.T) { 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}) 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()) }