# Maintainer: David Runge <dvzrv@archlinux.org>

pkgname=dragonfly-reverb
_name=DragonflyReverb
pkgver=3.2.5
pkgrel=1
pkgdesc="A concert hall reverb and a room reverb"
arch=('x86_64')
url="https://michaelwillis.github.io/dragonfly-reverb/"
license=('GPL3')
groups=('lv2-plugins' 'pro-audio' 'vst-plugins')
depends=('gcc-libs' 'glibc' 'libglvnd' 'libx11')
makedepends=('freeverb3' 'gendesk' 'jack' 'lv2')
checkdepends=('lv2lint')
optdepends=('jack: for standalone applications'
            'lv2-host: for LV2 plugins'
            'vst-host: for VST plugins')
source=("$pkgname-$pkgver.tar.gz::https://github.com/michaelwillis/${pkgname}/releases/download/${pkgver}/${_name}-Source-v${pkgver}.tar.gz")
sha512sums=('fa1a46d6f1b01682094a1407ef26251c6fc0454b55702de6383882ebaade015c5fc44b0ec57d3d38daa447b92b0d4b37f5abd6b59d00efa49bf3e7165a31291e')
b2sums=('3142fa18b9a8a79b663cb627c250a5d7f6271c8cf28d128eb5bdf1a2b60d5abf7cb19e0ac97f174b12084051d252eb8da0f69f279c0925e7093ecf4ccc7b1790')
_names=('DragonflyEarlyReflections' 'DragonflyHallReverb' 'DragonflyPlateReverb' 'DragonflyRoomReverb')

prepare() {
  declare -A _description=(
    ["DragonflyEarlyReflections"]="A free stereo-to-stereo early reflections reverb effect"
    ["DragonflyHallReverb"]="A free stereo-to-stereo concert hall reverb effect"
    ["DragonflyPlateReverb"]="A free stereo-to-stereo plate reverb effect"
    ["DragonflyRoomReverb"]="A free stereo-to-stereo room reverb effect"
  )
  declare -A _generic=(
    ["DragonflyEarlyReflections"]="Early Reflections Reverb"
    ["DragonflyHallReverb"]="Concert Hall Reverb"
    ["DragonflyPlateReverb"]="Plate Reverb"
    ["DragonflyRoomReverb"]="Room Reverb"
  )
  mv -v "DragonflyReverb-Source-v${pkgver}" "$pkgname-$pkgver"
  cd "$pkgname-$pkgver"

  for name in "${_names[@]}"; do
    gendesk -n \
            --pkgname "io.github.michaelwillis.${name}" \
            --name "${name}" \
            --exec "${name}" \
            --pkgdesc "${comments[$name]}" \
            --genericname "${generic[$name]}" \
            --categories "AudioVideo;Audio"
  done
}

build() {
  cd "$pkgname-$pkgver"
  export SYSTEM_FREEVERB3="true"
  make
}

check() {
  local _name=""
  declare -A _urls=(
    ["DragonflyHallReverb"]='https://github.com/michaelwillis/dragonfly-reverb'
    ["DragonflyEarlyReflections"]='urn:dragonfly:early'
    ["DragonflyPlateReverb"]='urn:dragonfly:plate'
    ["DragonflyRoomReverb"]='urn:dragonfly:room'
  )

  cd "$pkgname-$pkgver"
  for _name in "${_names[@]}"; do
    lv2lint -Mpack -s "lv2_generate_ttl" -I "${PWD}/bin/${_name}.lv2/" "${_urls[$_name]}"
  done
}

package() {
  depends+=('libfreeverb3.so')
  cd "$pkgname-$pkgver"
  for name in "${_names[@]}"; do
    install -vDm 755 "bin/${name}" -t "${pkgdir}/usr/bin"
    install -vDm 755 "bin/${name}-vst.so" -t "${pkgdir}/usr/lib/vst"
    install -vDm 755 "bin/${name}.lv2/"*.so \
      -t "${pkgdir}/usr/lib/lv2/${name}.lv2/"
    install -vDm 644 "bin/${name}.lv2/"*.ttl \
      -t "${pkgdir}/usr/lib/lv2/${name}.lv2/"
  done
  install -vDm 644 *".desktop" -t "${pkgdir}/usr/share/applications/"
  install -vDm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
}
