upgrade osc library and switch to pointers

This commit is contained in:
Joel Wetzell
2026-03-02 21:17:49 -06:00
parent 5cb2f845a1
commit a275cd2b78
6 changed files with 19 additions and 13 deletions

2
go.mod
View File

@@ -10,7 +10,7 @@ require (
github.com/extism/go-sdk v1.7.1
github.com/jwetzell/artnet-go v0.2.1
github.com/jwetzell/free-d-go v0.1.0
github.com/jwetzell/osc-go v0.1.0
github.com/jwetzell/osc-go v0.2.0
github.com/jwetzell/psn-go v0.3.0
github.com/nats-io/nats-server/v2 v2.12.4
github.com/nats-io/nats.go v1.49.0

4
go.sum
View File

@@ -61,8 +61,8 @@ github.com/jwetzell/artnet-go v0.2.1 h1:iYTKWcwYrF5kBkYfkw2UbWvoueeA23iKEn7fR27m
github.com/jwetzell/artnet-go v0.2.1/go.mod h1:gli97Z32a0kMkZ6taoTiK7/lqHcF/dhiGjGJdx/PxqA=
github.com/jwetzell/free-d-go v0.1.0 h1:xHt6dvyit98X+OC3jVzV0aLidxbyzi3vI9QiYkteEtA=
github.com/jwetzell/free-d-go v0.1.0/go.mod h1:KmrkooRARRaxJTBSPvwt/6IMAIaHH1R8bSA8cwbbELw=
github.com/jwetzell/osc-go v0.1.0 h1:EXxup5VWBErHot2Ri4MFToPf6KCzLDTbCt2x6GLfw8I=
github.com/jwetzell/osc-go v0.1.0/go.mod h1:xLz0jTwebSxtx1TkKN1YVdeRqvpFNweDhTut5TE393A=
github.com/jwetzell/osc-go v0.2.0 h1:4as+BYCeZhEddFczGveP5yZZxvY728Uavz+ZSLZfOII=
github.com/jwetzell/osc-go v0.2.0/go.mod h1:D3ZIXYB12bt4S35lKFUqgCFbF1Y+9Ld0sOhHA9mGZZM=
github.com/jwetzell/psn-go v0.3.0 h1:WVpCEmExYE8a+I5hQak5jNJJp2x35VdGX/VuMUKPmhY=
github.com/jwetzell/psn-go v0.3.0/go.mod h1:bcEAeti4sQM375buujb3mIfmUstD4Aby18gq3ENb6+o=
github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw=

View File

@@ -3,6 +3,7 @@ package processor
import (
"context"
"errors"
"fmt"
osc "github.com/jwetzell/osc-go"
"github.com/jwetzell/showbridge-go/internal/config"
@@ -29,7 +30,7 @@ func (omd *OSCMessageDecode) Process(ctx context.Context, payload any) (any, err
message, err := osc.MessageFromBytes(payloadBytes)
if err != nil {
return nil, err
return nil, fmt.Errorf("osc.message.decode processor failed to decode OSC message: %w", err)
}
return message, nil
}

View File

@@ -13,10 +13,10 @@ type OSCMessageEncode struct {
}
func (ome *OSCMessageEncode) Process(ctx context.Context, payload any) (any, error) {
payloadMessage, ok := GetAnyAs[osc.OSCMessage](payload)
payloadMessage, ok := GetAnyAs[*osc.OSCMessage](payload)
if !ok {
return nil, errors.New("osc.message.encode processor only accepts an OSCMessage")
return nil, errors.New("osc.message.encode processor only accepts an *OSCMessage")
}
bytes := payloadMessage.ToBytes()

View File

@@ -33,12 +33,12 @@ func TestGoodOSCMessageDecode(t *testing.T) {
tests := []struct {
name string
payload []byte
expected osc.OSCMessage
expected *osc.OSCMessage
}{
{
name: "basic OSC message",
payload: []byte{47, 116, 101, 115, 116, 0, 0, 0, 44, 0, 0, 0},
expected: osc.OSCMessage{
expected: &osc.OSCMessage{
Address: "/test",
Args: []osc.OSCArg{},
},
@@ -46,7 +46,7 @@ func TestGoodOSCMessageDecode(t *testing.T) {
{
name: "basic OSC message with argument",
payload: []byte{47, 116, 101, 115, 116, 0, 0, 0, 44, 105, 0, 0, 0, 0, 0, 42},
expected: osc.OSCMessage{
expected: &osc.OSCMessage{
Address: "/test",
Args: []osc.OSCArg{
{
@@ -66,7 +66,7 @@ func TestGoodOSCMessageDecode(t *testing.T) {
t.Fatalf("osc.message.decode processing failed: %s", err)
}
gotMessage, ok := got.(osc.OSCMessage)
gotMessage, ok := got.(*osc.OSCMessage)
if !ok {
t.Fatalf("osc.message.decode returned a %T payload: %s", got, got)
}
@@ -100,6 +100,11 @@ func TestBadOSCMessageDecode(t *testing.T) {
payload: []byte{48, 116, 101, 115, 116, 0, 0, 0, 44, 105, 0, 0, 0, 0, 0, 42},
errorString: "osc.message.decode processor needs an OSC looking []byte",
},
{
name: "invalid OSC payload",
payload: []byte{47, 116, 101, 115, 116, 0},
errorString: "osc.message.decode processor failed to decode OSC message: string data is not properly padded",
},
}
for _, test := range tests {

View File

@@ -37,14 +37,14 @@ func TestGoodOSCMessageEncode(t *testing.T) {
}{
{
name: "basic OSC message",
payload: osc.OSCMessage{
payload: &osc.OSCMessage{
Address: "/test",
},
expected: []byte{47, 116, 101, 115, 116, 0, 0, 0, 44, 0, 0, 0},
},
{
name: "basic OSC message with argument",
payload: osc.OSCMessage{
payload: &osc.OSCMessage{
Address: "/test",
Args: []osc.OSCArg{
{
@@ -86,7 +86,7 @@ func TestBadOSCMessageEncode(t *testing.T) {
{
name: "non-osc message input",
payload: "test",
errorString: "osc.message.encode processor only accepts an OSCMessage",
errorString: "osc.message.encode processor only accepts an *OSCMessage",
},
}