aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire/pipewire.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-12-07 14:48:42 +0900
committerOphestra <cat@gensokyo.uk>2025-12-07 14:55:56 +0900
commit15c2839a0997dd13e5a41e6a35b656e934f22040 (patch)
tree56e43a1d3bc400dd6e83114b9a3ce02ff8fa61a0 /internal/pipewire/pipewire.go
parentb9b9705b520cd3effaba3dc5e94c83e36f655bc4 (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.go12
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() {