diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-11-25 04:16:11 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-11-25 04:16:11 +0900 |
| commit | 88d3e464136db5192e311e4be077aa3db218e5f2 (patch) | |
| tree | d7e6f5155dd66a7b752456d213f92036a486eb3e /internal/pipewire/client.go | |
| parent | e51e81bb22a85f0324a80a32bb2b10f3a8616e17 (diff) | |
internal/pipewire: implement Client::UpdateProperties
This is the second message on the captured sample.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire/client.go')
| -rw-r--r-- | internal/pipewire/client.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/pipewire/client.go b/internal/pipewire/client.go new file mode 100644 index 00000000..4480dc8e --- /dev/null +++ b/internal/pipewire/client.go @@ -0,0 +1,51 @@ +package pipewire + +/* pipewire/client.h */ + +const ( + PW_TYPE_INTERFACE_Client = PW_TYPE_INFO_INTERFACE_BASE + "Client" + PW_CLIENT_PERM_MASK = PW_PERM_RWXM + PW_VERSION_CLIENT = 3 + + PW_ID_CLIENT = 1 +) + +const ( + PW_CLIENT_CHANGE_MASK_PROPS = 1 << iota + + PW_CLIENT_CHANGE_MASK_ALL = 1<<iota - 1 +) + +const ( + PW_CLIENT_EVENT_INFO = iota + PW_CLIENT_EVENT_PERMISSIONS + PW_CLIENT_EVENT_NUM + + PW_VERSION_CLIENT_EVENTS = 0 +) + +const ( + PW_CLIENT_METHOD_ADD_LISTENER = iota + PW_CLIENT_METHOD_ERROR + PW_CLIENT_METHOD_UPDATE_PROPERTIES + PW_CLIENT_METHOD_GET_PERMISSIONS + PW_CLIENT_METHOD_UPDATE_PERMISSIONS + PW_CLIENT_METHOD_NUM + + PW_VERSION_CLIENT_METHODS = 0 +) + +// ClientUpdateProperties is used to update the properties of a client. +type ClientUpdateProperties struct { + // Props are properties to update on the client. + Props *SPADict +} + +// MarshalBinary satisfies [encoding.BinaryMarshaler] via [Marshal]. +func (c *ClientUpdateProperties) MarshalBinary() ([]byte, error) { return Marshal(c) } + +// UnmarshalBinary satisfies [encoding.BinaryUnmarshaler] via [Unmarshal]. +func (c *ClientUpdateProperties) UnmarshalBinary(data []byte) error { + _, err := Unmarshal(data, c) + return err +} |
