diff options
Diffstat (limited to 'custom')
| m--------- | custom/trivmix | 0 | ||||
| -rw-r--r-- | custom/trivmix-service.nix | 17 |
2 files changed, 16 insertions, 1 deletions
diff --git a/custom/trivmix b/custom/trivmix | |||
| Subproject 31a88f4dd0800caeeb56d785b1876a9c2b88fb9 | Subproject 72dfd7bdb13e71c04604c0458582960259ec8fb | ||
diff --git a/custom/trivmix-service.nix b/custom/trivmix-service.nix index 9ebf02f1..f2d549fe 100644 --- a/custom/trivmix-service.nix +++ b/custom/trivmix-service.nix | |||
| @@ -39,6 +39,18 @@ let | |||
| 39 | description = "Volumes of mixers that share a group name are synchronised"; | 39 | description = "Volumes of mixers that share a group name are synchronised"; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | balance = mkOption { | ||
| 43 | type = types.nullOr types.str; | ||
| 44 | default = null; | ||
| 45 | description = "Volumes of mixers are multiplied with their balances, this is the name of the file that contains the factor for this mixer"; | ||
| 46 | }; | ||
| 47 | |||
| 48 | initialBalance = mkOption { | ||
| 49 | type = types.str; | ||
| 50 | default = "1"; | ||
| 51 | description = "Initial balance"; | ||
| 52 | }; | ||
| 53 | |||
| 42 | initial = mkOption { | 54 | initial = mkOption { |
| 43 | type = types.str; | 55 | type = types.str; |
| 44 | default = "1"; | 56 | default = "1"; |
| @@ -60,8 +72,11 @@ let | |||
| 60 | 72 | ||
| 61 | mixerDeps = filter (x: any (hasPrefix (x + ":")) connectIn || any (hasPrefix (x + ":")) connectOut) (attrNames cfg); | 73 | mixerDeps = filter (x: any (hasPrefix (x + ":")) connectIn || any (hasPrefix (x + ":")) connectOut) (attrNames cfg); |
| 62 | 74 | ||
| 63 | trivmixArgs = [ "--client" name "--level" initial ] | 75 | trivmixArgs = let |
| 76 | dirName = if isNull group then name else group; | ||
| 77 | in [ "--client" name "--level" initial "--initial-balance" initialBalance] | ||
| 64 | ++ optionals connect ["--run" connectScript] | 78 | ++ optionals connect ["--run" connectScript] |
| 79 | ++ optionals (adjustable && (! isNull balance)) ["--balance" "/dev/shm/mix/${dirName}/${balance}"] | ||
| 65 | ++ optional (adjustable && isNull group) "/dev/shm/mix/${name}/level" | 80 | ++ optional (adjustable && isNull group) "/dev/shm/mix/${name}/level" |
| 66 | ++ optional (! isNull group) "/dev/shm/mix/${group}/level"; | 81 | ++ optional (! isNull group) "/dev/shm/mix/${group}/level"; |
| 67 | in { | 82 | in { |
