diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-12-07 14:48:42 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-12-07 14:55:56 +0900 |
| commit | 15c2839a0997dd13e5a41e6a35b656e934f22040 (patch) | |
| tree | 56e43a1d3bc400dd6e83114b9a3ce02ff8fa61a0 /internal/pipewire/pipewire.go | |
| parent | b9b9705b520cd3effaba3dc5e94c83e36f655bc4 (diff) | |
internal/pipewire: respond to Core::Ping
There is currently no known message that will get the PipeWire server to emit this event. It should be handled regardless.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire/pipewire.go')
| -rw-r--r-- | internal/pipewire/pipewire.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go index d17edf90..59ce7c5e 100644 --- a/internal/pipewire/pipewire.go +++ b/internal/pipewire/pipewire.go @@ -218,6 +218,14 @@ func (ctx *Context) writeMessage(Id Int, v Message) (err error) { return } +// mustWriteMessage calls writeMessage and panics if a non-nil error is returned. +// This must only be called from eventProxy.consume. +func (ctx *Context) mustWriteMessage(Id Int, v Message) { + if err := ctx.writeMessage(Id, v); err != nil { + panic(err) + } +} + // newProxyId returns a newly allocated proxy Id for the specified type. func (ctx *Context) newProxyId(proxy eventProxy, ack bool) Int { newId := ctx.nextId @@ -620,6 +628,10 @@ func (ctx *Context) roundtrip() (err error) { } } +// currentRemoteSeq returns the current remote sequence number. +// This must only be called from eventProxy.consume. +func (ctx *Context) currentRemoteSeq() Int { return ctx.remoteSequence - 1 } + // consume receives messages from the server and processes events. func (ctx *Context) consume(receiveRemaining []byte) (remaining []byte, err error) { defer func() { |
