diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix index a261b8760780..f96b5f3e1942 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 2fef63625140..ef35d586c9c8 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"; + }; }; }; };