gui: Only check STDIN for readability if curses is active.
[paraslash.git] / FEATURES
1 Features
2 ========
3
4 configurable audio streaming software:
5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 para_server streams binary audio data (mp3/ogg files) over
7 local and/or remote networks. It supports three builtin
8 streaming methods (senders): http, dccp, or rtp.
9
10 para_audiod runs on the client side and connects to
11 para_server. The audio stream is read from the network and
12 sent through any of paraslash's filters (mp3 decoder, ogg
13 vorbis decoder, volume normalizer,...). The resulting stream
14 is written to an external program's standard in, usually an
15 audio player like para_play, the alsa player of the paraslash
16 package. It is possible to grab the stream at any position
17 in the filter chain.
18
19 The receiving/filtering software is also available as
20 standalone command line tool: para_recv grabs the stream and
21 writes to stdout; para_filter reads from stdin, converts the
22 stream according to the given --filter command line options
23 and writes the transformed stream to stdout.
24
25 configurable audio file selectors:
26 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 There are three audio file selectors available: random,
28 playlist and mysql
29
30 The first two of these are rather simple, and they are always
31 supported. They allow streaming of randomly selected files
32 or files given by a playlist respectively.
33
34 The (optional) mysql selector is more involved. It manages
35 statistics on your audio files, and audio file selection is
36 done by sending a user-defined sql-query to the mysql server.
37 This allows rather sophisticated configurations and is
38 explained in detail in README.mysql.
39
40 It is possible to switch between all supported selectors at
41 any time.
42
43 small memory footprint:
44 ~~~~~~~~~~~~~~~~~~~~~~~
45 paraslash is lightweight. The stripped binary of para_server
46 with all its features compiled in (mysql/random/playlist
47 selector, mp3/ogg support, http/dccp/ortp support) is about 110K
48 on i386 under Linux. para_audiod is even smaller.
49
50 command line interface, including shell:
51 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52 para_client without arguments starts interactive (shell)
53 mode. Otherwise, command is sent to para_server directly
54 and output is dumped to stdout. This can be used by any
55 scripting language to produce user interfaces with very little
56 programming effort.
57
58 authentication/encryption via openssl:
59 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 All connections between para_server and para_client are
61 encrypted by default. For each user of paraslash you must
62 create a public/secret key pair for authentication/encryption.
63
64 various user interfaces and utilities:
65 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 o para_gui. Curses based interface, displays information in a
67 curses window and can be used to easily control para_server
68 and para_audiod.
69
70 o para_sdl_gui. Shows pictures (on a per song basis) and
71 other information about the current audio file. Can be used
72 as a screen saver.
73
74 o para_krell. A gkrellm2 plugin that shows small pics and is
75 able to launch 27 different commands by clicking on the image.
76
77 o para_slider. User-friendly stream creator for people who
78 don't like their keyboard.
79
80 o para_dbadm. Simple curses interface for changing attributes.
81
82 o para_fade. Simple volume fader and alarm clock.