summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexandre Macabies <web+oss@zopieux.com>2021-03-25 03:55:46 +0100
committerAlexandre Macabies <web+oss@zopieux.com>2021-03-25 04:05:50 +0100
commitf5b0542cb1c1b7a98417b902756848bc9ba51f7e (patch)
tree808d57def93cf1ada641d83d3ef9d6714da9b756
parent77cf1c3445481e1563b9da5498356dcf7d8bf1cf (diff)
downloadnixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar.gz
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar.bz2
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar.lz
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar.xz
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.tar.zst
nixpkgs-f5b0542cb1c1b7a98417b902756848bc9ba51f7e.zip
nixos/snapserver: add support for meta stream type introduced in 0.23.0
-rw-r--r--nixos/modules/services/audio/snapserver.nix17
-rw-r--r--nixos/tests/snapcast.nix4
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 <literal>pipe</literal> or <literal>file</literal>, the path to the pipe or file.
+                For type <literal>librespot</literal>, <literal>airplay</literal> or <literal>process</literal>, the path to the corresponding binary.
+                For type <literal>tcp</literal>, the <literal>host:port</literal> address to connect to or listen on.
+                For type <literal>meta</literal>, a list of stream names in the form <literal>/one/two/...</literal>. Don't forget the leading slash.
+                For type <literal>alsa</literal>, 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";
+          };
         };
       };
     };