mirror of
https://github.com/jwetzell/osc-go.git
synced 2026-08-21 06:18:59 +00:00
split message functions out to separate file
This commit is contained in:
@@ -164,26 +164,6 @@ func argsToBuffer(args []OSCArg) []byte {
|
||||
return argBuffers
|
||||
}
|
||||
|
||||
func ToBytes(message OSCMessage) []byte {
|
||||
//TODO(jwetzell): add error handling
|
||||
oscBuffer := []byte{}
|
||||
|
||||
oscBuffer = append(oscBuffer, stringToOSCBytes(message.Address)...)
|
||||
|
||||
var sb strings.Builder
|
||||
|
||||
sb.WriteString(",")
|
||||
|
||||
for _, arg := range message.Args {
|
||||
sb.WriteString(arg.Type)
|
||||
}
|
||||
|
||||
oscBuffer = append(oscBuffer, stringToOSCBytes(sb.String())...)
|
||||
oscBuffer = append(oscBuffer, argsToBuffer(message.Args)...)
|
||||
|
||||
return oscBuffer
|
||||
}
|
||||
|
||||
func readOSCString(bytes []byte) (string, []byte) {
|
||||
//TODO(jwetzell): add error handling
|
||||
oscString := ""
|
||||
@@ -350,32 +330,3 @@ func readOSCArg(bytes []byte, oscType string) (OSCArg, []byte, error) {
|
||||
}
|
||||
return oscArg, remainingBytes, readArgError
|
||||
}
|
||||
|
||||
func FromBytes(bytes []byte) (OSCMessage, error) {
|
||||
//TODO(jwetzell): add Message and Bundle support
|
||||
address, typeAndArgBytes := readOSCString(bytes)
|
||||
|
||||
oscMessage := OSCMessage{
|
||||
Address: address,
|
||||
Args: []OSCArg{},
|
||||
}
|
||||
|
||||
typeString, argBytes := readOSCString(typeAndArgBytes)
|
||||
|
||||
for index, oscType := range typeString {
|
||||
if index == 0 {
|
||||
if oscType != ',' {
|
||||
return OSCMessage{}, errors.New("type string is malformed")
|
||||
}
|
||||
} else {
|
||||
oscArg, remainingBytes, error := readOSCArg(argBytes, string(oscType))
|
||||
if error != nil {
|
||||
return oscMessage, error
|
||||
}
|
||||
argBytes = remainingBytes
|
||||
oscMessage.Args = append(oscMessage.Args, oscArg)
|
||||
}
|
||||
}
|
||||
|
||||
return oscMessage, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user