1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015-2016 OpenWrt.org
14 config_get val
"$cfg" "$var"
15 if [ -n "$val" ] ||
[ -n "$def" ]; then
16 printf "\t%s = ${val:-$def};\n" "$opt"
27 config_get val
"$cfg" "$var"
28 if [ -n "$val" ] ||
[ -n "$def" ]; then
29 printf "\t%s = \"${val:-$def}\";\n" "$opt"
35 local conf_custom conf_file aux
37 config_get_bool aux
"$cfg" 'enabled' '0'
38 [ "$aux" = 0 ] && return 1
40 config_get_bool conf_custom
"$cfg" 'conf_custom' '0'
41 config_get conf_file
"$cfg" "conf_file"
42 [ "$conf_custom" -ne 1 ] && [ -z "$conf_file" ] && {
44 conf_file
="/var/etc/shairport-sync-${cfg}.conf"
46 printf "// Automatically generated from UCI config\n\n"
51 append_str
"$cfg" name
"name"
52 append_str
"$cfg" password
"password"
53 append_str
"$cfg" interpolation
"interpolation"
54 append_str
"$cfg" output_backend
"output_backend"
55 append_str
"$cfg" mdns_backend
"mdns_backend"
56 append_num
"$cfg" port
"port"
57 append_num
"$cfg" udp_port_base
"udp_port_base"
58 append_num
"$cfg" udp_port_range
"udp_port_range"
59 append_str
"$cfg" statistics
"statistics"
60 append_num
"$cfg" drift
"drift"
61 append_num
"$cfg" resync_threshold
"resync_threshold"
62 append_num
"$cfg" log_verbosity
"log_verbosity"
63 append_str
"$cfg" ignore_volume_control
"ignore_volume_control"
64 append_num
"$cfg" volume_range_db
"volume_range_db"
65 append_str
"$cfg" regtype
"regtype"
66 append_str
"$cfg" playback_mode
"playback_mode"
72 append_str
"$cfg" metadata_enabled
"enabled"
73 append_str
"$cfg" metadata_cover_art
"include_cover_art"
74 append_str
"$cfg" metadata_pipe_name
"pipe_name"
75 append_num
"$cfg" metadata_pipe_timeout
"pipe_timeout"
76 append_str
"$cfg" metadata_socket_address
"socket_address"
77 append_num
"$cfg" metadata_socket_port
"socket_port"
78 append_num
"$cfg" metadata_socket_msglength
"socket_msglength"
82 printf "sessioncontrol =\n"
84 append_str
"$cfg" sesctl_run_before_play_begins
"run_this_before_play_begins"
85 append_str
"$cfg" sesctl_run_after_play_ends
"run_this_after_play_ends"
86 append_str
"$cfg" sesctl_wait_for_completion
"wait_for_completion"
87 append_str
"$cfg" sesctl_session_interruption
"allow_session_interruption"
88 append_num
"$cfg" sesctl_session_timeout
"session_timeout"
94 append_str
"$cfg" alsa_output_device
"output_device"
95 append_str
"$cfg" alsa_mixer_control_name
"mixer_control_name"
96 append_str
"$cfg" alsa_mixer_device
"mixer_device"
97 append_num
"$cfg" alsa_latency_offset
"audio_backend_latency_offset"
98 append_num
"$cfg" alsa_buffer_length
"audio_backend_buffer_desired_length"
99 append_str
"$cfg" alsa_disable_synchronization
"disable_synchronization"
100 append_num
"$cfg" alsa_period_size
"period_size"
101 append_num
"$cfg" alsa_buffer_size
"buffer_size"
104 # Pipe audio back end
107 append_str
"$cfg" pipe_name
"name"
108 append_num
"$cfg" pipe_latency_offset
"audio_backend_latency_offset"
109 append_num
"$cfg" pipe_buffer_length
"audio_backend_buffer_desired_length"
112 # Stdout audio back end
115 append_num
"$cfg" stdout_latency_offset
"audio_backend_latency_offset"
116 append_num
"$cfg" stdout_buffer_length
"audio_backend_buffer_desired_length"
122 append_num
"$cfg" ao_latency_offset
"audio_backend_latency_offset"
123 append_num
"$cfg" ao_buffer_length
"audio_backend_buffer_desired_length"
129 procd_set_param
command /usr
/bin
/shairport-sync
130 procd_append_param
command -c "$conf_file"
132 config_get_bool aux
"$cfg" 'respawn' '0'
133 [ "$aux" = 1 ] && procd_set_param respawn
139 procd_add_reload_trigger
"shairport-sync"
143 config_load shairport-sync
144 config_foreach start_instance shairport-sync