man_binaries := $(BINARIES)
man_pages := $(patsubst %, man/man1/%.1, $(man_binaries))
man_pages_in := $(patsubst %, web/%.man.in.html, $(man_binaries))
-gengetopts := $(wildcard *.ggo)
-gengetopts_c := $(gengetopts:.ggo=.cmdline.c)
-gengetopts_h := $(gengetopts:.ggo=.cmdline.h)
+ggo_dir := ggo
+gengetopts := $(wildcard $(ggo_dir)/*.ggo)
+gengetopts_c := $(patsubst %/,, $(gengetopts:.ggo=.cmdline.c))
+gengetopts_h := $(patsubst %/,, $(gengetopts:.ggo=.cmdline.h))
autocrap := config.h.in configure
tarball_pfx := @PACKAGE_TARNAME@-@PACKAGE_VERSION@
tarball_delete = web versions pics .changelog_before_cvs .changelog_cvs .gitignore
module_ggo_opts := --set-version="(@PACKAGE_STRING@, $(codename))"
-grab_client.cmdline.h grab_client.cmdline.c: grab_client.ggo
+grab_client.cmdline.h grab_client.cmdline.c: $(ggo_dir)/grab_client.ggo
gengetopt $(module_ggo_opts) \
-S \
--set-package=grab \
--no-handle-error \
--no-handle-version \
--arg-struct-name=grab_client_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst .ggo,,$<)_cmdline_parser < $<
+ --file-name=$(subst .ggo,,$(<F)).cmdline \
+ --func-name $(subst .ggo,,$(<F))_cmdline_parser < $<
-%_recv.cmdline.h %_recv.cmdline.c: %_recv.ggo
+%_recv.cmdline.h %_recv.cmdline.c: $(ggo_dir)/%_recv.ggo
gengetopt $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst .ggo,,$<)_cmdline_parser < $<
+ --set-package=$(subst .ggo,,$(<F)) \
+ --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
+ --file-name=$(subst .ggo,,$(<F)).cmdline \
+ --func-name $(subst .ggo,,$(<F))_cmdline_parser < $<
-%_filter.cmdline.h %_filter.cmdline.c: %_filter.ggo
+%_filter.cmdline.h %_filter.cmdline.c: $(ggo_dir)/%_filter.ggo
gengetopt $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst _filter.ggo,,$<)_cmdline_parser < $<
-%_write.cmdline.h %_write.cmdline.c: %_write.ggo
+ --set-package=$(subst .ggo,,$(<F)) \
+ --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
+ --file-name=$(subst .ggo,,$(<F)).cmdline \
+ --func-name $(subst _filter.ggo,,$(<F))_cmdline_parser < $<
+%_write.cmdline.h %_write.cmdline.c: $(ggo_dir)/%_write.ggo
gengetopt -S $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst _write.ggo,,$<)_cmdline_parser < $<
+ --set-package=$(subst .ggo,,$(<F)) \
+ --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
+ --file-name=$(subst .ggo,,$(<F)).cmdline \
+ --func-name $(subst _write.ggo,,$(<F))_cmdline_parser < $<
-%.cmdline.h %.cmdline.c: %.ggo
- case $< in client.ggo) O="--unamed-opts=command";; \
+%.cmdline.h %.cmdline.c: $(ggo_dir)/%.ggo
+ case $(<F) in client.ggo) O="--unamed-opts=command";; \
audioc.ggo) O="--unamed-opts=command";; \
fsck.ggo) O="--unamed-opts=table";; \
afh.ggo) O="--unamed-opts=audio_file";; \
write.ggo) O="--no-handle-help";; \
audiod.ggo) O="--no-handle-help";; \
esac; \
- if test $< != fsck.ggo; then O="$$O --conf-parser "; fi; \
+ if test $(<F) != fsck.ggo; then O="$$O --conf-parser "; fi; \
gengetopt $$O \
--no-handle-version \
--file-name=$(*F).cmdline \
+++ /dev/null
-text "
-para_afh, the audio format handler tool, is a stand-alone program
-contained in the paraslash package for analyzing and streaming audio
-files. It can be used to
-
- - print tech info about the given audio file to stdout.
- In particular, the 'chunk table' of the audio file, an array
- of offsets within the audio file, may be printed. This table
- can be used by other programs unaware of the particular audio
- format to stream the audio file.
-
- - write selected parts of the given audio file in complete
- chunks without decoding. Thus para_afh can be used to 'cut'
- an audio file.
-
- - write selected parts of the given audio files 'just in time'
- to sdout. This may be useful for third-party software that
- is capable of reading from stdin.
-"
-
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
-int typestr="level"
-default="4"
-optional
-
-defgroup "mode"
-#--------------
-groupdesc="
- There are two modes of operation: Info mode and stream mode,
- one of which must be selected by the corresponding option.
- See below.
-"
-required
-
-groupoption "info" i
-#~~~~~~~~~~~~~~~~~~~
-"select info mode"
-group="mode"
-details="
- In this mode, the program prints technical information about
- the given audio file to stdout.
-"
-
-groupoption "stream" s
-#~~~~~~~~~~~~~~~~~~~~~
-"select stream mode"
-group="mode"
-details="
- If this mode is selected, the selected parts of the content
- of the audio file are written to stdout. Only complete chunks
- with respect of the underlying audio format are written.
- For example, only complete frames in case of mp3 files.
-"
-
-section "Options for info mode"
-#==============================
-
-option "chunk_table" c
-#~~~~~~~~~~~~~~~~~~~~~
-"print also the chunk table"
-flag off
-dependon="info"
-
-section "Options for stream mode"
-#================================
-
-
-option "begin_chunk" b
-#~~~~~~~~~~~~~~~~~~~~~
-"skip a number of chunks"
-int typestr="chunk_num"
-default="0"
-dependon="stream"
-optional
-details="
- The chunk_num argument must be between -num_chunks and
- num_chunks - 1 inclusively where num_chunks is the total number
- of chunks which is printed when using the --info option. If
- chunk_num is negative, the given number of chunks are counted
- backwards from the end of the file. For example --begin_chunk
- -100 instructs para_afh to start output at chunk num_chunks
- - 100. This is mainly useful for cutting off the end of an
- audio file.
-"
-
-option "end_chunk" e
-#~~~~~~~~~~~~~~~~~~~
-"only write up to chunk chunk_num"
-int typestr="chunk_num"
-dependon="stream"
-optional
-details="
- For the chunk_num argument the same rules as for --begin_chunk
- apply. The default is to write up to the last chunk.
-"
-
-option "just_in_time" j
-#~~~~~~~~~~~~~~~~~~~~~~
-"use timed writes"
-flag off
-dependon="stream"
-details="
- Write the specified chunks of data 'just in time', i.e. the
- write of each chunk is delayed until the time it is needed
- by the decoder/player in order to guarantee an uninterupted
- audio stream.
-"
-
-option "no_header" H
-#~~~~~~~~~~~~~~~~~~~
-"do not write an audio file header"
-flag off
-dependon="stream"
-details="
- If an audio format needs information about the audio file
- in a format-specific header in order to be understood by
- the decoding software, a suitable header is automatically
- send. This option changes the default behaviour, i.e. no
- header is written.
-"
+++ /dev/null
-option "device" d
-#~~~~~~~~~~~~~~~~
-"set PCM device"
-string typestr="device"
-default="default"
-optional
-details="
- On systems with dmix, a better choice than the default
- value might be to use \"plug:swmix\".
-"
-
-option "channels" c
-#~~~~~~~~~~~~~~~~~~
-"specify number of channels"
-int typestr="num"
-default="2"
-optional
-details="
- This option is only necessary for playing raw audio with
- para_write. In all other cases (plaing wav files with
- para_write or using this writer with para_audiod), the number
- of channels will be obtained from other resources.
-"
-
-option "samplerate" s
-#~~~~~~~~~~~~~~~~~~~~~
-"force given sample rate"
-int typestr="num"
-default="44100"
-optional
-details="
- Again, it is only necessary to specify this when playing raw
- audio with para_write.
-"
+++ /dev/null
-option "amp" a
-#~~~~~~~~~~~~~
-"amplification value"
-int typestr="number"
-default="32"
-optional
-details="
- The amplification value determines the scaling factor by
- which the amplitude of the audio stream is multiplied. The
- formula for the scaling factor is
-
- factor = 1 + amp / 64.
-
- For example, an amplifiction value of zero results in a
- scaling factor of one while an amplification value of 64
- means to double the volume.
-"
+++ /dev/null
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
- int typestr="level"
- default="4"
- optional
-
-
-option "socket" s
-#~~~~~~~~~~~~~~~~
-"well-known socket (default=/var/paraslash/audiod.socket.$HOSTNAME)"
- string typestr="filename"
- optional
-
-
-option "bufsize" b
-#~~~~~~~~~~~~~~~~~
-"size of internal buffer"
- int typestr="bytes"
- default="8192"
- optional
+++ /dev/null
-#########################
-section "General options"
-#########################
-
-text "
- These options are identical to their counterparts in para_server
- and are discussed in detail there.
-"
-
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-
-option "color" C
-#~~~~~~~~~~~~~~~
-"activate color output"
-enum typestr="when"
-values = "yes","no","auto"
-default = "auto"
-optional
-
-option "log_color" -
-#~~~~~~~~~~~~~~~~~~~
-"select a color for one type of log message"
-string typestr="color_spec"
-multiple
-optional
-details="
- Example: --log_color \"INFO:yellow black bold\"
-"
-
-option "config_file" c
-#~~~~~~~~~~~~~~~~~~~~~
-"(default='~/.paraslash/audiod.conf'"
-string typestr="filename"
-optional
-
-option "logfile" L
-#~~~~~~~~~~~~~~~~~
-"where to write log output"
-string typestr="filename"
-optional
-
-option "daemon" d
-#~~~~~~~~~~~~~~~~
-"run as background daemon"
-flag off
-dependon="logfile"
-
-option "user" u
-#~~~~~~~~~~~~~~
-"run as the given user"
-string typestr="name"
-optional
-
-option "group" g
-#~~~~~~~~~~~~~~~
-"set group id"
-string typestr="group"
-optional
-
-########################
-section "Audiod options"
-########################
-
-option "force" F
-#~~~~~~~~~~~~~~~
-"force startup"
-flag off
-details="
- If this flag is not given, para_audiod refuses to start if the
- well-known socket file (see the --socket option) already exists
- because this usually means that para_audiod is already running
- and listening on that socket. After a crash or if para_audiod
- received a SIGKILL signal, a stale socket file might remain and
- you have to use --force once to force startup of para_audiod.
-"
-
-option "mode" m
-#~~~~~~~~~~~~~~
-"startup mode"
-string typestr="mode"
-default="on"
-optional
-details="
- Para_audiod supports three modes of operation: On, off and
- standby (sb). This option selects the mode that should be
- used on startup. If para_audiod operates in \"on\" mode, it
- will connect to para_server in order to receive its status
- information. If para_server announces the availability of an
- audio stream, para_audiod will automatically download, decode
- and play the audio stream according to the given stream I/O
- options, see below.
-
- In \"standby\" mode, para_audiod will only receive the
- status information from para_server but will not download
- the audio stream.
-
- In \"off\" mode, para_audiod does not connect para_server at
- all, but still listens on the local socket for connections.
-"
-
-option "socket" s
-#~~~~~~~~~~~~~~~~
-"well-known socket"
-string typestr="filename"
-optional
-details="
- Para_audiod uses a \"well-known\" socket to listen
- on for connections from para_audioc. This socket is a
- special file in the file system; its location defaults to
- /var/paraslash/audiod_sock.<host_name>.
-
- para_audioc, the client program used to connect to para_audiod,
- opens this socket in order to talk to para_audiod. If the
- default value for para_audiod is changed, para_audioc must be
- instructed to use also \"filename\" for connecting para_audiod.
-"
-
-option "user_allow" -
-#~~~~~~~~~~~~~~~~~~~~
-"allow this uid"
-int typestr="uid"
-default="-1"
-optional
-multiple
-details="
- Allow the user identified by \"uid\" to connect to para_audiod.
- May be specified multiple times. If not specified at all,
- all users are allowed to connect.
-
- This feature requires unix socket credentials and is currently
- only supported on Linux systems. On other operating systems,
- the option is silently ignored and all local users are allowed
- to connect to para_audiod.
-"
-
-option "clock_diff_count" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"sync clock on startup"
-int typestr="count"
-default="0"
-optional
-details="
- Check the clock difference between the host running para_server
- and the local host running para_audiod that many times before
- starting any stream I/0. Set this to non-zero for non-local
- setups if the clocks of these two hosts are not syncronized
- by ntp or similar.
-"
-
-#############################
-section "Stream I/O options"
-#############################
-
-option "receiver" r
-#~~~~~~~~~~~~~~~~~~
-"select receiver"
-string typestr="receiver_spec"
-default="http"
-optional
-multiple
-details="
- This option may be given multiple times, once for each
- supported audio format. The \"receiver_spec\" consists of
- an audio format and the receiver name, separated by a colon,
- and any options for that receiver, seperated by whitespace.
- If any receiver options are present, the whole receiver
- argument must be quoted.
-
- Example:
-
- -r 'mp3:http -i my.host.org -p 8009'
-"
-
-
-option "no_default_filters" D
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"Configure filters manually"
-flag off
-details="
- If (and only if) this option is set, the --filter options
- (see below) take effect. Otherwise, the compiled-in default
- filters mp3dec, oggdec and aacdec are activated for mp3, ogg,
- aac streams respectively.
-"
-
-option "filter" f
-#~~~~~~~~~~~~~~~~
-"Use non-default filters"
-string typestr="filter_spec"
-optional
-multiple
-dependon="no_default_filters"
-details="
- This option may be given multiple times. The \"filter_spec\"
- consists of an audio format, the name of the filter, and any
- options for that filter. Mote that order matters.
-
- Examples:
-
- --filter 'mp3:mp3dec'
-
- --filter 'mp3:compress --inertia 5 --damp 2'
-
-"
-
-option "writer" w
-#~~~~~~~~~~~~~~~~
-"Specify stream writer."
-string typestr="writer_spec"
-optional
-multiple
-details="
- May be given multiple times, even multiple times for the same
- audio format. Default value is \"alsa\" for all supported
- audio formats. Example:
-
- --writer 'aac:osx'
-
-"
-
-option "stream_delay" -
-#~~~~~~~~~~~~~~~~~~~~~~
-"time for client sync"
-int typestr="milliseconds"
-default="200"
-optional
-details="
- Add the given amount of milliseconds to the stream start time
- announced by para_server and do not send data to the writer
- before that time (modulo clock difference).
-
- This is useful mainly for syncronizing the audio output of
- different clients.
-"
+++ /dev/null
-# file client.conf
-args "--no-handle-error"
-option "hostname" i "ip or host to connect" string typestr="host" default="localhost" optional
-option "user" u "paraslash username" string typestr="username" default="<current user>" optional
-option "server_port" p "port to connect" int typestr="port" default="2990" optional
-option "key_file" k "(default='~/.paraslash/key.<user>')" string typestr="filename" optional
-option "loglevel" l "set loglevel (0-6)" int typestr="number" default="5" optional
-option "config_file" c "(default='~/.paraslash/client.conf')" string typestr="filename" optional
-option "plain" - "request an uncrypted session" flag off
+++ /dev/null
-option "blocksize" b
-#~~~~~~~~~~~~~~~~~~~
-"adjust block size"
-int typestr="number"
-default="15"
-optional
-details = "
- Larger blocksize means fewer volume adjustments per time unit.
-"
-
-option "aggressiveness" a
-#~~~~~~~~~~~~~~~~~~~~~~~~
- "controls the maximum amount to amplify by"
-int typestr="number"
-default="4"
-optional
-
-option "inertia" i
-#~~~~~~~~~~~~~~~~~
- "how much inertia ramping has"
- int typestr="number"
-default="6"
-optional
-
-option "target_level" t
-#~~~~~~~~~~~~~~~~~~~~~~
-"target signal level (0-32768)"
-int typestr="number"
-default="20000"
-optional
-
-option "damp" d
-#~~~~~~~~~~~~~~
-"if non-zero, scale down after normalizing"
-int typestr="number"
-default="0"
-optional
+++ /dev/null
-option "host" i
-"ip or host"
-string default="localhost"
-optional
-details="
- Both IPv4 and IPv6 addresses are supported.
-"
-
-option "port" p
-"port to connect to"
-int
-default="8000"
-optional
+++ /dev/null
-section "general options"
-#########################
-
-option "mode" o
-#~~~~~~~~~~~~~~
-"{sleep|fade|snooze}"
-string default="sleep"
-optional
-details="
- para_fade knows these three different modes.
-
- sleep mode: Change to the initial volume and an initial afs
- mode, then fade the volume down until the fade out volume is
- reached. Switch to the afs sleep mode until the wake time is
- reached. Then switch to the afs wake mode and and fade in to
- the wake volume.
-
- fade: Fade the volume to the given value in the given time.
-
- snooze: Fade out, sleep a bit and fade in.
-"
-
-option "config_file" c
-#~~~~~~~~~~~~~~~~~~~~~
- "(default='~/.paraslash/fade.conf')"
- string typestr="filename"
- optional
-
-option "mixer_device" m
-#~~~~~~~~~~~~~~~~~~~~~~
- "mixer device file"
- string typestr="device"
- default="/dev/mixer"
- optional
-
-section "sleep options (only relevant in sleep mode)"
-#####################################################
-
-option "sleep_ivol" -
-#~~~~~~~~~~~~~~~~~~~~
-"set initial volume"
-int typestr="volume"
-default="60"
-optional
-details="
- Used as the start volume, before fading out to the fade out volume.
-"
-
-option "fa_mode" -
-#~~~~~~~~~~~~~~~~~
-"fall asleep afs mode."
-string typestr="afs_mode"
-default="m/fade"
-optional
-details="
- Select this mode right after setting the volume. Example:
- --fa_mode m/sleep
-"
-
-option "fa_fade" -
-#~~~~~~~~~~~~~~~~~
- "fall asleep fading time"
-int typestr="seconds"
-default="1800"
-optional
-details="
- No fading if set to 0.
-"
-
-option "fa_vol" -
-#~~~~~~~~~~~~~~~~
- "volume to fade to"
- int typestr="volume"
- default="20"
- optional
-
-option "sleep_mode" -
-#~~~~~~~~~~~~~~~~~~~~~~
-"sleep time afs mode"
-details = "
- Select the given afs mode after the fade out is complete. If
- unset, the \"stop\" command is sent to para_server.
-"
-string typestr="afs_mode"
-default="m/sleep"
-optional
-
-option "wake_hour" H
-#~~~~~~~~~~~~~~~~~~~
- "(0-23) (default: now + 9 hours)"
- int typestr="hour"
- optional
-
-option "wake_min" M
-#~~~~~~~~~~~~~~~~~~
-"(0-59)"
- int typestr="minutes"
- default="0"
- optional
-
-option "wake_mode" -
-#~~~~~~~~~~~~~~~~~~~
-"wake time afs mode"
-string typestr="afs_mode"
-default="m/wake"
-optional
-details="
- Change to this afs mode on waketime.
-"
-
-option "wake_fade" -
-#~~~~~~~~~~~~~~~~~~~
- "no fading in if set to 0"
- int typestr="seconds"
- default="1200"
- optional
-
-option "wake_vol" -
-#~~~~~~~~~~~~~~~~~~
- "vol to fade to at waketime"
- int typestr="volume"
- default="80"
- optional
-
-section "snooze options"
-########################
-
-option "snooze_out_fade" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~
- "fade out time"
- int typestr="seconds"
- default="30"
- optional
-
-option "snooze_out_vol" -
-#~~~~~~~~~~~~~~~~~~~~~~~~
- "vol to fade to before snooze"
- int typestr="volume"
- default="20"
- optional
-
-option "snooze_time" -
-#~~~~~~~~~~~~~~~~~~~~~
- "delay"
- int typestr="seconds"
- default="600"
- optional
-
-option "snooze_in_fade" -
-#~~~~~~~~~~~~~~~~~~~~~~~~
- "fade in time"
- int typestr="seconds"
- default="180"
- optional
-
-option "snooze_in_vol" -
-#~~~~~~~~~~~~~~~~~~~~~~~
- "vol to fade to after snooze"
- int typestr="volume"
- default="80"
- optional
-
-section "fade options"
-######################
-
-option "fade_vol" f
-#~~~~~~~~~~~~~~~~~~
- "volume to fade to"
- int typestr="volume"
- default="50"
- optional
-
-option "fade_time" t
-#~~~~~~~~~~~~~~~~~~~
- "time to fade in"
- int typestr="seconds"
- default="5"
- optional
+++ /dev/null
-option "filename" f
-#~~~~~~~~~~~~~~~~~~
-"specify output file name"
-string typestr="filename"
-optional
-details="
- Defaults to a random filename in ~/.paraslash.
-"
-
+++ /dev/null
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
- "set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-
-option "filter" f
-#~~~~~~~~~~~~~~~~
-"Specify filter."
-string typestr="filter_spec"
-optional
-multiple
-details="
- May be given multiple times to 'pipe' the stream through
- arbitrary many filters in an efficient way. The same filter
- may appear more than once, order matters.
-
- Filter options may be specified for each '-f' option
- separately. Note that you will have to quote these options
- like this:
-
- -f 'compress --inertia 5 --damp 2'
-"
+++ /dev/null
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-
-"set loglevel (0-6)"
-
- int typestr="level"
- default="2"
- optional
-
-option "base_dir" b
-#~~~~~~~~~~~~~~~~~~
-"Full path to the database directory
-containing the table(s) to be checked.
-(default='~/.paraslash/afs_database'"
-
- string typestr="path"
- optional
-
-option "dump_dir" d
-#~~~~~~~~~~~~~~~~~~
-"If path is non-empty, para_fsck will write a
-dump of all given tables to the specified
-path."
-
- string typestr="path"
- optional
- default=""
-
-option "no_fsck" n
-#~~~~~~~~~~~~~~~~~
-"Disable fsck mode."
-
- flag off
-
-option "force" f
-#~~~~~~~~~~~~~~~
-"Force fsck even if the table is dirty.
-Ignored if -n is given."
-
- flag off
-
-option "dry_run" -
-#~~~~~~~~~~~~~~~~~
-"Only report problems, don't try to fix them."
-
- flag off
-
--- /dev/null
+text "
+para_afh, the audio format handler tool, is a stand-alone program
+contained in the paraslash package for analyzing and streaming audio
+files. It can be used to
+
+ - print tech info about the given audio file to stdout.
+ In particular, the 'chunk table' of the audio file, an array
+ of offsets within the audio file, may be printed. This table
+ can be used by other programs unaware of the particular audio
+ format to stream the audio file.
+
+ - write selected parts of the given audio file in complete
+ chunks without decoding. Thus para_afh can be used to 'cut'
+ an audio file.
+
+ - write selected parts of the given audio files 'just in time'
+ to sdout. This may be useful for third-party software that
+ is capable of reading from stdin.
+"
+
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+int typestr="level"
+default="4"
+optional
+
+defgroup "mode"
+#--------------
+groupdesc="
+ There are two modes of operation: Info mode and stream mode,
+ one of which must be selected by the corresponding option.
+ See below.
+"
+required
+
+groupoption "info" i
+#~~~~~~~~~~~~~~~~~~~
+"select info mode"
+group="mode"
+details="
+ In this mode, the program prints technical information about
+ the given audio file to stdout.
+"
+
+groupoption "stream" s
+#~~~~~~~~~~~~~~~~~~~~~
+"select stream mode"
+group="mode"
+details="
+ If this mode is selected, the selected parts of the content
+ of the audio file are written to stdout. Only complete chunks
+ with respect of the underlying audio format are written.
+ For example, only complete frames in case of mp3 files.
+"
+
+section "Options for info mode"
+#==============================
+
+option "chunk_table" c
+#~~~~~~~~~~~~~~~~~~~~~
+"print also the chunk table"
+flag off
+dependon="info"
+
+section "Options for stream mode"
+#================================
+
+
+option "begin_chunk" b
+#~~~~~~~~~~~~~~~~~~~~~
+"skip a number of chunks"
+int typestr="chunk_num"
+default="0"
+dependon="stream"
+optional
+details="
+ The chunk_num argument must be between -num_chunks and
+ num_chunks - 1 inclusively where num_chunks is the total number
+ of chunks which is printed when using the --info option. If
+ chunk_num is negative, the given number of chunks are counted
+ backwards from the end of the file. For example --begin_chunk
+ -100 instructs para_afh to start output at chunk num_chunks
+ - 100. This is mainly useful for cutting off the end of an
+ audio file.
+"
+
+option "end_chunk" e
+#~~~~~~~~~~~~~~~~~~~
+"only write up to chunk chunk_num"
+int typestr="chunk_num"
+dependon="stream"
+optional
+details="
+ For the chunk_num argument the same rules as for --begin_chunk
+ apply. The default is to write up to the last chunk.
+"
+
+option "just_in_time" j
+#~~~~~~~~~~~~~~~~~~~~~~
+"use timed writes"
+flag off
+dependon="stream"
+details="
+ Write the specified chunks of data 'just in time', i.e. the
+ write of each chunk is delayed until the time it is needed
+ by the decoder/player in order to guarantee an uninterupted
+ audio stream.
+"
+
+option "no_header" H
+#~~~~~~~~~~~~~~~~~~~
+"do not write an audio file header"
+flag off
+dependon="stream"
+details="
+ If an audio format needs information about the audio file
+ in a format-specific header in order to be understood by
+ the decoding software, a suitable header is automatically
+ send. This option changes the default behaviour, i.e. no
+ header is written.
+"
--- /dev/null
+option "device" d
+#~~~~~~~~~~~~~~~~
+"set PCM device"
+string typestr="device"
+default="default"
+optional
+details="
+ On systems with dmix, a better choice than the default
+ value might be to use \"plug:swmix\".
+"
+
+option "channels" c
+#~~~~~~~~~~~~~~~~~~
+"specify number of channels"
+int typestr="num"
+default="2"
+optional
+details="
+ This option is only necessary for playing raw audio with
+ para_write. In all other cases (plaing wav files with
+ para_write or using this writer with para_audiod), the number
+ of channels will be obtained from other resources.
+"
+
+option "samplerate" s
+#~~~~~~~~~~~~~~~~~~~~~
+"force given sample rate"
+int typestr="num"
+default="44100"
+optional
+details="
+ Again, it is only necessary to specify this when playing raw
+ audio with para_write.
+"
--- /dev/null
+option "amp" a
+#~~~~~~~~~~~~~
+"amplification value"
+int typestr="number"
+default="32"
+optional
+details="
+ The amplification value determines the scaling factor by
+ which the amplitude of the audio stream is multiplied. The
+ formula for the scaling factor is
+
+ factor = 1 + amp / 64.
+
+ For example, an amplifiction value of zero results in a
+ scaling factor of one while an amplification value of 64
+ means to double the volume.
+"
--- /dev/null
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+ int typestr="level"
+ default="4"
+ optional
+
+
+option "socket" s
+#~~~~~~~~~~~~~~~~
+"well-known socket (default=/var/paraslash/audiod.socket.$HOSTNAME)"
+ string typestr="filename"
+ optional
+
+
+option "bufsize" b
+#~~~~~~~~~~~~~~~~~
+"size of internal buffer"
+ int typestr="bytes"
+ default="8192"
+ optional
--- /dev/null
+#########################
+section "General options"
+#########################
+
+text "
+ These options are identical to their counterparts in para_server
+ and are discussed in detail there.
+"
+
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+int typestr="level"
+default="3"
+optional
+
+option "color" C
+#~~~~~~~~~~~~~~~
+"activate color output"
+enum typestr="when"
+values = "yes","no","auto"
+default = "auto"
+optional
+
+option "log_color" -
+#~~~~~~~~~~~~~~~~~~~
+"select a color for one type of log message"
+string typestr="color_spec"
+multiple
+optional
+details="
+ Example: --log_color \"INFO:yellow black bold\"
+"
+
+option "config_file" c
+#~~~~~~~~~~~~~~~~~~~~~
+"(default='~/.paraslash/audiod.conf'"
+string typestr="filename"
+optional
+
+option "logfile" L
+#~~~~~~~~~~~~~~~~~
+"where to write log output"
+string typestr="filename"
+optional
+
+option "daemon" d
+#~~~~~~~~~~~~~~~~
+"run as background daemon"
+flag off
+dependon="logfile"
+
+option "user" u
+#~~~~~~~~~~~~~~
+"run as the given user"
+string typestr="name"
+optional
+
+option "group" g
+#~~~~~~~~~~~~~~~
+"set group id"
+string typestr="group"
+optional
+
+########################
+section "Audiod options"
+########################
+
+option "force" F
+#~~~~~~~~~~~~~~~
+"force startup"
+flag off
+details="
+ If this flag is not given, para_audiod refuses to start if the
+ well-known socket file (see the --socket option) already exists
+ because this usually means that para_audiod is already running
+ and listening on that socket. After a crash or if para_audiod
+ received a SIGKILL signal, a stale socket file might remain and
+ you have to use --force once to force startup of para_audiod.
+"
+
+option "mode" m
+#~~~~~~~~~~~~~~
+"startup mode"
+string typestr="mode"
+default="on"
+optional
+details="
+ Para_audiod supports three modes of operation: On, off and
+ standby (sb). This option selects the mode that should be
+ used on startup. If para_audiod operates in \"on\" mode, it
+ will connect to para_server in order to receive its status
+ information. If para_server announces the availability of an
+ audio stream, para_audiod will automatically download, decode
+ and play the audio stream according to the given stream I/O
+ options, see below.
+
+ In \"standby\" mode, para_audiod will only receive the
+ status information from para_server but will not download
+ the audio stream.
+
+ In \"off\" mode, para_audiod does not connect para_server at
+ all, but still listens on the local socket for connections.
+"
+
+option "socket" s
+#~~~~~~~~~~~~~~~~
+"well-known socket"
+string typestr="filename"
+optional
+details="
+ Para_audiod uses a \"well-known\" socket to listen
+ on for connections from para_audioc. This socket is a
+ special file in the file system; its location defaults to
+ /var/paraslash/audiod_sock.<host_name>.
+
+ para_audioc, the client program used to connect to para_audiod,
+ opens this socket in order to talk to para_audiod. If the
+ default value for para_audiod is changed, para_audioc must be
+ instructed to use also \"filename\" for connecting para_audiod.
+"
+
+option "user_allow" -
+#~~~~~~~~~~~~~~~~~~~~
+"allow this uid"
+int typestr="uid"
+default="-1"
+optional
+multiple
+details="
+ Allow the user identified by \"uid\" to connect to para_audiod.
+ May be specified multiple times. If not specified at all,
+ all users are allowed to connect.
+
+ This feature requires unix socket credentials and is currently
+ only supported on Linux systems. On other operating systems,
+ the option is silently ignored and all local users are allowed
+ to connect to para_audiod.
+"
+
+option "clock_diff_count" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"sync clock on startup"
+int typestr="count"
+default="0"
+optional
+details="
+ Check the clock difference between the host running para_server
+ and the local host running para_audiod that many times before
+ starting any stream I/0. Set this to non-zero for non-local
+ setups if the clocks of these two hosts are not syncronized
+ by ntp or similar.
+"
+
+#############################
+section "Stream I/O options"
+#############################
+
+option "receiver" r
+#~~~~~~~~~~~~~~~~~~
+"select receiver"
+string typestr="receiver_spec"
+default="http"
+optional
+multiple
+details="
+ This option may be given multiple times, once for each
+ supported audio format. The \"receiver_spec\" consists of
+ an audio format and the receiver name, separated by a colon,
+ and any options for that receiver, seperated by whitespace.
+ If any receiver options are present, the whole receiver
+ argument must be quoted.
+
+ Example:
+
+ -r 'mp3:http -i my.host.org -p 8009'
+"
+
+
+option "no_default_filters" D
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"Configure filters manually"
+flag off
+details="
+ If (and only if) this option is set, the --filter options
+ (see below) take effect. Otherwise, the compiled-in default
+ filters mp3dec, oggdec and aacdec are activated for mp3, ogg,
+ aac streams respectively.
+"
+
+option "filter" f
+#~~~~~~~~~~~~~~~~
+"Use non-default filters"
+string typestr="filter_spec"
+optional
+multiple
+dependon="no_default_filters"
+details="
+ This option may be given multiple times. The \"filter_spec\"
+ consists of an audio format, the name of the filter, and any
+ options for that filter. Mote that order matters.
+
+ Examples:
+
+ --filter 'mp3:mp3dec'
+
+ --filter 'mp3:compress --inertia 5 --damp 2'
+
+"
+
+option "writer" w
+#~~~~~~~~~~~~~~~~
+"Specify stream writer."
+string typestr="writer_spec"
+optional
+multiple
+details="
+ May be given multiple times, even multiple times for the same
+ audio format. Default value is \"alsa\" for all supported
+ audio formats. Example:
+
+ --writer 'aac:osx'
+
+"
+
+option "stream_delay" -
+#~~~~~~~~~~~~~~~~~~~~~~
+"time for client sync"
+int typestr="milliseconds"
+default="200"
+optional
+details="
+ Add the given amount of milliseconds to the stream start time
+ announced by para_server and do not send data to the writer
+ before that time (modulo clock difference).
+
+ This is useful mainly for syncronizing the audio output of
+ different clients.
+"
--- /dev/null
+# file client.conf
+args "--no-handle-error"
+option "hostname" i "ip or host to connect" string typestr="host" default="localhost" optional
+option "user" u "paraslash username" string typestr="username" default="<current user>" optional
+option "server_port" p "port to connect" int typestr="port" default="2990" optional
+option "key_file" k "(default='~/.paraslash/key.<user>')" string typestr="filename" optional
+option "loglevel" l "set loglevel (0-6)" int typestr="number" default="5" optional
+option "config_file" c "(default='~/.paraslash/client.conf')" string typestr="filename" optional
+option "plain" - "request an uncrypted session" flag off
--- /dev/null
+option "blocksize" b
+#~~~~~~~~~~~~~~~~~~~
+"adjust block size"
+int typestr="number"
+default="15"
+optional
+details = "
+ Larger blocksize means fewer volume adjustments per time unit.
+"
+
+option "aggressiveness" a
+#~~~~~~~~~~~~~~~~~~~~~~~~
+ "controls the maximum amount to amplify by"
+int typestr="number"
+default="4"
+optional
+
+option "inertia" i
+#~~~~~~~~~~~~~~~~~
+ "how much inertia ramping has"
+ int typestr="number"
+default="6"
+optional
+
+option "target_level" t
+#~~~~~~~~~~~~~~~~~~~~~~
+"target signal level (0-32768)"
+int typestr="number"
+default="20000"
+optional
+
+option "damp" d
+#~~~~~~~~~~~~~~
+"if non-zero, scale down after normalizing"
+int typestr="number"
+default="0"
+optional
--- /dev/null
+option "host" i
+"ip or host"
+string default="localhost"
+optional
+details="
+ Both IPv4 and IPv6 addresses are supported.
+"
+
+option "port" p
+"port to connect to"
+int
+default="8000"
+optional
--- /dev/null
+section "general options"
+#########################
+
+option "mode" o
+#~~~~~~~~~~~~~~
+"{sleep|fade|snooze}"
+string default="sleep"
+optional
+details="
+ para_fade knows these three different modes.
+
+ sleep mode: Change to the initial volume and an initial afs
+ mode, then fade the volume down until the fade out volume is
+ reached. Switch to the afs sleep mode until the wake time is
+ reached. Then switch to the afs wake mode and and fade in to
+ the wake volume.
+
+ fade: Fade the volume to the given value in the given time.
+
+ snooze: Fade out, sleep a bit and fade in.
+"
+
+option "config_file" c
+#~~~~~~~~~~~~~~~~~~~~~
+ "(default='~/.paraslash/fade.conf')"
+ string typestr="filename"
+ optional
+
+option "mixer_device" m
+#~~~~~~~~~~~~~~~~~~~~~~
+ "mixer device file"
+ string typestr="device"
+ default="/dev/mixer"
+ optional
+
+section "sleep options (only relevant in sleep mode)"
+#####################################################
+
+option "sleep_ivol" -
+#~~~~~~~~~~~~~~~~~~~~
+"set initial volume"
+int typestr="volume"
+default="60"
+optional
+details="
+ Used as the start volume, before fading out to the fade out volume.
+"
+
+option "fa_mode" -
+#~~~~~~~~~~~~~~~~~
+"fall asleep afs mode."
+string typestr="afs_mode"
+default="m/fade"
+optional
+details="
+ Select this mode right after setting the volume. Example:
+ --fa_mode m/sleep
+"
+
+option "fa_fade" -
+#~~~~~~~~~~~~~~~~~
+ "fall asleep fading time"
+int typestr="seconds"
+default="1800"
+optional
+details="
+ No fading if set to 0.
+"
+
+option "fa_vol" -
+#~~~~~~~~~~~~~~~~
+ "volume to fade to"
+ int typestr="volume"
+ default="20"
+ optional
+
+option "sleep_mode" -
+#~~~~~~~~~~~~~~~~~~~~~~
+"sleep time afs mode"
+details = "
+ Select the given afs mode after the fade out is complete. If
+ unset, the \"stop\" command is sent to para_server.
+"
+string typestr="afs_mode"
+default="m/sleep"
+optional
+
+option "wake_hour" H
+#~~~~~~~~~~~~~~~~~~~
+ "(0-23) (default: now + 9 hours)"
+ int typestr="hour"
+ optional
+
+option "wake_min" M
+#~~~~~~~~~~~~~~~~~~
+"(0-59)"
+ int typestr="minutes"
+ default="0"
+ optional
+
+option "wake_mode" -
+#~~~~~~~~~~~~~~~~~~~
+"wake time afs mode"
+string typestr="afs_mode"
+default="m/wake"
+optional
+details="
+ Change to this afs mode on waketime.
+"
+
+option "wake_fade" -
+#~~~~~~~~~~~~~~~~~~~
+ "no fading in if set to 0"
+ int typestr="seconds"
+ default="1200"
+ optional
+
+option "wake_vol" -
+#~~~~~~~~~~~~~~~~~~
+ "vol to fade to at waketime"
+ int typestr="volume"
+ default="80"
+ optional
+
+section "snooze options"
+########################
+
+option "snooze_out_fade" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~
+ "fade out time"
+ int typestr="seconds"
+ default="30"
+ optional
+
+option "snooze_out_vol" -
+#~~~~~~~~~~~~~~~~~~~~~~~~
+ "vol to fade to before snooze"
+ int typestr="volume"
+ default="20"
+ optional
+
+option "snooze_time" -
+#~~~~~~~~~~~~~~~~~~~~~
+ "delay"
+ int typestr="seconds"
+ default="600"
+ optional
+
+option "snooze_in_fade" -
+#~~~~~~~~~~~~~~~~~~~~~~~~
+ "fade in time"
+ int typestr="seconds"
+ default="180"
+ optional
+
+option "snooze_in_vol" -
+#~~~~~~~~~~~~~~~~~~~~~~~
+ "vol to fade to after snooze"
+ int typestr="volume"
+ default="80"
+ optional
+
+section "fade options"
+######################
+
+option "fade_vol" f
+#~~~~~~~~~~~~~~~~~~
+ "volume to fade to"
+ int typestr="volume"
+ default="50"
+ optional
+
+option "fade_time" t
+#~~~~~~~~~~~~~~~~~~~
+ "time to fade in"
+ int typestr="seconds"
+ default="5"
+ optional
--- /dev/null
+option "filename" f
+#~~~~~~~~~~~~~~~~~~
+"specify output file name"
+string typestr="filename"
+optional
+details="
+ Defaults to a random filename in ~/.paraslash.
+"
+
--- /dev/null
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+ "set loglevel (0-6)"
+int typestr="level"
+default="3"
+optional
+
+option "filter" f
+#~~~~~~~~~~~~~~~~
+"Specify filter."
+string typestr="filter_spec"
+optional
+multiple
+details="
+ May be given multiple times to 'pipe' the stream through
+ arbitrary many filters in an efficient way. The same filter
+ may appear more than once, order matters.
+
+ Filter options may be specified for each '-f' option
+ separately. Note that you will have to quote these options
+ like this:
+
+ -f 'compress --inertia 5 --damp 2'
+"
--- /dev/null
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+
+"set loglevel (0-6)"
+
+ int typestr="level"
+ default="2"
+ optional
+
+option "base_dir" b
+#~~~~~~~~~~~~~~~~~~
+"Full path to the database directory
+containing the table(s) to be checked.
+(default='~/.paraslash/afs_database'"
+
+ string typestr="path"
+ optional
+
+option "dump_dir" d
+#~~~~~~~~~~~~~~~~~~
+"If path is non-empty, para_fsck will write a
+dump of all given tables to the specified
+path."
+
+ string typestr="path"
+ optional
+ default=""
+
+option "no_fsck" n
+#~~~~~~~~~~~~~~~~~
+"Disable fsck mode."
+
+ flag off
+
+option "force" f
+#~~~~~~~~~~~~~~~
+"Force fsck even if the table is dirty.
+Ignored if -n is given."
+
+ flag off
+
+option "dry_run" -
+#~~~~~~~~~~~~~~~~~
+"Only report problems, don't try to fix them."
+
+ flag off
+
--- /dev/null
+option "filter_num" f
+ "point of filter chain to grab"
+ int typestr="num"
+ default="0"
+ optional
+
+option "slot" s
+ "only grab this slot; grab any slot if negative"
+ int typestr="num"
+ default="-1"
+ optional
+
+option "audio_format" a
+ "only grab this type of input stream;
+ grab any if empty"
+ string typestr="name"
+ default=""
+ optional
+
+option "input_grab" i
+ "grab the filter input instead of its output"
+ flag off
+
+option "one_shot" o
+ "stop grabbing if audio file changes"
+ flag off
+
+option "mode" m
+ "select grab mode"
+ typestr="grab_mode"
+ values="sloppy","aggressive","pedantic"
+ default="sloppy"
+ optional
--- /dev/null
+#------------------------
+section "general options"
+#------------------------
+
+option "config_file" c
+#~~~~~~~~~~~~~~~~~~~~~~
+"(default='~/.paraslash/gui.conf')"
+
+ string typestr="filename"
+ optional
+
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+ "set loglevel (0-6)"
+int typestr="level"
+default="3"
+optional
+details="
+ See \"para_server --detailed-help\" for the discussion of
+ loglevels.
+"
+
+option "timeout" t
+#~~~~~~~~~~~~~~~~~
+"set timeout"
+
+ int typestr="milliseconds"
+ default="30"
+ optional
+
+option "stat_cmd" s
+#~~~~~~~~~~~~~~~~~~
+"command to read server and audiod status
+data from"
+
+ string typestr="command"
+ default="para_audioc stat"
+ optional
+
+#---------------------------------
+section "mapping keys to commands"
+#---------------------------------
+
+option "key_map" k
+#~~~~~~~~~~~~~~~~~
+
+"Map key k to command c using mode m. Mode
+may be d, x or p for display, external and
+paraslash commands, respectively. Of course,
+this option may be given multiple times, one
+for each key mapping."
+
+ string typestr="k:m:c"
+ optional
+ multiple
--- /dev/null
+option "host" i
+#~~~~~~~~~~~~~~
+"ip or host"
+string
+default="localhost"
+optional
+details="
+ Both IPv4 and IPv6 addresses are supported.
+"
+
+option "port" p
+#~~~~~~~~~~~~~~
+"tcp port to connect to"
+int default="8000"
+optional
--- /dev/null
+option "bufsize" b
+#~~~~~~~~~~~~~~~~~
+"size of output buffer"
+int typestr="kilobyte"
+default="128"
+optional
+details="
+ Increase this if you encounter output buffer overrun
+ errors. Smaller values make the mp3dec filter use less
+ memory. The minimal size is 32K.
+"
+
+option "ignore-crc" i
+#~~~~~~~~~~~~~~~~~~~~
+"ignore CRC information in the audio stream."
+flag off
+details="
+ This causes frames with CRC errors to be decoded and played
+ anyway. This option is not recommended, but since some encoders
+ have been known to generate bad CRC information, this option
+ is a work-around to play streams from such encoders.
+"
--- /dev/null
+option "bufsize" b
+#~~~~~~~~~~~~~~~~~
+"size of output buffer"
+int typestr="kilobyte"
+default="128"
+optional
+details="
+ Increase this if you encounter output buffer overrun errors. Smaller
+ values make the oggdec filter use less memory.
+"
+
+option "initial_buffer" i
+#~~~~~~~~~~~~~~~~~~~~~~~~
+"size of initial input buffer"
+int typestr="kilobyte"
+default="16"
+optional
+details="
+ On startup, defer decoding until that many kilobytes are
+ available in the input buffer.
+"
--- /dev/null
+section "osx options"
+#####################
+
+option "channels" c
+#~~~~~~~~~~~~~~~~~~
+"number of channels (only neccessary for raw
+audio)"
+
+ int typestr="num"
+ default="2"
+ optional
+
+option "samplerate" s
+#~~~~~~~~~~~~~~~~~~~~~
+
+"force given sample rate (only neccessary for
+raw audio)"
+
+ int typestr="num"
+ default="44100"
+ optional
+
+option "numbuffers" n
+#~~~~~~~~~~~~~~~~~~~~~
+
+"number of audio buffers to allocate (increase if
+you get buffer underruns)"
+
+ int typestr="num"
+ default="5"
+ optional
--- /dev/null
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+int typestr="level"
+default="3"
+optional
+
+option "receiver" r
+"Select receiver"
+string typestr="receiver_spec"
+default="http"
+optional
+details="
+ Any options for the selected receiver must
+ be quoted. Example:
+
+ -r 'http -i www.paraslash.org -p 8009'
+"
+
--- /dev/null
+#########################
+section "General options"
+#########################
+
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+int typestr="level"
+default="3"
+optional
+details="
+ Larger values mean less verbose output. Loglevel 0 (debug) gets
+ really noisy; a value of 1 (info) produces still noisy output,
+ but this won't fill up the disk quicky. Messaged logged with
+ loglevel 2 (notice) indicate normal but significant events
+ while level 3 (warning) logs unexpected events that can be
+ handled. Unhandled error conditions are logged with loglevel
+ 4 (error) and crititcal errors are logged using loglevel 5
+ (crit). Finally, loglevel 6 (emerg) is reserved for messages
+ that cause para_server to terminate immediately.
+"
+
+option "color" C
+#~~~~~~~~~~~~~~~
+"activate color output"
+enum typestr="when"
+values = "yes","no","auto"
+default = "auto"
+optional
+
+option "log_color" -
+#~~~~~~~~~~~~~~~~~~~
+"select a color for one type of log message"
+string typestr="color_spec"
+multiple
+optional
+details="
+ The format of \"color_spec\" is [fg [bg]] [attr].
+
+ Valid colors for \"fg\" and \"bg\" are \"normal\", \"black\",
+ \"red\", \"green\", \"yellow\", \"blue\", \"magenta\",
+ \"cyan\", and \"white\".
+
+ The \"attr\" value must be one of \"bold\", \"dim\", \"ul\",
+ \"blink\", \"reverse\".
+
+ Examples:
+
+ --log_color \"debug:green\"
+ --log_color \"info:yellow bold\"
+ --log_color \"notice:white red bold\"
+"
+
+option "port" p
+#~~~~~~~~~~~~~~
+"listening port"
+int typestr="portnumber"
+default="2990"
+optional
+details="
+ para_server listens on this tcp port for incoming connections
+ from clients such as para_client. If the default port is
+ changed, the corresponding option of para_client must be used
+ to connect to para_server.
+"
+
+option "daemon" d
+#~~~~~~~~~~~~~~~~
+"run as background daemon"
+flag off
+dependon="logfile"
+details="
+ Note that para_server refuses to start in daemon mode if no
+ logfile was specified.
+"
+
+option "user" u
+#~~~~~~~~~~~~~~
+"run as the given user"
+string typestr="name"
+optional
+details="
+ para_server does not need any special privileges. If started
+ as root (EUID == 0) this option must be given at the command
+ line (not in the configuration file) so that para_server
+ can drop the root privileges right after parsing the command
+ line options, but before parsing the configuration file. In
+ this case, real/effective/saved UID are all set to the UID
+ of 'name'. As the configuration file is read afterwards,
+ those options that have a default value depending on the UID
+ (e.g. the directory for the configuration file) are computed
+ by using the uid of 'name'. This option has no effect if
+ para_server is started as a non-root user (i.e. EUID != 0)
+"
+
+
+option "group" g
+#~~~~~~~~~~~~~~~
+"set group id"
+string typestr="group"
+optional
+details="
+ This option sets the group id according to 'group'. This option
+ is silently ignored if EUID != 0. Otherwise, real/effective
+ GID and the saved set-group ID are all set to the GID given by
+ 'group'. Must not be given in the config file.
+"
+
+#############################
+section "Configuration files"
+#############################
+
+
+option "logfile" L
+#~~~~~~~~~~~~~~~~~
+"where to write log output"
+string typestr="filename"
+optional
+details="
+ If this option is not given, para_server writes the log
+ messages to to stderr
+"
+
+option "config_file" c
+#~~~~~~~~~~~~~~~~~~~~~
+"(default='~/.paraslash/server.conf'"
+string typestr="filename"
+optional
+details="
+ para_server reads its config file right after parsing
+ the options that were given at the command line. If an
+ option is given both at the command line and in the
+ config file, the value that was specified at the command line
+ takes precedence.
+"
+
+option "user_list" -
+#~~~~~~~~~~~~~~~~~~~
+"(default='~/.paraslash/server.users')"
+
+string typestr="filename"
+optional
+
+
+##################################
+section "virtual streaming system"
+##################################
+
+
+option "autoplay" a
+#~~~~~~~~~~~~~~~~~~
+"start playing on startup"
+flag off
+
+option "autoplay_delay" -
+#~~~~~~~~~~~~~~~~~~~~~~~~
+"time to wait before streaming"
+int typestr="ms"
+default="0"
+optional
+dependon="autoplay"
+details="
+ If para_server is started with the autoplay option, this option
+ may be used to set up a delay before para_server streams its
+ first audio file. This is useful for example if para_server
+ and para_audiod are started during system startup. The delay
+ time should be choosen large enough so that para_audiod is
+ already up when para_server starts to stream. Of course, this
+ option depends on the autoplay option.
+"
+option "announce_time" A
+#~~~~~~~~~~~~~~~~~~~~~~~
+"grace time for clients"
+
+int typestr="ms"
+default="300"
+optional
+details="
+ Clients such as para_audiod connect to para_server and execute
+ the stat command to find out whether an audio stream is
+ currently available. This sets the delay betweeen announcing
+ the stream via the output of the stat command and sending
+ the first chunk of data.
+"
+
+#############################
+section "audio file selector"
+#############################
+
+option "afs_database_dir" D
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"location of the database"
+string typestr="path"
+optional
+details="
+ Where para_server should look for the osl database of the audio
+ file selector. The default is '~/.paraslash/afs_database'.
+"
+
+option "afs_socket" s
+#~~~~~~~~~~~~~~~~~~~~
+"Command socket for afs"
+string typestr="path"
+default="/var/paraslash/afs_command_socket"
+optional
+details="
+ For each server command that is handled by the audio file
+ selector, the child process of para_server connects to the
+ audio file selector via a local socket. This option specifies
+ the location of that socket in the file system.
+"
+option "afs_initial_mode" i
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+"Mood or playlist to load on startup."
+string typestr="<specifier>/<name>"
+optional
+
+details="
+ The argument of this option must be prefixed with either 'p/'
+ or 'm/' to indicate whether a playlist or a mood should be
+ loaded. Example:
+ --afs_initial_mode p/foo
+ loads the playlist named 'foo'.
+"
+
+#####################
+section "http sender"
+#####################
+
+
+option "http_port" -
+#~~~~~~~~~~~~~~~~~~~
+"tcp port for http streaming"
+int typestr="portnumber"
+default="8000"
+optional
+details="
+ The http sender of para_server listens on this port for
+ incoming connections. Clients are expected to send the usual
+ http request message such as 'GET / HTTP/'.
+"
+
+option "http_default_deny" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"make the http ACL a whitelist"
+flag off
+details="
+ The default is to use blacklists instead, i.e. connections
+ to the http sender are allowed unless the connecting host
+ matches a pattern given by a http_access option. This allows
+ to use access control the other way round: Connections are
+ denied from hosts which are not explicitly allowed by one or
+ more http_access options.
+"
+
+option "http_access" -
+#~~~~~~~~~~~~~~~~~~~~~
+"add an entry to the http ACL"
+string typestr="a.b.c.d/n"
+optional
+multiple
+details="
+ Add given host/network to access control list (whitelist if
+ http_default_deny was given, blacklist otherwise) before
+ opening the tcp port. This option can be given multiple
+ times. Example: '192.168.0.0/24' whitelists/blacklists the
+ 256 hosts 192.168.0.x
+"
+
+option "http_no_autostart" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"do not open tcp port on startup"
+flag off
+details="
+ If this option is given, the http sender does not listen on
+ its tcp port. It may be instructed to open this port at a
+ later time by using the sender command.
+"
+
+option "http_max_clients" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"maximal number of connections"
+int typestr="number"
+default="-1"
+optional
+details="
+ The http sender will refuse connections if already that number
+ of clients are currently connected. A non-positive value
+ (the default) allows an unlimited number of simultaneous
+ connections.
+"
+
+#####################
+section "dccp sender"
+#####################
+
+
+option "dccp_port" -
+#~~~~~~~~~~~~~~~~~~~
+"port for dccp streaming"
+int typestr="portnumber"
+default="8000"
+optional
+details="
+ See http_port for details.
+"
+
+option "dccp_default_deny" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"make the dccp ACL a whitelist"
+flag off
+details="
+ See http_default_deny for details.
+"
+
+option "dccp_access" -
+#~~~~~~~~~~~~~~~~~~~~~
+"add an entry to the dccp ACL"
+string typestr="a.b.c.d/n"
+optional
+multiple
+details="
+ See http_access for details.
+"
+
+option "dccp_max_clients" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"maximal number of connections"
+int typestr="number"
+default="-1"
+optional
+details="
+ See http_max_clients for details.
+"
+
+####################
+section "udp sender"
+####################
+
+option "udp_target" -
+#~~~~~~~~~~~~~~~~~~~~
+"add udp target"
+string typestr="a.b.c.d:p"
+optional
+multiple
+details="
+ Add given host/port to the list of targets. This option
+ can be given multiple times. Example: '224.0.1.38:1500'
+ instructs the udp sender to send to udp port 1500 on host
+ 224.0.1.38 (unassigned ip in the Local Network Control Block
+ 224.0.0/24). This is useful for multicast streaming.
+"
+
+option "udp_no_autostart" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"do not start sending"
+flag off
+details="
+ If this option is given, udp streaming may be activated at
+ a later time by using the sender command.
+"
+
+option "udp_default_port" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"udp port to send to"
+int typestr="port"
+default="8000"
+optional
+
+option "udp_header_interval" H
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"duration for sending header"
+int typestr="ms"
+default="2000"
+optional
+details="
+ As the udp sender has no idea about connected clients it
+ sends the audio file header periodically if necessary. This
+ option is used to specify the duration of the interval between
+ sending the header. Shorter values decrease the average time
+ clients have to wait before being able to start playback,
+ but this also increases the amount network traffic. Note
+ that this affects only ogg vorbis streams as this is the only
+ audio format that needs an audio file header.
+"
+
+option "udp_ttl" t
+#~~~~~~~~~~~~~~~~~
+"set time to live value"
+int typestr="num"
+default="10"
+optional
+details="
+ This option instructs the udp sender to set the time to live to
+ \"num\" for the sending udp socket. Only useful for multicast
+ udp streaming.
+"
--- /dev/null
+option "host" i
+"ip or host to receive udp packets from"
+string default="224.0.1.38"
+optional
+details="
+ The default address resoves to DANTZ.MCAST.NET and activates
+ multicast.
+"
+
+option "port" p "udp port"
+int typestr="portnumber"
+default="8000"
+optional
--- /dev/null
+option "loglevel" l
+#~~~~~~~~~~~~~~~~~~
+"set loglevel (0-6)"
+int typestr="level"
+default="4"
+optional
+
+option "bufsize" b
+#~~~~~~~~~~~~~~~~~
+"input buffer size"
+int typestr="kilobytes"
+default="64"
+optional
+
+option "writer" w
+#~~~~~~~~~~~~~~~~
+"select stream writer"
+string typestr="name"
+default="alsa (file if alsa is unsupported)"
+optional
+multiple
+details="
+ May be give multiple times. The same writer may be specified
+ more than once.
+"
+
+option "start_time" t
+#~~~~~~~~~~~~~~~~~~~~
+"defer playback"
+string typestr="timeval"
+optional
+details="
+ Start playback at given time which must be in a:b format where
+ a denotes seconds and b denotes microseconds since the epoch.
+"
+++ /dev/null
-option "filter_num" f
- "point of filter chain to grab"
- int typestr="num"
- default="0"
- optional
-
-option "slot" s
- "only grab this slot; grab any slot if negative"
- int typestr="num"
- default="-1"
- optional
-
-option "audio_format" a
- "only grab this type of input stream;
- grab any if empty"
- string typestr="name"
- default=""
- optional
-
-option "input_grab" i
- "grab the filter input instead of its output"
- flag off
-
-option "one_shot" o
- "stop grabbing if audio file changes"
- flag off
-
-option "mode" m
- "select grab mode"
- typestr="grab_mode"
- values="sloppy","aggressive","pedantic"
- default="sloppy"
- optional
+++ /dev/null
-#------------------------
-section "general options"
-#------------------------
-
-option "config_file" c
-#~~~~~~~~~~~~~~~~~~~~~~
-"(default='~/.paraslash/gui.conf')"
-
- string typestr="filename"
- optional
-
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
- "set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-details="
- See \"para_server --detailed-help\" for the discussion of
- loglevels.
-"
-
-option "timeout" t
-#~~~~~~~~~~~~~~~~~
-"set timeout"
-
- int typestr="milliseconds"
- default="30"
- optional
-
-option "stat_cmd" s
-#~~~~~~~~~~~~~~~~~~
-"command to read server and audiod status
-data from"
-
- string typestr="command"
- default="para_audioc stat"
- optional
-
-#---------------------------------
-section "mapping keys to commands"
-#---------------------------------
-
-option "key_map" k
-#~~~~~~~~~~~~~~~~~
-
-"Map key k to command c using mode m. Mode
-may be d, x or p for display, external and
-paraslash commands, respectively. Of course,
-this option may be given multiple times, one
-for each key mapping."
-
- string typestr="k:m:c"
- optional
- multiple
+++ /dev/null
-option "host" i
-#~~~~~~~~~~~~~~
-"ip or host"
-string
-default="localhost"
-optional
-details="
- Both IPv4 and IPv6 addresses are supported.
-"
-
-option "port" p
-#~~~~~~~~~~~~~~
-"tcp port to connect to"
-int default="8000"
-optional
+++ /dev/null
-option "bufsize" b
-#~~~~~~~~~~~~~~~~~
-"size of output buffer"
-int typestr="kilobyte"
-default="128"
-optional
-details="
- Increase this if you encounter output buffer overrun
- errors. Smaller values make the mp3dec filter use less
- memory. The minimal size is 32K.
-"
-
-option "ignore-crc" i
-#~~~~~~~~~~~~~~~~~~~~
-"ignore CRC information in the audio stream."
-flag off
-details="
- This causes frames with CRC errors to be decoded and played
- anyway. This option is not recommended, but since some encoders
- have been known to generate bad CRC information, this option
- is a work-around to play streams from such encoders.
-"
+++ /dev/null
-option "bufsize" b
-#~~~~~~~~~~~~~~~~~
-"size of output buffer"
-int typestr="kilobyte"
-default="128"
-optional
-details="
- Increase this if you encounter output buffer overrun errors. Smaller
- values make the oggdec filter use less memory.
-"
-
-option "initial_buffer" i
-#~~~~~~~~~~~~~~~~~~~~~~~~
-"size of initial input buffer"
-int typestr="kilobyte"
-default="16"
-optional
-details="
- On startup, defer decoding until that many kilobytes are
- available in the input buffer.
-"
+++ /dev/null
-section "osx options"
-#####################
-
-option "channels" c
-#~~~~~~~~~~~~~~~~~~
-"number of channels (only neccessary for raw
-audio)"
-
- int typestr="num"
- default="2"
- optional
-
-option "samplerate" s
-#~~~~~~~~~~~~~~~~~~~~~
-
-"force given sample rate (only neccessary for
-raw audio)"
-
- int typestr="num"
- default="44100"
- optional
-
-option "numbuffers" n
-#~~~~~~~~~~~~~~~~~~~~~
-
-"number of audio buffers to allocate (increase if
-you get buffer underruns)"
-
- int typestr="num"
- default="5"
- optional
+++ /dev/null
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-
-option "receiver" r
-"Select receiver"
-string typestr="receiver_spec"
-default="http"
-optional
-details="
- Any options for the selected receiver must
- be quoted. Example:
-
- -r 'http -i www.paraslash.org -p 8009'
-"
-
+++ /dev/null
-#########################
-section "General options"
-#########################
-
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
-int typestr="level"
-default="3"
-optional
-details="
- Larger values mean less verbose output. Loglevel 0 (debug) gets
- really noisy; a value of 1 (info) produces still noisy output,
- but this won't fill up the disk quicky. Messaged logged with
- loglevel 2 (notice) indicate normal but significant events
- while level 3 (warning) logs unexpected events that can be
- handled. Unhandled error conditions are logged with loglevel
- 4 (error) and crititcal errors are logged using loglevel 5
- (crit). Finally, loglevel 6 (emerg) is reserved for messages
- that cause para_server to terminate immediately.
-"
-
-option "color" C
-#~~~~~~~~~~~~~~~
-"activate color output"
-enum typestr="when"
-values = "yes","no","auto"
-default = "auto"
-optional
-
-option "log_color" -
-#~~~~~~~~~~~~~~~~~~~
-"select a color for one type of log message"
-string typestr="color_spec"
-multiple
-optional
-details="
- The format of \"color_spec\" is [fg [bg]] [attr].
-
- Valid colors for \"fg\" and \"bg\" are \"normal\", \"black\",
- \"red\", \"green\", \"yellow\", \"blue\", \"magenta\",
- \"cyan\", and \"white\".
-
- The \"attr\" value must be one of \"bold\", \"dim\", \"ul\",
- \"blink\", \"reverse\".
-
- Examples:
-
- --log_color \"debug:green\"
- --log_color \"info:yellow bold\"
- --log_color \"notice:white red bold\"
-"
-
-option "port" p
-#~~~~~~~~~~~~~~
-"listening port"
-int typestr="portnumber"
-default="2990"
-optional
-details="
- para_server listens on this tcp port for incoming connections
- from clients such as para_client. If the default port is
- changed, the corresponding option of para_client must be used
- to connect to para_server.
-"
-
-option "daemon" d
-#~~~~~~~~~~~~~~~~
-"run as background daemon"
-flag off
-dependon="logfile"
-details="
- Note that para_server refuses to start in daemon mode if no
- logfile was specified.
-"
-
-option "user" u
-#~~~~~~~~~~~~~~
-"run as the given user"
-string typestr="name"
-optional
-details="
- para_server does not need any special privileges. If started
- as root (EUID == 0) this option must be given at the command
- line (not in the configuration file) so that para_server
- can drop the root privileges right after parsing the command
- line options, but before parsing the configuration file. In
- this case, real/effective/saved UID are all set to the UID
- of 'name'. As the configuration file is read afterwards,
- those options that have a default value depending on the UID
- (e.g. the directory for the configuration file) are computed
- by using the uid of 'name'. This option has no effect if
- para_server is started as a non-root user (i.e. EUID != 0)
-"
-
-
-option "group" g
-#~~~~~~~~~~~~~~~
-"set group id"
-string typestr="group"
-optional
-details="
- This option sets the group id according to 'group'. This option
- is silently ignored if EUID != 0. Otherwise, real/effective
- GID and the saved set-group ID are all set to the GID given by
- 'group'. Must not be given in the config file.
-"
-
-#############################
-section "Configuration files"
-#############################
-
-
-option "logfile" L
-#~~~~~~~~~~~~~~~~~
-"where to write log output"
-string typestr="filename"
-optional
-details="
- If this option is not given, para_server writes the log
- messages to to stderr
-"
-
-option "config_file" c
-#~~~~~~~~~~~~~~~~~~~~~
-"(default='~/.paraslash/server.conf'"
-string typestr="filename"
-optional
-details="
- para_server reads its config file right after parsing
- the options that were given at the command line. If an
- option is given both at the command line and in the
- config file, the value that was specified at the command line
- takes precedence.
-"
-
-option "user_list" -
-#~~~~~~~~~~~~~~~~~~~
-"(default='~/.paraslash/server.users')"
-
-string typestr="filename"
-optional
-
-
-##################################
-section "virtual streaming system"
-##################################
-
-
-option "autoplay" a
-#~~~~~~~~~~~~~~~~~~
-"start playing on startup"
-flag off
-
-option "autoplay_delay" -
-#~~~~~~~~~~~~~~~~~~~~~~~~
-"time to wait before streaming"
-int typestr="ms"
-default="0"
-optional
-dependon="autoplay"
-details="
- If para_server is started with the autoplay option, this option
- may be used to set up a delay before para_server streams its
- first audio file. This is useful for example if para_server
- and para_audiod are started during system startup. The delay
- time should be choosen large enough so that para_audiod is
- already up when para_server starts to stream. Of course, this
- option depends on the autoplay option.
-"
-option "announce_time" A
-#~~~~~~~~~~~~~~~~~~~~~~~
-"grace time for clients"
-
-int typestr="ms"
-default="300"
-optional
-details="
- Clients such as para_audiod connect to para_server and execute
- the stat command to find out whether an audio stream is
- currently available. This sets the delay betweeen announcing
- the stream via the output of the stat command and sending
- the first chunk of data.
-"
-
-#############################
-section "audio file selector"
-#############################
-
-option "afs_database_dir" D
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"location of the database"
-string typestr="path"
-optional
-details="
- Where para_server should look for the osl database of the audio
- file selector. The default is '~/.paraslash/afs_database'.
-"
-
-option "afs_socket" s
-#~~~~~~~~~~~~~~~~~~~~
-"Command socket for afs"
-string typestr="path"
-default="/var/paraslash/afs_command_socket"
-optional
-details="
- For each server command that is handled by the audio file
- selector, the child process of para_server connects to the
- audio file selector via a local socket. This option specifies
- the location of that socket in the file system.
-"
-option "afs_initial_mode" i
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-"Mood or playlist to load on startup."
-string typestr="<specifier>/<name>"
-optional
-
-details="
- The argument of this option must be prefixed with either 'p/'
- or 'm/' to indicate whether a playlist or a mood should be
- loaded. Example:
- --afs_initial_mode p/foo
- loads the playlist named 'foo'.
-"
-
-#####################
-section "http sender"
-#####################
-
-
-option "http_port" -
-#~~~~~~~~~~~~~~~~~~~
-"tcp port for http streaming"
-int typestr="portnumber"
-default="8000"
-optional
-details="
- The http sender of para_server listens on this port for
- incoming connections. Clients are expected to send the usual
- http request message such as 'GET / HTTP/'.
-"
-
-option "http_default_deny" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"make the http ACL a whitelist"
-flag off
-details="
- The default is to use blacklists instead, i.e. connections
- to the http sender are allowed unless the connecting host
- matches a pattern given by a http_access option. This allows
- to use access control the other way round: Connections are
- denied from hosts which are not explicitly allowed by one or
- more http_access options.
-"
-
-option "http_access" -
-#~~~~~~~~~~~~~~~~~~~~~
-"add an entry to the http ACL"
-string typestr="a.b.c.d/n"
-optional
-multiple
-details="
- Add given host/network to access control list (whitelist if
- http_default_deny was given, blacklist otherwise) before
- opening the tcp port. This option can be given multiple
- times. Example: '192.168.0.0/24' whitelists/blacklists the
- 256 hosts 192.168.0.x
-"
-
-option "http_no_autostart" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"do not open tcp port on startup"
-flag off
-details="
- If this option is given, the http sender does not listen on
- its tcp port. It may be instructed to open this port at a
- later time by using the sender command.
-"
-
-option "http_max_clients" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"maximal number of connections"
-int typestr="number"
-default="-1"
-optional
-details="
- The http sender will refuse connections if already that number
- of clients are currently connected. A non-positive value
- (the default) allows an unlimited number of simultaneous
- connections.
-"
-
-#####################
-section "dccp sender"
-#####################
-
-
-option "dccp_port" -
-#~~~~~~~~~~~~~~~~~~~
-"port for dccp streaming"
-int typestr="portnumber"
-default="8000"
-optional
-details="
- See http_port for details.
-"
-
-option "dccp_default_deny" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"make the dccp ACL a whitelist"
-flag off
-details="
- See http_default_deny for details.
-"
-
-option "dccp_access" -
-#~~~~~~~~~~~~~~~~~~~~~
-"add an entry to the dccp ACL"
-string typestr="a.b.c.d/n"
-optional
-multiple
-details="
- See http_access for details.
-"
-
-option "dccp_max_clients" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"maximal number of connections"
-int typestr="number"
-default="-1"
-optional
-details="
- See http_max_clients for details.
-"
-
-####################
-section "udp sender"
-####################
-
-option "udp_target" -
-#~~~~~~~~~~~~~~~~~~~~
-"add udp target"
-string typestr="a.b.c.d:p"
-optional
-multiple
-details="
- Add given host/port to the list of targets. This option
- can be given multiple times. Example: '224.0.1.38:1500'
- instructs the udp sender to send to udp port 1500 on host
- 224.0.1.38 (unassigned ip in the Local Network Control Block
- 224.0.0/24). This is useful for multicast streaming.
-"
-
-option "udp_no_autostart" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"do not start sending"
-flag off
-details="
- If this option is given, udp streaming may be activated at
- a later time by using the sender command.
-"
-
-option "udp_default_port" -
-#~~~~~~~~~~~~~~~~~~~~~~~~~~
-"udp port to send to"
-int typestr="port"
-default="8000"
-optional
-
-option "udp_header_interval" H
-#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-"duration for sending header"
-int typestr="ms"
-default="2000"
-optional
-details="
- As the udp sender has no idea about connected clients it
- sends the audio file header periodically if necessary. This
- option is used to specify the duration of the interval between
- sending the header. Shorter values decrease the average time
- clients have to wait before being able to start playback,
- but this also increases the amount network traffic. Note
- that this affects only ogg vorbis streams as this is the only
- audio format that needs an audio file header.
-"
-
-option "udp_ttl" t
-#~~~~~~~~~~~~~~~~~
-"set time to live value"
-int typestr="num"
-default="10"
-optional
-details="
- This option instructs the udp sender to set the time to live to
- \"num\" for the sending udp socket. Only useful for multicast
- udp streaming.
-"
+++ /dev/null
-option "host" i
-"ip or host to receive udp packets from"
-string default="224.0.1.38"
-optional
-details="
- The default address resoves to DANTZ.MCAST.NET and activates
- multicast.
-"
-
-option "port" p "udp port"
-int typestr="portnumber"
-default="8000"
-optional
+++ /dev/null
-option "loglevel" l
-#~~~~~~~~~~~~~~~~~~
-"set loglevel (0-6)"
-int typestr="level"
-default="4"
-optional
-
-option "bufsize" b
-#~~~~~~~~~~~~~~~~~
-"input buffer size"
-int typestr="kilobytes"
-default="64"
-optional
-
-option "writer" w
-#~~~~~~~~~~~~~~~~
-"select stream writer"
-string typestr="name"
-default="alsa (file if alsa is unsupported)"
-optional
-multiple
-details="
- May be give multiple times. The same writer may be specified
- more than once.
-"
-
-option "start_time" t
-#~~~~~~~~~~~~~~~~~~~~
-"defer playback"
-string typestr="timeval"
-optional
-details="
- Start playback at given time which must be in a:b format where
- a denotes seconds and b denotes microseconds since the epoch.
-"