aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-11-25 15:05:37 +0900
committerOphestra <cat@gensokyo.uk>2025-11-25 15:05:37 +0900
commit463f8836e6ec44f73d72bc984240f2e179b3e5c1 (patch)
treea82e632c056d3be36cb9c79123dcc2577ce8ddf3 /internal/pipewire
parent2e465c94da7286a6f90dbcef032451ff0ae91deb (diff)
internal/pipewire: implement Long type
Thankfully no special case here. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire')
-rw-r--r--internal/pipewire/pod.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/internal/pipewire/pod.go b/internal/pipewire/pod.go
index 793a102c..e2e8b37a 100644
--- a/internal/pipewire/pod.go
+++ b/internal/pipewire/pod.go
@@ -143,6 +143,11 @@ func marshalValueAppendRaw(data []byte, v reflect.Value) ([]byte, error) {
data = binary.NativeEndian.AppendUint32(data, Word(v.Int()))
return data, nil
+ case reflect.Int64:
+ data = binary.NativeEndian.AppendUint32(data, SPA_TYPE_Long)
+ data = binary.NativeEndian.AppendUint64(data, uint64(v.Int()))
+ return data, nil
+
case reflect.Struct:
data = binary.NativeEndian.AppendUint32(data, SPA_TYPE_Struct)
var err error
@@ -270,6 +275,14 @@ func unmarshalValue(data []byte, v reflect.Value, wireSizeP *Word) error {
v.SetInt(int64(binary.NativeEndian.Uint32(data)))
return nil
+ case reflect.Int64:
+ *wireSizeP = 8
+ if err := unmarshalCheckTypeBounds(&data, SPA_TYPE_Long, wireSizeP); err != nil {
+ return err
+ }
+ v.SetInt(int64(binary.NativeEndian.Uint64(data)))
+ return nil
+
case reflect.Struct:
*wireSizeP = 0
if err := unmarshalCheckTypeBounds(&data, SPA_TYPE_Struct, wireSizeP); err != nil {