1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7{
8 options.services.sdrplayApi = {
9 enable = lib.mkOption {
10 default = false;
11 example = true;
12 description = ''
13 Whether to enable the SDRplay API service and udev rules.
14
15 ::: {.note}
16 To enable integration with SoapySDR and GUI applications like gqrx create an overlay containing
17 `soapysdr-with-plugins = super.soapysdr.override { extraPackages = [ super.soapysdrplay ]; };`
18 :::
19 '';
20 type = lib.types.bool;
21 };
22 };
23
24 config = lib.mkIf config.services.sdrplayApi.enable {
25 systemd.services.sdrplayApi = {
26 description = "SDRplay API Service";
27 after = [ "network.target" ];
28 wantedBy = [ "multi-user.target" ];
29 serviceConfig = {
30 ExecStart = "${pkgs.sdrplay}/bin/sdrplay_apiService";
31 DynamicUser = true;
32 Restart = "on-failure";
33 RestartSec = "1s";
34 };
35 };
36 services.udev.packages = [ pkgs.sdrplay ];
37
38 };
39}