# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=alsa-plugins
pkgver=1.2.7.1
pkgrel=3
pkgdesc="Advanced Linux Sound Architecture (ALSA) plugins"
url="https://alsa-project.org/"
arch="all"
license="GPL-2.0-or-later LGPL-2.1-or-later"
makedepends="
	alsa-lib-dev
	ffmpeg-dev
	jack-dev
	libsamplerate-dev
	linux-headers
	pulseaudio-dev
	speex-dev
	"
subpackages="
	$pkgname-doc
	$pkgname-pulse
	$pkgname-lavrate
	$pkgname-a52
	$pkgname-jack
	"
source="https://alsa-project.org/files/pub/plugins/alsa-plugins-$pkgver.tar.bz2
	implicit.patch
	"

prepare() {
	default_prepare
	update_config_sub
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var
	make
}

check() {
	make check
}

doc() {
	default_doc
	mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
	cat > "$subpkgdir"/usr/share/doc/$pkgname/README.alpine <<EOF
	==> please note that alsa-plugins-lavcrate has been renamed to lavrate.
	==> So you need to run: apk add alsa-plugins-lavrate
EOF
}

lavrate() {
	pkgdesc="FFmpeg samplerate conversion plugins for alsa"
	_mv_lib ./*lavrate*
	_mv_conf 10-rate-lav.conf
}

pulse() {
	pkgdesc="Pulseaudio support plugins for alsa-only applications"
	# pipewire provides pulseaudio-alsa; when pipewire is used,
	# alsa-plugins-pulse is not needed.
	install_if="alsa-lib pulseaudio-alsa !pipewire"

	_mv_lib ./*pulse.so
	_mv_conf ./*pulseaudio*
	mv "$subpkgdir"/etc/alsa/conf.d/99-pulseaudio-default.conf.example \
		"$subpkgdir"/etc/alsa/conf.d/99-pulseaudio-default.conf
}

a52() {
	pkgdesc="Converts S16 linear sound format to A52 compressed format and sends it to an SPDIF output"
	_mv_lib ./*a52.so
	_mv_conf 60-a52-encoder.conf
}

jack() {
	pkgdesc="Allows native ALSA applications to work with jackd"
	_mv_lib ./*jack.so
	_mv_conf 50-jack.conf
}

package() {
	make DESTDIR="$pkgdir" install
	find $pkgdir -name "*.la" -type f -exec rm -f {} \;
}

_mv_lib() {
	mkdir -p "$subpkgdir"/usr/lib/alsa-lib/

	for i in "$@"; do
	mv "$pkgdir"/usr/lib/alsa-lib/$i \
		"$subpkgdir"/usr/lib/alsa-lib/
	done
}

_mv_conf() {
	mkdir -p "$subpkgdir"/etc/alsa/conf.d/ \
		"$subpkgdir"/usr/share/alsa/alsa.conf.d

	for i in "$@"; do
	mv "$pkgdir"/usr/share/alsa/alsa.conf.d/$i \
		"$subpkgdir"/usr/share/alsa/alsa.conf.d/
	mv "$pkgdir"/etc/alsa/conf.d/$i \
		"$subpkgdir"/etc/alsa/conf.d/
	done
}

sha512sums="
437c05a7e0175594768fd6a9a6d1a158bb4a01a7de6a42c2bd468d9381e01b64d385ddfac7d87baf84fe13cb4e65dc24da643940f416d4b191c528728822d964  alsa-plugins-1.2.7.1.tar.bz2
51e876edc36821b96aaf2d3cf5b66bb2b5a3cb1e90b5af2095888c52c3054ca93d494722fafa47089aee9eb14cf3bc99b2a1159b16b38ba757c6ebe02ffe99a0  implicit.patch
"
