Skip to content

Commit

Permalink
Parse errors in get methods as well
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacalz committed Dec 11, 2024
1 parent 205fe48 commit 64a40e4
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 13 deletions.
4 changes: 4 additions & 0 deletions remote/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ func (c *Control) parseErrorResponse() error {
return err
}

return parseErrorFromBuffer(buf[:])
}

func parseErrorFromBuffer(buf []byte) error {
if buf[1] != 'e' {
return nil
}
Expand Down
5 changes: 5 additions & 0 deletions remote/power.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,10 @@ func (c *Control) GetPower() (bool, error) {
return false, err
}

err = parseErrorFromBuffer(buf[:])
if err != nil {
return false, err
}

return buf[3] == '1', nil
}
13 changes: 9 additions & 4 deletions remote/reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,23 @@ func (c *Control) GetResetDelay() (uint8, bool, error) {
return 0, false, err
}

resp := [7]byte{}
n, err := c.conn.Read(resp[:])
buf := [7]byte{}
n, err := c.conn.Read(buf[:])
if err != nil {
return 0, false, err
}

err = parseErrorFromBuffer(buf[:])
if err != nil {
return 0, false, err
}

// Check if reset is stopped or not enabled.
if n >= 4 && resp[3] == '~' {
if n >= 4 && buf[3] == '~' {
return 0, true, nil
}

number := resp[3 : n-1]
number := buf[3 : n-1]
delay, err := strconv.ParseUint(string(number), 10, 8)
return uint8(delay), false, err
}
11 changes: 8 additions & 3 deletions remote/source.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,18 @@ func (c *Control) GetSourceNumber() (uint, error) {
return 0, err
}

resp := [6]byte{}
n, err := c.conn.Read(resp[:])
buf := [6]byte{}
n, err := c.conn.Read(buf[:])
if err != nil {
return 0, err
}

input := resp[3 : n-1]
err = parseErrorFromBuffer(buf[:])
if err != nil {
return 0, err
}

input := buf[3 : n-1]
number, err := strconv.ParseUint(string(input), 10, 8)
if err != nil {
return 0, err
Expand Down
22 changes: 16 additions & 6 deletions remote/volume.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,18 @@ func (c *Control) GetVolume() (uint, error) {
return 0, err
}

resp := [7]byte{}
n, err := c.conn.Read(resp[:])
buf := [7]byte{}
n, err := c.conn.Read(buf[:])
if err != nil {
return 0, err
}

volume := resp[3 : n-1]
err = parseErrorFromBuffer(buf[:])
if err != nil {
return 0, err
}

volume := buf[3 : n-1]
percentage, err := strconv.ParseUint(string(volume), 10, 8)
return uint(percentage), err
}
Expand All @@ -83,11 +88,16 @@ func (c *Control) GetVolumeMute() (bool, error) {
return false, err
}

resp := [5]byte{}
_, err = c.conn.Read(resp[:])
buf := [5]byte{}
_, err = c.conn.Read(buf[:])
if err != nil {
return false, err
}

err = parseErrorFromBuffer(buf[:])
if err != nil {
return false, err
}

return resp[3] == '1', err
return buf[3] == '1', err
}

0 comments on commit 64a40e4

Please sign in to comment.