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