From f5b0542cb1c1b7a98417b902756848bc9ba51f7e Mon Sep 17 00:00:00 2001 From: Alexandre Macabies Date: Thu, 25 Mar 2021 03:55:46 +0100 Subject: nixos/snapserver: add support for meta stream type introduced in 0.23.0 --- nixos/modules/services/audio/snapserver.nix | 17 +++++++++++++---- nixos/tests/snapcast.nix | 4 ++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix index a261b876078..f96b5f3e194 100644 --- a/nixos/modules/services/audio/snapserver.nix +++ b/nixos/modules/services/audio/snapserver.nix @@ -65,7 +65,7 @@ let in { imports = [ - (mkRenamedOptionModule [ "services" "snapserver" "controlPort"] [ "services" "snapserver" "tcp" "port" ]) + (mkRenamedOptionModule [ "services" "snapserver" "controlPort" ] [ "services" "snapserver" "tcp" "port" ]) ]; ###### interface @@ -200,12 +200,21 @@ in { location = mkOption { type = types.oneOf [ types.path types.str ]; description = '' - The location of the pipe, file, Librespot/Airplay/process binary, or a TCP address. - Use an empty string for alsa. + For type pipe or file, the path to the pipe or file. + For type librespot, airplay or process, the path to the corresponding binary. + For type tcp, the host:port address to connect to or listen on. + For type meta, a list of stream names in the form /one/two/.... Don't forget the leading slash. + For type alsa, use an empty string. + ''; + example = literalExample '' + "/path/to/pipe" + "/path/to/librespot" + "192.168.1.2:4444" + "/MyTCP/Spotify/MyPipe" ''; }; type = mkOption { - type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" ]; + type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" "meta" ]; default = "pipe"; description = '' The type of input stream. diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix index 2fef6362514..ef35d586c9c 100644 --- a/nixos/tests/snapcast.nix +++ b/nixos/tests/snapcast.nix @@ -34,6 +34,10 @@ in { type = "tcp"; location = "127.0.0.1:${toString tcpStreamPort}"; }; + meta = { + type = "meta"; + location = "/mpd/bluetooth/tcp"; + }; }; }; }; -- cgit 1.4.1