#! /bin/sh

source /lib/config/functions.sh

uciToJson() {

cat >/etc/daemon.conf <<EOF
{
  "interface_name": "eth0",
  "control_interface": "lo",
  "http_port": $(cfg_print_param aes67.network.http_port),
  "rtsp_port": $(cfg_print_param aes67.network.rtsp_port),
  "http_base_dir": "$(cfg_print_param aes67.network.http_base_dir)",
  "playout_delay": $(cfg_print_param aes67.audio.playout_delay),
  "tic_frame_size_at_1fs": $(cfg_print_param aes67.audio.tic_frame_size_at_1fs),
  "max_tic_frame_size": $(cfg_print_param aes67.audio.max_tic_frame_size),
  "sample_rate": $(cfg_print_param aes67.audio.sample_rate),
  "rtp_mcast_base": "$(cfg_print_param aes67.network.rtp_mcast_base)",
  "rtp_port": $(cfg_print_param aes67.network.rtp_port),
  "ptp_domain": $(cfg_print_param aes67.network.ptp_domain),
  "ptp_dscp": $(cfg_print_param aes67.network.ptp_dscp),
  "sap_mcast_addr": "$(cfg_print_param aes67.network.sap_mcast_addr)",
  "sap_interval": $(cfg_print_param aes67.network.sap_interval),
  "status_file": "$(cfg_print_param aes67.sinks_sources.status_file)",
  "mdns_enabled": $(cfg_print_param aes67.network.mdns_enabled),
  "log_severity": 3
}
EOF

}


#if cfg_string_compare application.main_config.mode "aes67" ; then

# -------------------------------------------------------------------

start() {
    if [ ! -f /barix/config/current/aes67 ]; then                               
       cp /barix/config/defaults/aes67 /barix/config/current/aes67             
    fi              
    
    echo "Inserting ravena alsa kernel module..."
    modprobe ravenna-alsa-lkm
    
    sleep 1
    
    echo "Create aes67 daemon file from UCI config"
    uciToJson
    echo "Launching aes67 daemon..."
    aes67-daemon -c /etc/daemon.conf &
}

stop() {
    killall aes67-daemon
    sleep 1
    rmmod ravenna-alsa-lkm
}

restart() {
    stop
    start
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    ###rm -f $APP_STARTED_FLAG
    stop
    ;;
  restart|reload)
    restart
    ;;
  media_mounted|media_unmounted)
    # ignore media mount/unmount events, add the handling functions
    # and call them from here if needed
    ;;
  *)
    echo "Usage: $0 {start|stop|reload|restart}"
    exit 1
esac

exit $?
