#!/bin/sh

SKIP_HW_DESC_TTY_IRQS=1
source /etc/mod-hardware-descriptor.env

# FIXME this shouldn't be needed..
cd /root
export HOSTNAME=$(/usr/bin/hostname)
export HOME=/root
export PWD=/root
export USER=root
export LANG=en_US.UTF-8

# this is good
export LD_BIND_NOW=1
export LV2_PATH=${HOME}/.lv2:/usr/lib/lv2
export MOD_JACKD=1
export MOD_KEYS_PATH="/root/keys/"
export MOD_PLUGIN_THREAD_PRIORITY=57
export SNDFILE_JACKPLAY_AUTOCONNECT="mod-host:monitor-in_%d"

# setup devices
export MOD_MIDI_SERIAL_PORT=${MIDI_SERIAL_PORT}
export MOD_PEAKMETER_BUS_NUMBER=${I2C_MAIN_BUS}
export MOD_PEAKMETER_GPIO_PATH=${PCA9685_OE_GPIO_PATH}
export MOD_SPI2JACK_DEVICE=${SPI2JACK_DEVICE}
export MOD_JACK2SPI_DEVICE=${JACK2SPI_DEVICE}
if [ -n "${SPI2JACK_PRESCALED}" ] && [ "${SPI2JACK_PRESCALED}" -eq 1 ]; then
    export MOD_SPI2JACK_PRESCALED=1
fi

# check if sync option is enabled
if [ -f /data/jack-sync-mode ]; then
    SYNC_OPT="-S"
else
    SYNC_OPT=""
fi

# check if 256 frames option is enabled
if [ -f /data/using-256-frames ]; then
    FRAMES=256
# check if 64 frames option is enabled (NOTE unstable)
elif [ -f /data/using-64-frames ]; then
    FRAMES=64
# default is 128 frames
else
    FRAMES=128
fi

exec /usr/bin/jackd \
  -R -P 80 ${SYNC_OPT} -t 200 \
  -C /etc/jack-internal-session.conf \
  -c ${JACK_CLOCK_SOURCE} \
  -d alsa -d hw:${SOUNDCARD} \
  -r 48000 \
  -p ${FRAMES} \
  -n 2 \
  ${JACK_DEVICE_EXTRA_ARGS} \
  -X seq
