refactor: simplifier AudioBridge, filtrer bridge dans PWA, option aucune sortie

- AudioBridge: retire GroupAudioRouter, LiveKitClient, routing per-group
- AudioBridgeManager: génère tokens uniquement pour server_audio_users
- ServerAudioUser: outputChannel null = pas d'émission outputReady
- PWA useLiveKit: filtre les participants role=bridge de la liste
- Electron UI: page Routing sans matrices, noms canaux + server audio users
- config.yaml: nettoyé (pas de section routing)
This commit is contained in:
2026-07-03 14:55:55 +02:00
parent bf960f49bb
commit 06cb6a7dd1
12 changed files with 397 additions and 731 deletions
+12 -45
View File
@@ -6,55 +6,22 @@ audio:
jitterBufferMs: 40
device:
inputDeviceId: Loopback Audio 4
outputDeviceId: Haut-parleurs MacBook Pro
outputDeviceId: Périphérique agrégé
sampleRate: 48000
routing:
inputToGroup:
"0":
- default
"1": []
"2": []
"4":
- technique
"5":
- technique
groupToOutput:
technique:
- "1"
production:
- "0"
- "1"
default:
- "0"
gains: {}
channelNames:
inputs:
"0": Mac
"1": Talkback FOH
"2": Retour Console
"3": Liaison Scène
"4": Monitor Mix
"5": Spare 1
"0": Loopback L
"1": Loopback R
outputs:
"0": L
"1": R
"2": Talkback Console
# Utilisateurs audio gérés côté serveur.
# Chaque entrée crée un participant LiveKit indépendant avec un canal physique
# d'entrée (microphone/ligne) et un canal physique de sortie dédié (mix-minus naturel).
#
# Exemple (décommenter et adapter) :
# server_audio_users:
# - name: foh
# group: default # ID du groupe LiveKit (room) à rejoindre
# input_channel: 1 # Index canal physique d'entrée (depuis inputDeviceId)
# output_channel: 2 # Index canal physique de sortie (vers outputDeviceId)
# - name: returns
# group: default
# input_channel: 2
# output_channel: 3
server_audio_users: []
"0": Casque L
"1": Casque R
"2": Mac L
"3": Mac R
server_audio_users:
- name: Utilisateur Serveur
group: default
input_channel: 0
output_channel: 0
groups:
- name: Default
audioBitrate: 96