Merge branch 't/testsuite'
[paraslash.git] / ggo / audiod.m4
1 include(header.m4)
2 define(CURRENT_PROGRAM,para_audiod)
3 define(DEFAULT_CONFIG_FILE,~/.paraslash/audiod.conf)
4
5 <qu>
6 #########################
7 section "General options"
8 #########################
9 </qu>
10
11 include(loglevel.m4)
12 include(color.m4)
13 include(config_file.m4)
14 include(logfile.m4)
15 include(log_timing.m4)
16 include(daemon.m4)
17 include(user.m4)
18 include(group.m4)
19
20 <qu>
21 ########################
22 section "Audiod options"
23 ########################
24
25 option "force" F
26 #~~~~~~~~~~~~~~~
27 "force startup"
28 flag off
29 details="
30 If this flag is not given, para_audiod refuses to start if the
31 well-known socket file (see the --socket option) already exists
32 because this usually means that para_audiod is already running
33 and listening on that socket. After a crash or if para_audiod
34 received a SIGKILL signal, a stale socket file might remain and
35 you have to use --force once to force startup of para_audiod.
36 "
37
38 option "mode" m
39 #~~~~~~~~~~~~~~
40 "startup mode"
41 string typestr="mode"
42 default="on"
43 optional
44 details="
45 Para_audiod supports three modes of operation: On, off and
46 standby (sb). This option selects the mode that should be
47 used on startup. If para_audiod operates in \"on\" mode, it
48 will connect to para_server in order to receive its status
49 information. If para_server announces the availability of an
50 audio stream, para_audiod will automatically download, decode
51 and play the audio stream according to the given stream I/O
52 options, see below.
53
54 In \"standby\" mode, para_audiod will only receive the
55 status information from para_server but will not download
56 the audio stream.
57
58 In \"off\" mode, para_audiod does not connect para_server at
59 all, but still listens on the local socket for connections.
60 "
61
62 option "socket" s
63 #~~~~~~~~~~~~~~~~
64 "well-known socket"
65 string typestr="filename"
66 optional
67 details="
68 Para_audiod uses a \"well-known\" socket to listen
69 on for connections from para_audioc. This socket is a
70 special file in the file system; its location defaults to
71 /var/paraslash/audiod_sock.<host_name>.
72
73 para_audioc, the client program used to connect to para_audiod,
74 opens this socket in order to talk to para_audiod. If the
75 default value for para_audiod is changed, para_audioc must be
76 instructed to use also \"filename\" for connecting para_audiod.
77 "
78
79 option "user_allow" -
80 #~~~~~~~~~~~~~~~~~~~~
81 "allow this uid"
82 int typestr="uid"
83 default="-1"
84 optional
85 multiple
86 details="
87 Allow the user identified by \"uid\" to connect to para_audiod.
88 May be specified multiple times. If not specified at all,
89 all users are allowed to connect.
90
91 This feature requires unix socket credentials and is currently
92 only supported on Linux systems. On other operating systems,
93 the option is silently ignored and all local users are allowed
94 to connect to para_audiod.
95 "
96
97 option "clock_diff_count" -
98 #~~~~~~~~~~~~~~~~~~~~~~~~~~
99 "sync clock on startup"
100 int typestr="count"
101 default="0"
102 optional
103 details="
104 Check the clock difference between the host running para_server
105 and the local host running para_audiod that many times before
106 starting any stream I/0. Set this to non-zero for non-local
107 setups if the clocks of these two hosts are not syncronized
108 by ntp or similar.
109 "
110
111 #############################
112 section "Stream I/O options"
113 #############################
114
115 option "receiver" r
116 #~~~~~~~~~~~~~~~~~~
117 "select receiver"
118 string typestr="receiver_spec"
119 default="http"
120 optional
121 multiple
122 details="
123 This option may be given multiple times, once for each
124 supported audio format. The \"receiver_spec\" consists of
125 an audio format and the receiver name, separated by a colon,
126 and any options for that receiver, seperated by whitespace.
127 If any receiver options are present, the whole receiver
128 argument must be quoted.
129
130 Example:
131
132 -r 'mp3:http -i my.host.org -p 8009'
133 "
134
135 option "no_default_filters" D
136 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137 "Configure filters manually"
138 flag off
139 details = "
140 If (and only if) this option is set, the --filter options
141 (see below) take effect. Otherwise, the compiled-in defaults
142 apply. These defaults depend on the receiver being used as
143 described below.
144
145 For http streams, only a single filter per audio format,
146 the decoder for that format, is activated. On the other hand,
147 since udp and dccp streams are sent fec-encoded by para_server,
148 the client side must feed the output of the receiver into
149 the fecdec filter first. Therefore the default for udp and
150 dccp streams is to activate the fecdec filter, followed by
151 the appropriate decoder.
152
153 You must give this option if you want to use any other filter,
154 for example the amp or the compress filter.
155
156 "
157
158 option "filter" f
159 #~~~~~~~~~~~~~~~~
160 "Use non-default filters"
161 string typestr="filter_spec"
162 optional
163 multiple
164 dependon="no_default_filters"
165 details="
166 This option may be given multiple times. The \"filter_spec\"
167 consists of an audio format, the name of the filter, and any
168 options for that filter. Note that order matters.
169
170 Examples:
171
172 --filter 'mp3:mp3dec'
173
174 --filter 'mp3:compress --inertia 5 --damp 2'
175
176 "
177
178 option "writer" w
179 #~~~~~~~~~~~~~~~~
180 "Specify stream writer."
181 string typestr="writer_spec"
182 optional
183 multiple
184 details="
185 May be given multiple times, even multiple times for the same
186 audio format. Default value is \"alsa\" for all supported
187 audio formats. Example:
188
189 --writer 'aac:osx'
190
191 "
192
193 option "stream_delay" -
194 #~~~~~~~~~~~~~~~~~~~~~~
195 "time for client sync"
196 int typestr="milliseconds"
197 default="200"
198 optional
199 details="
200 Add the given amount of milliseconds to the stream start time
201 announced by para_server and do not send data to the writer
202 before that time (modulo clock difference).
203
204 This is useful mainly for syncronizing the audio output of
205 different clients.
206 "
207 </qu>