# Maintainer: David Runge <dave@sleepmap.de>
pkgname=dpf-plugins
pkgver=1.3
pkgrel=1
pkgdesc="Collection of DPF-based plugins"
arch=('x86_64')
url="https://github.com/DISTRHO/DPF-Plugins"
license=('ISC' 'GPL2' 'GPL3' 'LGPL3' 'MIT')
groups=('ladspa-plugins' 'lv2-plugins' 'pro-audio' 'vst-plugins')
depends=('libglvnd')
makedepends=('dssi' 'gendesk' 'ladspa' 'lv2' 'projectm')
optdepends=('jack: for standalone applications'
            'liblo: for dssi plugins'
            'projectm: for ProM plugin')
source=("$pkgname-$pkgver.tar.gz::https://github.com/DISTRHO/${pkgname}/archive/v${pkgver}.tar.gz")
sha512sums=('ead34a69824c43fcfab0652c42ada46c488e29848bad92601aac33e32d9576ba9f9dafdf068505ba9d96d526b1c32da78253a593bcc272d6d03654a8cab3ee9b')

prepare() {
  mv -v "DPF-Plugins-${pkgver}" "$pkgname-$pkgver"
  cd "$pkgname-$pkgver"
  declare -A comments=(
    ["3BandEQ"]="A three band equalizer"
    ["3BandSplitter"]="A three band splitter"
    ["AmplitudeImposer"]="Takes 2 stereo inputs and imposes the amplitude envelope of the first one on the second one"
    ["CycleShifter"]="Reads in a cycle's-worth of the input signal, then (once the whole cycle's been read in) outputs it again, on top of the current output"
    ["Kars"]="Simple karplus-strong plucked string synth"
    ["MVerb"]="A studio quality, open-source reverb"
    ["MaBitCrush"]="A bit crusher"
    ["MaFreeverb"]="A reverb based on freeverb"
    ["MaGigaverb"]="A reverb based on gigaverb"
    ["MaPitchshift"]="A pitch shifter"
    ["Nekobi"]="A simple single-oscillator synth based on the Roland TB-303"
    ["PingPongPan"]="A Ping Pong Panner"
    ["ProM"]="An awesome music visualizer"
    ["SoulForce"]="A fairly standard waveshaping distortion plugin"
    ["glBars"]="An OpenGL bars visualization plugin"
  )
  declare -A generic=(
    ["3BandEQ"]="Equalizer"
    ["3BandSplitter"]="Splitter"
    ["AmplitudeImposer"]="Wave Shaper"
    ["CycleShifter"]="Cyclic Input Processor"
    ["Kars"]="Plucked string synthesizer"
    ["MVerb"]="Reverb"
    ["MaBitCrush"]="Bit crusher"
    ["MaFreeverb"]="Reverb"
    ["MaGigaverb"]="Reverb"
    ["MaPitchshift"]="Pitch shifter"
    ["Nekobi"]="Synthesizer"
    ["PingPongPan"]="Ping Pong Panner"
    ["ProM"]="Music visualizer"
    ["SoulForce"]="Waveshaping Distortion"
    ["glBars"]="Bars Visualization"
  )
  for name in "${!comments[@]}"; do
    gendesk -n \
            --pkgname "${name,,}" \
            --name "${name}" \
            --exec "/usr/bin/${name}" \
            --pkgdesc "${comments[$name]}" \
            --genericname "${generic[$name]}" \
            --categories "AudioVideo;Audio"
  done
}

build() {
  cd "$pkgname-$pkgver"
  make BUILD_VST=true \
       BUILD_DSSI=true \
       BUILD_LV2=true \
       BUILD_JACK=true
}

package() {
  cd "$pkgname-$pkgver"
  make DESTDIR="$pkgdir/" \
       PREFIX=/usr \
       install
  # docs
  install -vDm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}/"
  # licenses
  install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}/"
  install -vDm 644 dpf/LICENSE \
    -t "${pkgdir}/usr/share/licenses/${pkgname}/dpf/"
  install -vDm 644 plugins/Kars/LICENSE \
    -t "${pkgdir}/usr/share/licenses/${pkgname}/Kars/"
  install -vDm 644 plugins/AmplitudeImposer/LICENSE \
    -t "${pkgdir}/usr/share/licenses/${pkgname}/AmplitudeImposer/"
  install -vDm 644 plugins/CycleShifter/LICENSE \
    -t "${pkgdir}/usr/share/licenses/${pkgname}/CycleShifter/"
  install -vDm 644 plugins/SoulForce/LICENSE \
    -t "${pkgdir}/usr/share/licenses/${pkgname}/SoulForce/"
  install -vDm 644 *.desktop -t "${pkgdir}/usr/share/applications"
}
