diff --git a/decoder.go b/decoder.go index 59de0a8..56c0e62 100644 --- a/decoder.go +++ b/decoder.go @@ -1,8 +1,6 @@ package psn import ( - "log/slog" - "github.com/jwetzell/psn-go/internal/decoders" ) @@ -52,19 +50,17 @@ func (d *Decoder) updateData(framePackets []decoders.DataPacketChunk) { } } -func (d *Decoder) Decode(bytes []byte) { +func (d *Decoder) Decode(bytes []byte) error { chunk, err := decoders.DecodeChunk(bytes) if err != nil { - slog.Error("error decoding", "err", err) - return + return err } if chunk.Header.Id == 0x6756 { infoPacket, err := decoders.DecodeInfoPacketChunk(bytes) if err != nil { - slog.Error("error decoding", "err", err) - return + return err } currentInfoPacketHeader := infoPacket.Data.PacketHeader @@ -82,8 +78,7 @@ func (d *Decoder) Decode(bytes []byte) { } else if chunk.Header.Id == 0x6755 { dataPacket, err := decoders.DecodeDataPacketChunk(bytes) if err != nil { - slog.Error("error decoding", "err", err) - return + return err } currentInfoPacketHeader := dataPacket.Data.PacketHeader @@ -99,4 +94,5 @@ func (d *Decoder) Decode(bytes []byte) { delete(d.dataPacketFrames, currentInfoPacketHeader.Data.FrameId) } } + return nil } diff --git a/examples/decode/main.go b/examples/decode/main.go index 39b55d2..424bc14 100644 --- a/examples/decode/main.go +++ b/examples/decode/main.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "log/slog" "github.com/jwetzell/psn-go" ) @@ -22,8 +23,14 @@ func main() { 0x80, 0x3f, 0x00, 0x00, 0x80, 0x3f, } - decoder.Decode(infoPacketBytes) - decoder.Decode(dataPacketBytes) + err := decoder.Decode(infoPacketBytes) + if err != nil { + slog.Error("error decoding", "err", err) + } + err = decoder.Decode(dataPacketBytes) + if err != nil { + slog.Error("error decoding", "err", err) + } fmt.Printf("decoded: %+v\n", decoder.SystemName) diff --git a/examples/psn_client/main.go b/examples/psn_client/main.go index 406d48d..fe31737 100644 --- a/examples/psn_client/main.go +++ b/examples/psn_client/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "log/slog" "net" "time" @@ -35,7 +36,10 @@ func main() { } if length > 0 { - decoder.Decode(buffer) + err := decoder.Decode(buffer) + if err != nil { + slog.Error("error decoding", "err", err) + } } if time.Now().UnixMilli()-lastPrintMillis > 1000 {