From 0b97afa7ce2bad516c0f17d31f8aee0feda86813 Mon Sep 17 00:00:00 2001 From: Jakob Lechner Date: Tue, 23 May 2023 14:39:31 +0000 Subject: [PATCH] Revert "Split UMC202HD inputs into mono channels" This reverts commit d2b01eaf44f9c6a048d2082db8e4c1b2a28ab608. pipewire-media-session is no longer supported upstream and has been removed --- modules/pipewire.nix | 44 ------------------- .../pulseaudio_mute_indicator/service.py | 20 ++++----- 2 files changed, 10 insertions(+), 54 deletions(-) diff --git a/modules/pipewire.nix b/modules/pipewire.nix index 6e213bd..8c78a7c 100644 --- a/modules/pipewire.nix +++ b/modules/pipewire.nix @@ -1,10 +1,5 @@ { config, lib, pkgs, ... }: -let - defaults = { - media-session = (builtins.fromJSON (builtins.readFile "${pkgs.pipewire-media-session}/nix-support/media-session.conf.json")); - }; -in lib.mkIf config.myConfig.gui.enable { sound.enable = true; hardware.pulseaudio.enable = false; @@ -40,43 +35,4 @@ lib.mkIf config.myConfig.gui.enable { value = "unlimited"; } ]; - - # Split U-PHORIA inputs into mono channels - # https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#behringer-umc404hd-micguitar-virtual-sources - services.pipewire.media-session.config.media-session."context.modules" = defaults.media-session."context.modules" ++ [ - { - name = "libpipewire-module-loopback"; - args = { - "node.name" = "UMC202HD_input1"; - "node.description" = "UMC202HD Input 1"; - "capture.props" = { - "audio.position" = [ "AUX0" ]; - "stream.dont-remix" = true; - "node.target" = "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.pro-input-0"; - "node.passive" = true; - }; - "playback.props" = { - "media.class" = "Audio/Source"; - "audio.position" = [ "MONO" ]; - }; - }; - } - { - name = "libpipewire-module-loopback"; - args = { - "node.name" = "UMC202HD_input2"; - "node.description" = "UMC202HD Input 2"; - "capture.props" = { - "audio.position" = [ "AUX1" ]; - "stream.dont-remix" = true; - "node.target" = "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.pro-input-0"; - "node.passive" = true; - }; - "playback.props" = { - "media.class" = "Audio/Source"; - "audio.position" = [ "MONO" ]; - }; - }; - } - ]; } diff --git a/pkgs/mute-indicator/pulseaudio_mute_indicator/service.py b/pkgs/mute-indicator/pulseaudio_mute_indicator/service.py index cb5feaf..0ef8e51 100644 --- a/pkgs/mute-indicator/pulseaudio_mute_indicator/service.py +++ b/pkgs/mute-indicator/pulseaudio_mute_indicator/service.py @@ -3,25 +3,25 @@ import serial def run(): - source_to_led_mapping = { - "UMC202HD_input1": 0, - "UMC202HD_input2": 1, - } - with pulsectl.Pulse("event-printer") as pulse: def print_events(ev): with pulsectl.Pulse("event-source-info") as pulse2: source = pulse2.source_info(ev.index) - if source.name in source_to_led_mapping.keys(): + if source.name in [ + "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-stereo", + "alsa_input.usb-BEHRINGER_UMC202HD_192k-00.analog-stereo-input", + ]: muted = bool(source.mute) - led = source_to_led_mapping[source.name] with serial.Serial(port="/dev/mute-indicator", baudrate=115200) as ser: if muted: - ser.write(f"L{led}:32,0,0\n".encode()) + ser.write("L0:32,0,0\n".encode()) + ser.write("L1:32,0,0\n".encode()) + ser.write("S\n".encode()) else: - ser.write(f"L{led}:0,32,0\n".encode()) - ser.write("S\n".encode()) + ser.write("L0:0,32,0\n".encode()) + ser.write("L1:0,32,0\n".encode()) + ser.write("S\n".encode()) pulse.event_mask_set("source") pulse.event_callback_set(print_events)