X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=web%2Fmanual.md;h=efb72b1e345d2ec92b3479c0fe47976b09c39d3c;hb=f4bf04572d3749217a0ea15283eb797d9293a5ae;hp=7d2c4cf3105ed47ccac28effbb3295c7240eb6bc;hpb=a2c5e36d230e651e15f0408a74f7991c6095cdbc;p=paraslash.git diff --git a/web/manual.md b/web/manual.md index 7d2c4cf3..efb72b1e 100644 --- a/web/manual.md +++ b/web/manual.md @@ -187,9 +187,9 @@ Requirements git clone git://git.tuebingen.mpg.de/osl cd osl && make && sudo make install && sudo ldconfig - sudo apt-get install autoconf libssl-dev help2man gengetopt \ + sudo apt-get install autoconf libssl-dev help2man gengetopt m4 \ libmad0-dev libid3tag0-dev libasound2-dev libvorbis-dev \ - libfaad-dev libspeex-dev libFLAC-dev libsamplerate-dev \ + libfaad-dev libspeex-dev libFLAC-dev libsamplerate-dev realpath \ libasound2-dev libao-dev libreadline-dev libncurses-dev \ libopus-dev @@ -204,7 +204,7 @@ code repository, execute git clone git://git.tuebingen.mpg.de/osl - [gcc](ftp://ftp.gnu.org/pub/gnu/gcc) or -[clang](http://clang.llvm.org). All gcc versions >= 3.3 are currently +[clang](http://clang.llvm.org). All gcc versions >= 4.2 are currently supported. Clang version 1.1 or newer should work as well. - [gnu make](ftp://ftp.gnu.org/pub/gnu/make) is also shipped with the @@ -221,6 +221,9 @@ executables. - [help2man](ftp://ftp.gnu.org/pub/gnu/help2man) is used to create the man pages. +- [m4](ftp://ftp.gnu.org/pub/gnu/m4/). Some source files are generated +from templates by the m4 macro processor. + Optional: - [openssl](http://www.openssl.org/) or @@ -246,8 +249,11 @@ recognized. The mp3 tagger also needs this library for modifying you need libogg, libvorbis, libvorbisfile. The corresponding Debian packages are called `libogg-dev` and `libvorbis-dev`. -- [libfaad](http://www.audiocoding.com/). For aac files (m4a) you -need libfaad (`libfaad-dev`). +- [libfaad and mp4ff](http://www.audiocoding.com/). For aac files +(m4a) you need libfaad and libmp4ff (package: `libfaad-dev`). Note +that for some distributions, e.g. Ubuntu, mp4ff is not part of the +libfaad package. Install the faad library from sources (available +through the above link) to get the mp4ff library and header files. - [speex](http://www.speex.org/). In order to stream or decode speex files, libspeex (`libspeex-dev`) is required. @@ -751,8 +757,8 @@ these commands. The image, lyrics, moods and playlists tables are all blob tables. Blob tables consist of three columns each: The identifier which is -a positive non-negative number that is auto-incremented, the name -(an arbitrary string) and the content (the blob). +a positive number that is auto-incremented, the name (an arbitrary +string) and the content (the blob). All blob tables support the same set of actions: cat, ls, mv, rm and add. Of course, _add_ is used for adding new blobs to the table @@ -776,21 +782,19 @@ or playlist is activated with the select command. ### The score table ### -Unlike all other tables the contents of the score table remain in -memory and are never stored on disk. The score table contains two -columns: The SHA1 hash value (of an audio file) and its current -score. - -However, only those files which are admissible for the current mood -or playlist are contained in the score table. The audio file selector -always chooses the row with the highest score as the file to stream -next. While doing so, it computes the new score and updates the -last_played and the num_played fields in the audio file table. +The score table describes those audio files which are admissible for +the current mood or playlist (see below). The table has two columns: +a pointer to a row of the audio file table and a score value. -The score table is recomputed by the select command which loads a -mood or playlist. Audio files are chosen for streaming from the rows -of the score table on a highest-score-first basis. +Unlike all other tables of the database, the score table remains in +memory and is never stored on disk. It is initialized at startup and +recomputed when the select command loads a new mood or playlist. +When the audio file selector is asked to open the next audio file, +it picks the row with the highest score, opens the corresponding +file and passes the file descriptor to the virtual streaming system. +At this point the last_played and the num_played fields of the selected +file are updated and the score is recomputed. Playlists and moods ------------------- @@ -926,12 +930,13 @@ is not set, the empty string is matched against the pattern. frequency ~ channels ~ num_played ~ + image_id ~ + lyrics_id ~ Takes a comparator ~ of the set {<, =, <=, >, >=, !=} and a number . Matches an audio file iff the condition ~ is satisfied where val is the corresponding value of the audio file -(value of the year tag, bitrate in kbit/s, frequency in Hz, channel -count, play count). +(value of the year tag, bitrate in kbit/s, etc.). The year tag is special as its value is undefined if the audio file has no year tag or the content of the year tag is not a number. Such @@ -1811,6 +1816,33 @@ Examples Development =========== +Contributing +------------ + +Paraslash is an open source project and contributions are +welcome. Here's a list of things you can do to help the project: + +- Report problems with building, installing or running the software. + In particular, test the experimental git branches ("next" and "pu"). + This helps to identify and fix problems before the code gets merged + and thus keeps the master branch as stable as possible. +- Proofread the documentation (manual, web pages, man pages, source + code documentation) and point out unclear or poorly written parts. If + you are a native English speaker you will easily find a lot of text + that could be improved. +- Run analysis tools (coverity, afl, sparse, etc.) and report issues + found by those tools. +- Suggest new features you would like to see implemented. +- Compile and test on your favorite architecture or operating + system. The code is tested only on a limited set of systems, so you + will probably encounter problems when building on different systems. +- Post about about paraslash on your blog or on social networks. +- Build and maintain Debian/RPM packages for your favorite distribution. + +Note that there is no mailing list, no bug tracker and no discussion +forum for paraslash. If you'd like to contribute, or have questions +about contributing, send email to Andre Noll . + Tools ----- @@ -1824,9 +1856,6 @@ developer machine. paraslash development. It is necessary for cloning the git repository and for getting updates. -- [m4](ftp://ftp.gnu.org/pub/gnu/m4/). Some input files for gengetopt -are generated from templates by the m4 macro processor. - - [autoconf](ftp://ftp.gnu.org/pub/gnu/autoconf/) GNU autoconf creates the configure file which is shipped in the tarballs but has to be generated when compiling from git. @@ -1935,7 +1964,7 @@ Coding Style The preferred coding style for paraslash coincides more or less with the style of the Linux kernel. So rather than repeating what is -written [there](http://www.kernel.org/doc/Documentation/CodingStyle), +written [there](http://www.kernel.org/doc/Documentation/process/coding-style.rst), here are the most important points. - Burn the GNU coding standards. @@ -2198,7 +2227,6 @@ Application web pages --------------------- - [paraslash](http://people.tuebingen.mpg.de/maan/paraslash/) -- [alternative page](http://paraslash.systemlinux.org/) - [xmms](http://xmms2.org/wiki/Main_Page) - [mpg123](http://www.mpg123.de/) - [gstreamer](http://gstreamer.freedesktop.org/)