#!/bin/sh /etc/rc.common START=95 STOP=10 USE_PROCD=1 PROG=/usr/bin/squeezelite start_service() { local enabled name server server_port auto_discover output mac model local sample_rate buffer_size codec_buffer alsa_buffer alsa_period local fifo_output fifo_path config_load squeezelite config_get enabled main enabled '0' [ "$enabled" != "1" ] && return 0 config_get name main name 'SecuBox-Player' config_get server main server '' config_get server_port main server_port '3483' config_get auto_discover main auto_discover '1' config_get output main output 'default' config_get mac main mac '' config_get model main model 'squeezelite' config_get sample_rate audio sample_rate '44100' config_get buffer_size audio buffer_size '2000' config_get codec_buffer audio codec_buffer '2000' config_get alsa_buffer audio alsa_buffer '80' config_get alsa_period audio alsa_period '4' config_get fifo_output streaming fifo_output '0' config_get fifo_path streaming fifo_path '/tmp/squeezelite.pcm' # Build command line local cmd_args="-n $name -o $output" # Server connection if [ -n "$server" ]; then cmd_args="$cmd_args -s $server:$server_port" fi # MAC address (auto-generate if not set) if [ -n "$mac" ]; then cmd_args="$cmd_args -m $mac" fi # Model name cmd_args="$cmd_args -M $model" # Audio settings cmd_args="$cmd_args -r $sample_rate" cmd_args="$cmd_args -b ${buffer_size}:${codec_buffer}" cmd_args="$cmd_args -a ${alsa_buffer}:${alsa_period}" # FIFO output for streaming bridge if [ "$fifo_output" = "1" ]; then # Create FIFO if not exists [ -p "$fifo_path" ] || mkfifo "$fifo_path" cmd_args="$cmd_args -o $fifo_path" fi procd_open_instance procd_set_param command $PROG $cmd_args procd_set_param respawn procd_set_param stderr 1 procd_set_param pidfile /var/run/squeezelite.pid procd_close_instance logger -t squeezelite "Started: $name" } stop_service() { logger -t squeezelite "Stopped" } service_triggers() { procd_add_reload_trigger "squeezelite" }