From 3745b58ace186e1fe59af44bb82df864fbb6f55d Mon Sep 17 00:00:00 2001 From: Astro Date: Wed, 1 Dec 2021 22:34:45 +0100 Subject: [PATCH] gqrx: update support for different audio backends --- pkgs/applications/radio/gqrx/default.nix | 19 ++++++++++++++++++- pkgs/top-level/all-packages.nix | 8 ++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix index 572efa3fac6c..d18fca6f91bb 100644 --- a/pkgs/applications/radio/gqrx/default.nix +++ b/pkgs/applications/radio/gqrx/default.nix @@ -14,9 +14,13 @@ , rtl-sdr , hackrf , pulseaudioSupport ? true, libpulseaudio +, portaudioSupport ? false, portaudio }: assert pulseaudioSupport -> libpulseaudio != null; +assert portaudioSupport -> portaudio != null; +# audio backends are mutually exclusive +assert !(pulseaudioSupport && portaudioSupport); gnuradio3_8Minimal.pkgs.mkDerivation rec { pname = "gqrx"; @@ -49,7 +53,20 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec { ] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [ thrift gnuradio3_8Minimal.unwrapped.python.pkgs.thrift - ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]; + ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ] + ++ lib.optionals portaudioSupport [ portaudio ]; + + cmakeFlags = + let + audioBackend = + if pulseaudioSupport + then "Pulseaudio" + else if portaudioSupport + then "Portaudio" + else "Gr-audio"; + in [ + "-DLINUX_AUDIO_BACKEND=${audioBackend}" + ]; postInstall = '' install -vD $src/gqrx.desktop -t "$out/share/applications/" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 32afce5dc4e0..81886dfbe9d5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25136,6 +25136,14 @@ with pkgs; gpx = callPackage ../applications/misc/gpx { }; gqrx = callPackage ../applications/radio/gqrx { }; + gqrx-portaudio = callPackage ../applications/radio/gqrx { + portaudioSupport = true; + pulseaudioSupport = false; + }; + gqrx-gr-audio = callPackage ../applications/radio/gqrx { + portaudioSupport = false; + pulseaudioSupport = false; + }; gpx-viewer = callPackage ../applications/misc/gpx-viewer { };