diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-11-25 15:05:37 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-11-25 15:05:37 +0900 |
| commit | 463f8836e6ec44f73d72bc984240f2e179b3e5c1 (patch) | |
| tree | a82e632c056d3be36cb9c79123dcc2577ce8ddf3 /internal/pipewire | |
| parent | 2e465c94da7286a6f90dbcef032451ff0ae91deb (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.go | 13 |
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 { |
