<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hakurei/internal/pipewire/core_test.go, branch develop</title>
<subtitle>low-level userspace tooling for Rosa OS</subtitle>
<id>http://src.rosa.moe/hakurei/atom/internal/pipewire/core_test.go?h=develop</id>
<link rel='self' href='http://src.rosa.moe/hakurei/atom/internal/pipewire/core_test.go?h=develop'/>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/'/>
<updated>2025-12-14T00:20:58Z</updated>
<entry>
<title>internal/pipewire: implement Core::Destroy</title>
<updated>2025-12-14T00:20:58Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-14T00:20:58Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=b0f2ab6fffd48580d758de80165f8d97438b4066'/>
<id>urn:sha1:b0f2ab6fffd48580d758de80165f8d97438b4066</id>
<content type='text'>
This change also implements pending destructible check on Sync. Destruction method should always be implemented as a wrapper of destructible.destroy.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: do not emit None for spa_dict</title>
<updated>2025-12-14T00:06:44Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-14T00:06:44Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=00a5bdf006ba800e0797ff4c2b732e5df4fa28ff'/>
<id>urn:sha1:00a5bdf006ba800e0797ff4c2b732e5df4fa28ff</id>
<content type='text'>
Turns out the PipeWire server does not expect a value of type None here at all.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: implement Core::CreateObject</title>
<updated>2025-12-13T23:10:57Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-13T23:10:57Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=a27dfdc058caf4ca0578a7cf98282c1998c94e6b'/>
<id>urn:sha1:a27dfdc058caf4ca0578a7cf98282c1998c94e6b</id>
<content type='text'>
Nothing uses this right now, this would have to be called by wrapper methods on Registry that would search the objects

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: implement Core::RemoveId</title>
<updated>2025-12-13T12:50:32Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-13T12:49:28Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=b5999b88140eb437e87580848513dc1e74bc190b'/>
<id>urn:sha1:b5999b88140eb437e87580848513dc1e74bc190b</id>
<content type='text'>
This is emitted by the server when a proxy id is removed for any reason. Currently, the only path for this to be emitted is when a global object is destroyed while some proxy is still bound to it.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: implement Registry::Destroy</title>
<updated>2025-12-09T16:25:30Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-09T16:25:30Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=0e2fb1788f48540fd7a860b8c571e3a8c1cae756'/>
<id>urn:sha1:0e2fb1788f48540fd7a860b8c571e3a8c1cae756</id>
<content type='text'>
This requires error handling infrastructure in Core that does not yet exist, so it is not exported for now. It has been manually tested via linkname against PipeWire.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: implement Registry::GlobalRemove</title>
<updated>2025-12-09T16:00:03Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-09T15:59:01Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=d8417e292762eebbbe7203aa98eb34eb5c34434e'/>
<id>urn:sha1:d8417e292762eebbbe7203aa98eb34eb5c34434e</id>
<content type='text'>
This is emitted by PipeWire when a global object disappears, because PipeWire insists that all clients that had called Core::GetRegistry must constantly sync its local registry state with the remote.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: seq access method for consume</title>
<updated>2025-12-07T08:07:30Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-07T08:07:30Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=8cdd659239654aa2c18e392d5cde3c31da069b98'/>
<id>urn:sha1:8cdd659239654aa2c18e392d5cde3c31da069b98</id>
<content type='text'>
This improves readability as the offset is not immediately obvious.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: constants from pipewire/keys.h</title>
<updated>2025-12-04T18:27:30Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-04T18:27:22Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=d5509cc6e54282f048389d8dcfd731fa5a4f3b09'/>
<id>urn:sha1:d5509cc6e54282f048389d8dcfd731fa5a4f3b09</id>
<content type='text'>
These are PipeWire spa_dict keys. Interestingly many keys in the sample are undefined and appear as magic strings in upstream source code.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: use type name in error strings</title>
<updated>2025-12-03T17:29:27Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-03T17:27:45Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=69b1131d6622108f37c85014035f71cf4f2986e5'/>
<id>urn:sha1:69b1131d6622108f37c85014035f71cf4f2986e5</id>
<content type='text'>
This provides more useful messages for protocol errors.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/pipewire: implement client context</title>
<updated>2025-12-01T21:03:21Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-12-01T21:03:21Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=af741f20a003d48863eb5e9f7cf71052abd4116d'/>
<id>urn:sha1:af741f20a003d48863eb5e9f7cf71052abd4116d</id>
<content type='text'>
This consumes the entire sample, is validated to send identical messages and correctly handle received messages.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
</feed>
