aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pipewire
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-12-07 17:07:30 +0900
committerOphestra <cat@gensokyo.uk>2025-12-07 17:07:30 +0900
commit8cdd659239654aa2c18e392d5cde3c31da069b98 (patch)
tree421b12085defc241e694fd6f8d4b2579828f8fbc /internal/pipewire
parent15c2839a0997dd13e5a41e6a35b656e934f22040 (diff)
internal/pipewire: seq access method for consume
This improves readability as the offset is not immediately obvious. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pipewire')
-rw-r--r--internal/pipewire/client_test.go3
-rw-r--r--internal/pipewire/core.go2
-rw-r--r--internal/pipewire/core_test.go3
-rw-r--r--internal/pipewire/pipewire.go4
-rw-r--r--internal/pipewire/pipewire_test.go5
5 files changed, 12 insertions, 5 deletions
diff --git a/internal/pipewire/client_test.go b/internal/pipewire/client_test.go
index 9b0879c2..dbae43ab 100644
--- a/internal/pipewire/client_test.go
+++ b/internal/pipewire/client_test.go
@@ -112,7 +112,8 @@ func TestClientInfo(t *testing.T) {
{Key: "settings.check-rate", Value: "false"},
{Key: pipewire.PW_KEY_CORE_VERSION, Value: "1.4.7"},
{Key: pipewire.PW_KEY_ACCESS, Value: "unrestricted"},
- }}, nil},
+ },
+ }, nil},
}.run(t)
}
diff --git a/internal/pipewire/core.go b/internal/pipewire/core.go
index 18d664e2..a6d47256 100644
--- a/internal/pipewire/core.go
+++ b/internal/pipewire/core.go
@@ -634,7 +634,7 @@ func (core *Core) consume(opcode byte, files []int, unmarshal func(v any)) error
case PW_CORE_EVENT_DONE:
var done CoreDone
unmarshal(&done)
- if done.ID == roundtripSyncID && done.Sequence == CoreSyncSequenceOffset+core.ctx.sequence-1 {
+ if done.ID == roundtripSyncID && done.Sequence == CoreSyncSequenceOffset+core.ctx.currentSeq() {
if core.done {
return ErrUnexpectedDone
}
diff --git a/internal/pipewire/core_test.go b/internal/pipewire/core_test.go
index 1df43470..a6b6729a 100644
--- a/internal/pipewire/core_test.go
+++ b/internal/pipewire/core_test.go
@@ -209,7 +209,8 @@ func TestCoreBoundProps(t *testing.T) {
{Key: pipewire.PW_KEY_SEC_PID, Value: "1443"},
{Key: pipewire.PW_KEY_SEC_UID, Value: "1000"},
{Key: pipewire.PW_KEY_SEC_GID, Value: "100"},
- {Key: pipewire.PW_KEY_SEC_SOCKET, Value: "pipewire-0-manager"}},
+ {Key: pipewire.PW_KEY_SEC_SOCKET, Value: "pipewire-0-manager"},
+ },
}, nil},
/* recvmsg 1 */
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go
index 59ce7c5e..db566832 100644
--- a/internal/pipewire/pipewire.go
+++ b/internal/pipewire/pipewire.go
@@ -628,6 +628,10 @@ func (ctx *Context) roundtrip() (err error) {
}
}
+// currentSeq returns the current sequence number.
+// This must only be called from eventProxy.consume.
+func (ctx *Context) currentSeq() Int { return ctx.sequence - 1 }
+
// currentRemoteSeq returns the current remote sequence number.
// This must only be called from eventProxy.consume.
func (ctx *Context) currentRemoteSeq() Int { return ctx.remoteSequence - 1 }
diff --git a/internal/pipewire/pipewire_test.go b/internal/pipewire/pipewire_test.go
index fbe15718..535bac03 100644
--- a/internal/pipewire/pipewire_test.go
+++ b/internal/pipewire/pipewire_test.go
@@ -78,7 +78,7 @@ func TestContext(t *testing.T) {
}
wantCoreInfo0 := pipewire.CoreInfo{
- ID: 0,
+ ID: pipewire.PW_ID_CORE,
Cookie: -2069267610,
UserName: "alice",
HostName: "nixos",
@@ -116,7 +116,8 @@ func TestContext(t *testing.T) {
{Key: "settings.check-quantum", Value: "false"},
{Key: "settings.check-rate", Value: "false"},
{Key: pipewire.PW_KEY_OBJECT_ID, Value: "0"},
- {Key: pipewire.PW_KEY_OBJECT_SERIAL, Value: "0"}},
+ {Key: pipewire.PW_KEY_OBJECT_SERIAL, Value: "0"},
+ },
}
wantClient0 := pipewire.Client{