### this file is sourced not run
PKGVER=1.9.5
PKGBUILD=1
PKGARCH=x86_64

# source: james
TARBALL=deadbeef-$PKGVER.tar.bz2
MD5SUM=5ba1e22a8dc5ff87fcb97e3835dc9b2b
SRC_URL=http://downloads.sourceforge.net/deadbeef/$TARBALL
BUNDLE=

# selected extra plugins 
# https://github.com/DeaDBeeF-Player/deadbeef-plugin-builder
EXT_PLUGINS='vfs_archive_reader jack musical_spectrum spectrogram
stereo_widener bs2b infobar'

PLUGIN_vfs_archive_reader=fd8d74c19c5cbbd8482fcab43d4c715ac606f0d2
PLUGIN_vfs_archive_reader_SRC=https://github.com/carlosanunes/deadbeef_vfs_archive_reader
PLUGIN_vfs_archive_reader_MD5SUM=279eae6d8f59cc2fc0fb87e65a2b436d

PLUGIN_jack=62d1e6ac0452b7baa92fcc75b59bcb960df06da8
PLUGIN_jack_SRC=https://github.com/DeaDBeeF-Player/jack
PLUGIN_jack_MD5SUM=7e9f6c83caf33892d16c3006b673b6d5

PLUGIN_musical_spectrum=f177bddf5dbd5ccb4e36408903ef05d936aa6885
PLUGIN_musical_spectrum_SRC=https://github.com/cboxdoerfer/ddb_musical_spectrum
PLUGIN_musical_spectrum_MD5SUM=6bce025a659886020929878c8a5bda33

PLUGIN_spectrogram=8d1b3713f3a3a8a93b4934a4782fb3db7f744fb7
PLUGIN_spectrogram_SRC=https://github.com/cboxdoerfer/ddb_spectrogram
PLUGIN_spectrogram_MD5SUM=1c8df96378e959565ed510a574d8b80a

PLUGIN_stereo_widener=d3990d772b02cdc6206f067748f5d1f9650616fb
PLUGIN_stereo_widener_SRC=https://github.com/DeaDBeeF-Player/stereo-widener
PLUGIN_stereo_widener_MD5SUM=995c921f50111830640e91357356d2cd

PLUGIN_bs2b=5200eaeb3afe9f469e5627204d3831cefd636dce
PLUGIN_bs2b_SRC=https://github.com/DeaDBeeF-Player/bs2b
PLUGIN_bs2b_MD5SUM=c5fde3f91338f793efa827ab6d5732b6

PLUGIN_infobar=6adde33c0f6e08339040e8da6b7022eefe3bd08e
PLUGIN_infobar_SRC=https://github.com/DeaDBeeF-Player/deadbeef-infobar
PLUGIN_infobar_MD5SUM=651c7491282072fa8640e6223d7bf3db


SLACKREQ='gtk2 libjansson libsamplerate alsa-lib libvorbis libogg curl
imlib2 libpng libjpeg-turbo libflac libwavpack libsndfile ffmpeg dbus
libfaad2 libzip mpg123 libnotify libcddb libcdio
libopus libopusfile ' # build-time: yasm libdispatch.We can also compile for gtk3
SLACKDESC="deadbeef: deadbeef $PKGVER (Modular Audio Player)
deadbeef: 
deadbeef: DeaDBeeF (as in 0xDEADBEEF) is a modular audio player for GNU/Linux, 
deadbeef: *BSD, OpenSolaris, macOS, and other UNIX-like systems.
deadbeef: 
deadbeef: https://deadbeef.sourceforge.io/
deadbeef: 
deadbeef: 
deadbeef: 
deadbeef: 
deadbeef: 
"
SLACKSUG='libmad libfftw3'

# $1-plugin name
get_tarball() {
	local hash7 hash
	hash=$(eval echo \$PLUGIN_${1})
	hash7=${hash#???????}; hash7=${hash%$hash7}
	echo deadbeef-${1}-$hash7.tar.gz
}

### default pkg_download
### default pkg_prepare
pkg_prepare() {
	local hash
	pkg_prepare_default &&

	# download external plugins
	mkdir tmp/ext_plugins
	for p in $EXT_PLUGINS; do
		hash=$(eval echo \$PLUGIN_${p})
		TARBALL=$(get_tarball $p) 
		SRC_URL=$(eval echo \$PLUGIN_${p}_SRC)/archive/$hash.tar.gz
		MD5SUM=$(eval echo \$PLUGIN_${p}_MD5SUM)
		
		pkg_check $SRC_DIR $TARBALL $MD5SUM &&
		echo extracting $TARBALL ... &&
		tar -xf $SRC_DIR/$TARBALL -C tmp/ext_plugins ||
		return 1
	done
	mv tmp/ext_plugins tmp/deadbeef* # park it there
}
### default pkg_package
### build
pkg_build() {
	# main deadbeef player
	PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/$LIBDIR/pkgconfig # location of old libnotify
	CC=clang CXX=clang++
	pkg_build_autoconf &&
	pkg_build_slackdesc &&

	# extra plugins
	cd ext_plugins/*vfs_archive_reader*/src &&
	make &&
	install -m755 ddb_archive_reader.so /usr/$LIBDIR/deadbeef &&

	cd /tmp/deadbeef*/ext_plugins/*jack* &&
	make &&
	install -m755 jack.so /usr/$LIBDIR/deadbeef  &&

	cd /tmp/deadbeef*/ext_plugins/*musical_spectrum* &&
	make gtk2 &&
	install -m755 gtk2/ddb_vis_musical_spectrum_GTK2.so /usr/$LIBDIR/deadbeef &&

	cd /tmp/deadbeef*/ext_plugins/*spectrogram* &&
	make gtk2 &&
	install -m755 gtk2/ddb_vis_spectrogram_GTK2.so /usr/$LIBDIR/deadbeef &&

	cd /tmp/deadbeef*/ext_plugins/*stereo-widener* &&
	make &&
	install -m755 stereo_widener.so /usr/$LIBDIR/deadbeef &&

	cd /tmp/deadbeef*/ext_plugins/*bs2b* &&
	make &&
	install -m755 ddb_bs2b.so /usr/$LIBDIR/deadbeef &&

	cd /tmp/deadbeef*/ext_plugins/*infobar* &&
	CFLAGS="$CFLAGS -fcommon" && # gcc 12
	make gtk2 &&
	install -m755 gtk2/ddb_infobar_gtk2.so /usr/$LIBDIR/deadbeef &&
	
	true
}


