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 = \"%s\";\n" "$opt" "${val:-$def}"
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_run_before_entering_active_state
"run_this_before_entering_active_state"
87 append_str
"$cfg" sesctl_run_after_exiting_active_state
"run_this_after_exiting_active_state"
88 append_str
"$cfg" sesctl_run_if_an_unfixable_error_is_detected
"run_this_if_an_unfixable_error_is_detected"
89 append_str
"$cfg" sesctl_run_when_volume_is_set
"run_this_when_volume_is_set"
90 append_str
"$cfg" sesctl_wait_for_completion
"wait_for_completion"
91 append_str
"$cfg" sesctl_session_interruption
"allow_session_interruption"
92 append_num
"$cfg" sesctl_session_timeout
"session_timeout"
98 append_str
"$cfg" alsa_output_device
"output_device"
99 append_str
"$cfg" alsa_mixer_control_name
"mixer_control_name"
100 append_str
"$cfg" alsa_mixer_device
"mixer_device"
101 append_num
"$cfg" alsa_latency_offset
"audio_backend_latency_offset"
102 append_num
"$cfg" alsa_buffer_length
"audio_backend_buffer_desired_length"
103 append_str
"$cfg" alsa_disable_synchronization
"disable_synchronization"
104 append_num
"$cfg" alsa_period_size
"period_size"
105 append_num
"$cfg" alsa_buffer_size
"buffer_size"
108 # Pipe audio back end
111 append_str
"$cfg" pipe_name
"name"
112 append_num
"$cfg" pipe_latency_offset
"audio_backend_latency_offset"
113 append_num
"$cfg" pipe_buffer_length
"audio_backend_buffer_desired_length"
116 # Stdout audio back end
119 append_num
"$cfg" stdout_latency_offset
"audio_backend_latency_offset"
120 append_num
"$cfg" stdout_buffer_length
"audio_backend_buffer_desired_length"
126 append_str
"$cfg" mqtt_enabled
"enabled"
127 append_str
"$cfg" mqtt_hostname
"hostname"
128 append_num
"$cfg" mqtt_port
"port"
129 append_str
"$cfg" mqtt_username
"username"
130 append_str
"$cfg" mqtt_password
"password"
131 append_str
"$cfg" mqtt_topic
"topic"
132 append_str
"$cfg" mqtt_publish_raw
"publish_raw"
133 append_str
"$cfg" mqtt_publish_parsed
"publish_parsed"
134 append_str
"$cfg" mqtt_publish_cover
"publish_cover"
135 append_str
"$cfg" mqtt_enable_remote
"enable_remote"
141 append_num
"$cfg" ao_latency_offset
"audio_backend_latency_offset"
142 append_num
"$cfg" ao_buffer_length
"audio_backend_buffer_desired_length"
148 procd_set_param
command /usr
/bin
/shairport-sync
149 procd_append_param
command -c "$conf_file"
151 config_get_bool aux
"$cfg" 'respawn' '0'
152 [ "$aux" = 1 ] && procd_set_param respawn
158 procd_add_reload_trigger
"shairport-sync"
162 config_load shairport-sync
163 config_foreach start_instance shairport-sync