From 9dc685acdaa56106ea24d0815864b310d87a1cd7 Mon Sep 17 00:00:00 2001 From: joren Date: Sun, 29 Mar 2026 23:55:19 +0200 Subject: [PATCH] feat: pactl-based module loading, more device types Backend: - Switched null-sink and loopback to use pactl (works on all systems) - Generic POST /api/load-module {module, args} for any pactl module - Fixed SVG toolbar click issue (z-index layering) Frontend: - + Add Device dropdown now includes: - Null Sink (virtual audio output) - Loopback Device (paired input+output) - TCP Network Server (module-native-protocol-tcp) - TCP Tunnel Sink - TCP Tunnel Source - Dropdown header and section separators - Fixed canvas z-index so toolbar is clickable --- frontend/src/components/GraphCanvas.svelte | 14 ++- frontend/src/lib/stores.ts | 19 ++- src/web_server.cpp | 127 +++++++++++++-------- 3 files changed, 110 insertions(+), 50 deletions(-) diff --git a/frontend/src/components/GraphCanvas.svelte b/frontend/src/components/GraphCanvas.svelte index 7d33f9d..d5ce99c 100644 --- a/frontend/src/components/GraphCanvas.svelte +++ b/frontend/src/components/GraphCanvas.svelte @@ -12,7 +12,7 @@ setAutoPin, setAutoDisconnect, saveProfile, loadProfile, deleteProfile, setNodeVolume, setNodeMute, - createNullSink, createLoopback, + createNullSink, createLoopback, loadModule, } from '../lib/stores'; import type { Node, Port, Link } from '../lib/types'; @@ -423,8 +423,13 @@ {#if showVirtualMenu}
+
Add Virtual Device
+
+ + +
{/if} @@ -693,7 +698,7 @@