diff options
Diffstat (limited to 'pkgs/applications/audio/jamesdsp/default.nix')
-rw-r--r-- | pkgs/applications/audio/jamesdsp/default.nix | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/pkgs/applications/audio/jamesdsp/default.nix b/pkgs/applications/audio/jamesdsp/default.nix index 16683564b2c..61f8907f99c 100644 --- a/pkgs/applications/audio/jamesdsp/default.nix +++ b/pkgs/applications/audio/jamesdsp/default.nix @@ -2,18 +2,31 @@ , mkDerivation , fetchFromGitHub , pipewire +, pulseaudio +, gst_all_1 , glibmm , qmake +, qtbase +, qtsvg +, wrapQtAppsHook , makeDesktopItem , pkg-config , libarchive , fetchpatch +, copyDesktopItems +, usePipewire ? true +, usePulseaudio ? false }: -mkDerivation rec{ +assert lib.asserts.assertMsg (usePipewire != usePulseaudio) "You need to enable one and only one of pulseaudio or pipewire support"; + +let + pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ]); +in + mkDerivation rec { pname = "jamesdsp"; version = "2.3"; - src = fetchFromGitHub rec{ + src = fetchFromGitHub rec { owner = "Audio4Linux"; repo = "JDSP4Linux"; fetchSubmodules = true; @@ -29,13 +42,30 @@ mkDerivation rec{ }) ]; - nativeBuildInputs = [ qmake pkg-config ]; + nativeBuildInputs = [ + qmake + pkg-config + copyDesktopItems + wrapQtAppsHook + ]; + buildInputs = [ glibmm libarchive - pipewire + qtbase + qtsvg + ] ++ lib.optional usePipewire pipewire + ++ lib.optionals usePulseaudio [ + pulseaudio + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gstreamer ]; + qtWrapperArgs = lib.optionals usePulseaudio [ "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${pluginPath}" ]; + + qmakeFlags = lib.optionals usePulseaudio [ "CONFIG+=USE_PULSEAUDIO" ]; + desktopItems = [ (makeDesktopItem { name = "jamesdsp"; @@ -54,7 +84,7 @@ mkDerivation rec{ description = "An audio effect processor for PipeWire clients"; homepage = "https://github.com/Audio4Linux/JDSP4Linux"; license = licenses.gpl3Only; - maintainers = with maintainers;[ pasqui23 ]; + maintainers = with maintainers; [ pasqui23 rewine ]; platforms = platforms.linux; }; } |