Use non-blocking API for signal handling.
[paraslash.git] / README.afs
index 01d4b52..5162566 100644 (file)
@@ -78,10 +78,10 @@ A mood consists of a unique name and its *mood definition*, which is
 a set of *mood lines* containing expressions in terms of attributes
 and other data contained in the database.
 
-A mood defines a subset of audio files called the *admissible audio
-files* for that mood. At any time, at most one mood can be *active*
-which means that para_server is going to select only files from that
-subset of admissible files.
+A mood defines a subset of audio files called the *admissible audio files*
+for that mood. At any time, at most one mood can be *active* which
+means that para_server is going to select only files from that subset
+of admissible files.
 
 So in order to create a mood definition one has to write a set of
 mood lines. Mood lines come in three flavours: Accept lines, deny
@@ -156,20 +156,43 @@ List of mood_methods
 Takes no arguments and matches an audio file if and only if no
 attributes are set.
 
-       played_rarely
-
-Takes no arguments and matches all audio files where the number of
-times this audio file was selected is below the average.
-
-       is_set attribute_name
+       is_set <attribute_name>
 
 Takes the name of an attribute and matches iff that attribute is set.
 
-       path_matches pattern
+       path_matches <pattern>
 
 Takes a filename pattern and matches iff the path of the audio file
 matches the pattern.
 
+       artist_matches <pattern>
+       album_matches <pattern>
+       title_matches <pattern>
+       comment_matches <pattern>
+
+Takes an extended regular expression and matches iff the text of the
+corresponding tag of the audio file matches the pattern. If the tag
+is not set, the empty string is matched against the pattern.
+
+       year ~ <num>
+       bitrate ~ <num>
+       frequency ~ <num>
+       channels ~ <num>
+       num_played ~ <num>
+
+Takes a comparator ~ of the set {<, =, <=, >, >=, !=} and a number
+<num>. Matches an audio file iff the condition <val> ~ <num> 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).
+
+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
+audio files never match. Another difference is the special treatment
+if the year tag is a two-digit number. In this case either 1900 or
+2000 are added to the tag value depending on whether the number is
+greater than 2000 plus the current year.
+
 
 ----------
 Mood usage
@@ -225,32 +248,32 @@ songs is
 Troubles?
 ---------
 
-Use the debug loglevel (option -l 0 for most commands) to show
+Use the debug loglevel (option -l debug for most commands) to show
 debugging info. Almost all paraslash executables have a brief online
 help which is displayed by using the -h switch. The --detailed-help
 option prints the full help text.
 
-para_fsck tries to fix your database. Use --force (even if your name
-isn't Luke) to clean up after a crash. However, first make sure
-para_server isn't running before executing para_fsck if para_fsck
-complains about busy (dirty) tables. para_fsck also contains an option
-to dump the contents of the database to the file system.
+If para_server crashed or was killed by SIGKILL (signal 9), it
+may refuse to start again because of "dirty osl tables". In this
+case you'll have to run the oslfsck program of libosl to fix your
+database. It might be necessary to use --force (even if your name
+isn't Luke). However, make sure para_server isn't running before
+executing oslfsck --force.
 
 If you don't mind to recreate your database you can start
 from scratch by removing the entire database directory, i.e.
 
-       rm -rf ~/.paraslash/afs_database
+       rm -rf ~/.paraslash/afs_database-0.4
 
-Note that this removes all tables, in particular attribute definitions
-and data, and all playlist and mood definitions.
+Be aware that this removes all attribute definitions, all playlists
+and all mood definitions.
 
-para_fsck operates on the osl-layer, i.e. it fixes inconsistencies
-in the database but doesn't know about the contents of the tables
-contained therein. Use
+Although oslfsck fixes inconsistencies in database tables it doesn't
+care about the table contents. To check for invalid table contents, use
 
        para_client check
 
-to print out bad entries, e.g.missing audio files or invalid mood
-definitions.
+This prints out references to missing audio files as well as invalid
+playlists and mood definitions.
 
 Still having problems? mailto: Andre Noll <maan@systemlinux.org>