mirror of
https://github.com/jwetzell/osc-go.git
synced 2026-09-10 15:59:28 +00:00
get rid of bytes.Buffer use
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -2,7 +2,6 @@ package osc
|
|||||||
|
|
||||||
// TODO(jwetzell): split things up
|
// TODO(jwetzell): split things up
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -27,39 +26,37 @@ func stringToOSCBytes(rawString string) []byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func int32ToOSCBytes(number int32) ([]byte, error) {
|
func int32ToOSCBytes(number int32) ([]byte, error) {
|
||||||
var buf bytes.Buffer
|
bytes := make([]byte, 4)
|
||||||
err := binary.Write(&buf, binary.BigEndian, number)
|
bytes[0] = byte((number >> 24) & 0xFF)
|
||||||
if err != nil {
|
bytes[1] = byte((number >> 16) & 0xFF)
|
||||||
return nil, err
|
bytes[2] = byte((number >> 8) & 0xFF)
|
||||||
}
|
bytes[3] = byte(number & 0xFF)
|
||||||
return buf.Bytes(), nil
|
return bytes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func int64ToOSCBytes(number int64) ([]byte, error) {
|
func int64ToOSCBytes(number int64) ([]byte, error) {
|
||||||
var buf bytes.Buffer
|
bytes := make([]byte, 8)
|
||||||
err := binary.Write(&buf, binary.BigEndian, number)
|
bytes[0] = byte((number >> 56) & 0xFF)
|
||||||
if err != nil {
|
bytes[1] = byte((number >> 48) & 0xFF)
|
||||||
return nil, err
|
bytes[2] = byte((number >> 40) & 0xFF)
|
||||||
}
|
bytes[3] = byte((number >> 32) & 0xFF)
|
||||||
return buf.Bytes(), nil
|
bytes[4] = byte((number >> 24) & 0xFF)
|
||||||
|
bytes[5] = byte((number >> 16) & 0xFF)
|
||||||
|
bytes[6] = byte((number >> 8) & 0xFF)
|
||||||
|
bytes[7] = byte(number & 0xFF)
|
||||||
|
return bytes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func float32ToOSCBytes(number float32) ([]byte, error) {
|
func float32ToOSCBytes(number float32) ([]byte, error) {
|
||||||
var buf bytes.Buffer
|
bytes := make([]byte, 4)
|
||||||
err := binary.Write(&buf, binary.BigEndian, number)
|
binary.BigEndian.PutUint32(bytes, math.Float32bits(number))
|
||||||
if err != nil {
|
return bytes, nil
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return buf.Bytes(), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func float64ToOSCBytes(number float64) ([]byte, error) {
|
func float64ToOSCBytes(number float64) ([]byte, error) {
|
||||||
var buf bytes.Buffer
|
bytes := make([]byte, 8)
|
||||||
err := binary.Write(&buf, binary.BigEndian, number)
|
binary.BigEndian.PutUint64(bytes, math.Float64bits(number))
|
||||||
if err != nil {
|
return bytes, nil
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return buf.Bytes(), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func byteArrayToOSCBytes(bytes []byte) ([]byte, error) {
|
func byteArrayToOSCBytes(bytes []byte) ([]byte, error) {
|
||||||
@@ -102,7 +99,7 @@ func argsToBuffer(args []OSCArg) ([]byte, error) {
|
|||||||
var argBuffers = []byte{}
|
var argBuffers = []byte{}
|
||||||
|
|
||||||
for _, arg := range args {
|
for _, arg := range args {
|
||||||
switch oscType := arg.Type; oscType {
|
switch arg.Type {
|
||||||
case "s":
|
case "s":
|
||||||
if value, ok := arg.Value.(string); ok {
|
if value, ok := arg.Value.(string); ok {
|
||||||
argBuffers = append(argBuffers, stringToOSCBytes(value)...)
|
argBuffers = append(argBuffers, stringToOSCBytes(value)...)
|
||||||
@@ -243,7 +240,7 @@ func argsToBuffer(args []OSCArg) ([]byte, error) {
|
|||||||
return nil, errors.New("OSC arg had float64 type but non-number value")
|
return nil, errors.New("OSC arg had float64 type but non-number value")
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unsupported OSC argument type: %s", oscType)
|
return nil, fmt.Errorf("unsupported OSC argument type: %s", arg.Type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return argBuffers, nil
|
return argBuffers, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user