Globally reduce copyright headers
[project/luci.git] / applications / luci-app-shairport / luasrc / model / cbi / shairport.lua
1 -- Copyright 2014 Álvaro Fernández Rojas <noltari@gmail.com>
2 -- Licensed to the public under the Apache License 2.0.
3
4 m = Map("shairport", "Shairport", translate("Shairport is a simple AirPlay server implementation, here you can configure the settings."))
5
6 s = m:section(TypedSection, "shairport", "")
7 s.addremove = true
8 s.anonymous = false
9
10 enable=s:option(Flag, "disabled", translate("Enabled"))
11 enable.enabled="0"
12 enable.disabled="1"
13 enable.default = "1"
14 enable.rmempty = false
15 respawn=s:option(Flag, "respawn", translate("Respawn"))
16 respawn.default = false
17
18 bname = s:option(Value, "bname", translate("Airport Name"))
19 bname.rmempty = true
20
21 pw = s:option(Value, "password", translate("Password"))
22 pw.rmempty = true
23 pw.password = true
24
25 port=s:option(Value, "port", translate("Port"))
26 port.rmempty = true
27 port.datatype = "port"
28
29 buffer=s:option(Value, "buffer", translate("Buffer fill"))
30 buffer.rmempty = true
31 buffer.datatype = "uinteger"
32
33 log_file=s:option(Value, "log_file", translate("Log file"))
34 log_file.rmempty = true
35 --log_file.datatype = "file"
36
37 err_file=s:option(Value, "err_file", translate("Error file"))
38 err_file.rmempty = true
39 --err_file.datatype = "file"
40
41 meta_dir=s:option(Value, "meta_dir", translate("Metadata directory"))
42 meta_dir.rmempty = true
43 meta_dir.datatype = "directory"
44
45 cmd_start=s:option(Value, "cmd_start", translate("Command when playback begins"))
46 cmd_start.rmempty = true
47
48 cmd_stop=s:option(Value, "cmd_stop", translate("Command when playback ends"))
49 cmd_stop.rmempty = true
50
51 cmd_wait=s:option(Flag, "cmd_wait", translate("Block while the commands run"))
52 cmd_wait.default = false
53
54 mdns=s:option(ListValue, "mdns", translate("mDNS"))
55 mdns.rmempty = true
56 mdns:value("", translate("Default"))
57 mdns:value("avahi")
58 mdns:value("dns_sd")
59 mdns:value("external_avahi")
60 mdns:value("external_dns_sd")
61 mdns:value("tinysvcmdns")
62
63 audio_output=s:option(ListValue, "audio_output", translate("Audio output"))
64 audio_output.rmempty = true
65 audio_output:value("", translate("Default"))
66 audio_output:value("alsa")
67 audio_output:value("ao")
68 audio_output:value("dummy")
69 audio_output:value("pulse")
70 audio_output:value("pipe")
71
72 -- alsa output --
73 output_dev=s:option(Value, "output_dev", translate("Output device"))
74 output_dev.rmempty = true
75 output_dev:depends("audio_output", "alsa")
76
77 mixer_dev=s:option(Value, "mixer_dev", translate("Mixer device"))
78 mixer_dev.rmempty = true
79 mixer_dev:depends("audio_output", "alsa")
80
81 mixer_type=s:option(ListValue, "mixer_type", translate("Mixer type"))
82 mixer_type.rmempty = true
83 mixer_type:value("", translate("Default"))
84 mixer_type:value("software")
85 mixer_type:value("hardware")
86 mixer_type:depends("audio_output", "alsa")
87
88 mixer_control=s:option(Value, "mixer_control", translate("Mixer control"))
89 mixer_control.rmempty = true
90 mixer_control:depends("audio_output", "alsa")
91
92 mixer_index = s:option(ListValue, "mixer_index", translate("Mixer index"))
93 mixer_index.rmempty = true
94 mixer_index:depends("audio_output", "alsa")
95 mixer_index:value("", translate("Default"))
96 local pats = io.popen("find /proc/asound/ -type d -name 'card*' | sort")
97 if pats then
98         local l
99         while true do
100                 l = pats:read("*l")
101                 if not l then break end
102
103                 l = string.gsub(l, "/proc/asound/card", "")
104                 if l then
105                         mixer_index:value(l)
106                 end
107         end
108         pats:close()
109 end
110
111 -- ao output --
112 ao_driver=s:option(Value, "ao_driver", translate("AO driver"))
113 ao_driver.rmempty = true
114 ao_driver:depends("audio_output", "ao")
115
116 ao_name=s:option(Value, "ao_name", translate("AO name"))
117 ao_name.rmempty = true
118 ao_name:depends("audio_output", "ao")
119
120 ao_id = s:option(ListValue, "ao_id", translate("AO id"))
121 ao_id.rmempty = true
122 ao_id:depends("audio_output", "ao")
123 ao_id:value("", translate("Default"))
124 local pats = io.popen("find /proc/asound/ -type d -name 'card*' | sort")
125 if pats then
126         local l
127         while true do
128                 l = pats:read("*l")
129                 if not l then break end
130
131                 l = string.gsub(l, "/proc/asound/card", "")
132                 if l then
133                         ao_id:value(l)
134                 end
135         end
136         pats:close()
137 end
138
139 ao_options=s:option(Value, "ao_options", translate("AO options"))
140 ao_options.rmempty = true
141 ao_options:depends("audio_output", "ao")
142
143 -- pipe output --
144 output_fifo=s:option(Value, "output_fifo", translate("Output FIFO"))
145 output_fifo.rmempty = true
146 output_fifo:depends("audio_output", "pipe")
147
148 -- pulse output --
149 pulse_server=s:option(Value, "pulse_server", translate("Pulse server"))
150 pulse_server.rmempty = true
151 pulse_server:depends("audio_output", "pulse")
152
153 pulse_sink=s:option(Value, "pulse_sink", translate("Pulse sink"))
154 pulse_sink.rmempty = true
155 pulse_sink:depends("audio_output", "pulse")
156
157 pulse_appname=s:option(Value, "pulse_appname", translate("Pulse application name"))
158 pulse_appname.rmempty = true
159 pulse_appname:depends("audio_output", "pulse")
160
161 return m