Skip to content

Graph refactor - #17

Merged
Agash merged 77 commits into
mainfrom
graph-refactor
Sep 23, 2026
Merged

Agash merged 77 commits into
mainfrom
graph-refactor

Conversation

@Agash

@Agash Agash commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Replaces the stream-centric API with a registry-backed graph and splits media out into its own package.

  • PipeWire.NET: immutable snapshot registry covering nodes, ports, links, devices, clients, modules, factories and metadata, with link creation and exports.
  • PipeWire.NET.Media: new package for streams, frames and device negotiation.
  • Bindings regenerated for 1.6.8, now covering the full SPA and PipeWire surface, with constants generated from the headers.
  • Connecting over an existing socket fd (portal OpenPipeWireRemote).
  • Refuses to load a libpipewire older than the bindings.
  • Native lifetime, teardown and callback containment reworked; pod codec hardened.
  • Tests against a real daemon and against pw-dump/pw-cli, gated in CI.

Includes #7 (ports and links) and #8 (socket fd).

Breaking: types moved into per-layer namespaces, media moved to PipeWire.NET.Media, and stream timing members renamed.

Kaleidox and others added 30 commits August 29, 2026 19:03
…d ports, as well from node to its ports and links
i keep forgetting this smh
All eleven object kinds are modelled. Node, device, client and metadata
gain control; metadata stores, profiler reports and security contexts
gain the operations their interfaces exist for.
Listener memory now belongs to the handle that owns the native object,
so it is freed after destruction rather than racing it. Proxies are
referenced across calls, since destroying one clears its pointer before
it takes the loop lock. Core results are checked, and failures carry the
operation, object and errno.
Agash added 27 commits September 7, 2026 21:47
A non-listening descriptor is refused before the daemon can spin on it,
and both fd entry points take any SafeHandle rather than SafeFileHandle.
Generated constants now split per library.
Public enums moved beside their types.
Dependabot bumped one unconditional entry on main.
A stable net10 must not take a preview package.
@Agash
Agash merged commit 906b45c into main Sep 23, 2026
14 checks passed
@Agash
Agash deleted the graph-refactor branch September 23, 2026 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants