# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit gnome2-utils meson

DESCRIPTION="Limiter, compressor, reverberation, equalizer auto volume effects for PulseAudio"
HOMEPAGE="https://github.com/wwmm/easyeffects/tree/pulseaudio-legacy"
SRC_URI="https://github.com/wwmm/easyeffects/archive/v${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}"/easyeffects-${PV}

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="bs2b calf +doc rnnoise rubberband webrtc zamaudio"

COMMON="dev-libs/boost:=
	>=dev-cpp/glibmm-2.56.0:2
	>=dev-cpp/gtkmm-3.24:3.0
	>=dev-libs/glib-2.56:2
	>=dev-libs/libsigc++-2.10:2
	>=media-libs/gstreamer-1.12.5:1.0
	media-libs/gst-plugins-base
	>=media-libs/gst-plugins-bad-1.12.5:1.0
	media-libs/libebur128
	media-libs/libsndfile
	>=media-libs/lilv-0.24.2-r1
	>=media-libs/zita-convolver-3.0.0
	media-sound/pulseaudio-daemon
	>=x11-libs/gtk+-3.20:3
	bs2b? ( >=media-plugins/gst-plugins-bs2b-1.12.5:1.0 )
	rnnoise? ( media-libs/rnnoise )"
# Only header files are used from libsamplerate
DEPEND="${COMMON}
	media-libs/libsamplerate"
RDEPEND="!media-sound/easyeffects
	${COMMON}
	>=media-libs/gst-plugins-good-1.12.5:1.0
	>=media-libs/lsp-plugins-1.1.24[lv2]
	>=media-plugins/gst-plugins-ladspa-1.12.5:1.0
	>=media-plugins/gst-plugins-lv2-1.12.5:1.0
	>=media-plugins/gst-plugins-pulse-1.12.5:1.0
	sys-apps/dbus
	calf? ( >=media-plugins/calf-0.90.1[lv2] )
	doc? ( gnome-extra/yelp )
	rubberband? ( media-libs/rubberband[ladspa] )
	webrtc? ( media-plugins/gst-plugins-webrtc )
	zamaudio? ( media-plugins/zam-plugins )"
BDEPEND="dev-libs/appstream-glib
	dev-util/desktop-file-utils
	dev-util/itstool
	sys-devel/gettext
	virtual/pkgconfig"

PATCHES=(
	"${FILESDIR}"/${P}-meson_no_automagic.patch
	"${FILESDIR}"/${P}-boost-1.{85,88}.patch # bugs 932322, 958315
)

src_configure() {
	local emesonargs=(
		$(meson_feature bs2b)
		$(meson_feature rnnoise)
	)
	meson_src_configure
}

pkg_postinst() {
	gnome2_gconf_install
	gnome2_schemas_update
	xdg_icon_cache_update
}

pkg_postrm() {
	gnome2_gconf_uninstall
	gnome2_schemas_update
	xdg_icon_cache_update
}