From 4fd6d6c037b30b02aff861542721b0cc40f083fe Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sat, 29 Nov 2025 23:23:19 +0900 Subject: internal/pipewire: implement Core::Ping, Core::Pong I could not get the server to produce these events, however I am confident enough with the implementation to do it by hand. Signed-off-by: Ophestra --- internal/pipewire/header_test.go | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'internal/pipewire/header_test.go') diff --git a/internal/pipewire/header_test.go b/internal/pipewire/header_test.go index f0bd20d0..8dc58b94 100644 --- a/internal/pipewire/header_test.go +++ b/internal/pipewire/header_test.go @@ -335,6 +335,56 @@ func TestHeader(t *testing.T) { Opcode: pipewire.PW_CORE_EVENT_DONE, Size: 0x28, Sequence: 44, FileCount: 0, }, nil}, + + /* handmade samples */ + + {"PW_CORE_EVENT_PING", []byte{ + /* Id: */ 0, 0, 0, 0, + /* size: */ 0xed, 0xb, 0, + /* opcode: */ 2, + /* seq: */ 0xff, 0xff, 0, 0, + /* n_fds: */ 0xfe, 0xca, 0, 0, + }, pipewire.Header{ + ID: pipewire.PW_ID_CORE, + Opcode: pipewire.PW_CORE_EVENT_PING, + Size: 0xbed, Sequence: 0xffff, FileCount: 0xcafe, + }, nil}, + + {"PW_CORE_EVENT_ERROR", []byte{ + /* Id: */ 0, 0, 0, 0, + /* size: */ 0xad, 0xb, 0, + /* opcode: */ 3, + /* seq: */ 0xfe, 0xfe, 0, 0, + /* n_fds: */ 0xfe, 0xca, 0, 0, + }, pipewire.Header{ + ID: pipewire.PW_ID_CORE, + Opcode: pipewire.PW_CORE_EVENT_ERROR, + Size: 0xbad, Sequence: 0xfefe, FileCount: 0xcafe, + }, nil}, + + {"PW_CORE_METHOD_PONG", []byte{ + /* Id: */ 0, 0, 0, 0, + /* size: */ 0xed, 0xb, 0, + /* opcode: */ 3, + /* seq: */ 0xff, 0xff, 0, 0, + /* n_fds: */ 0xfe, 0xca, 0, 0, + }, pipewire.Header{ + ID: pipewire.PW_ID_CORE, + Opcode: pipewire.PW_CORE_METHOD_PONG, + Size: 0xbed, Sequence: 0xffff, FileCount: 0xcafe, + }, nil}, + + {"PW_CORE_METHOD_ERROR", []byte{ + /* Id: */ 0, 0, 0, 0, + /* size: */ 0xad, 0xb, 0, + /* opcode: */ 4, + /* seq: */ 0xfe, 0xfe, 0, 0, + /* n_fds: */ 0xfe, 0xca, 0, 0, + }, pipewire.Header{ + ID: pipewire.PW_ID_CORE, + Opcode: pipewire.PW_CORE_METHOD_ERROR, + Size: 0xbad, Sequence: 0xfefe, FileCount: 0xcafe, + }, nil}, }.run(t) t.Run("size range", func(t *testing.T) { -- cgit v1.3.1