X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=m4%2Flls%2Fserver_cmd.suite.m4;h=83041ddf79ec46a24c954125eba9bed6de053b13;hp=e5bdcedec25dd0fdb59deb6678b003112581c529;hb=74592ed100009a2d73e03861ae9626363f06aca9;hpb=ba0a963f0a31848e7f622c45c56fa6ebf0b67057 diff --git a/m4/lls/server_cmd.suite.m4 b/m4/lls/server_cmd.suite.m4 index e5bdcede..83041ddf 100644 --- a/m4/lls/server_cmd.suite.m4 +++ b/m4/lls/server_cmd.suite.m4 @@ -52,6 +52,77 @@ aux_info_prefix = Permissions: Print what is being done. [/help] +[subcommand addatt] + purpose = add new attribute(s) + non-opts-name = attribute... + aux_info = AFS_READ | AFS_WRITE + [description] + This adds new attributes to the attribute table. At most 64 attributes + may be defined. + [/description] + +[subcommand check] + purpose = run integrity checks on database tables + aux_info = AFS_READ + [description] + If no options are given, all checks are run. + [/description] + [option aft] + short_opt = a + summary = run audio file table checks + [help] + Report stale paths and invalid image and lyrics ids of the audio + file table. + [/help] + [option attribute] + short_opt = A + summary = check for invalid attributes + [help] + Report audio files whose attribute bitmask is invalid, i.e., has a bit + set which does not correspond to any attribute of the attribute table. + [/help] + [option mood] + short_opt = m + summary = check for invalid mood definitions + [help] + Run syntax checks on all moods of the mood table. + [/help] + [option playlist] + short_opt = p + summary = find invalid paths in playlists + [help] + Check all playlists for paths not contained in the audio file table. + [/help] + +[subcommand cpsi] + purpose = copy selected parts of the audio file selector info + non-opts-name = source pattern... + aux_info = AFS_READ | AFS_WRITE + [description] + If no option, or only --verbose is given, all fields of the audio + file selector info structure are copied to each row of the audio file + table whose path matches at least one of the given patterns. Otherwise, + only those fields which correspond to the given options are copied. + [/description] + [option attribute-bitmap] + short_opt = a + summary = copy the attribute bitmap + [option image-id] + short_opt = i + summary = copy the image id + [option lyrics-id] + short_opt = y + summary = copy the lyrics id + [option lastplayed] + short_opt = l + summary = copy the lastplayed timestamp + [option numplayed] + short_opt = n + summary = copy the numplayed counter + [option verbose] + short_opt = v + summary = enable verbose mode + [subcommand ff] purpose = jump N seconds forward or backward synopsis = n[-] @@ -87,6 +158,16 @@ aux_info_prefix = Permissions: to the server process has the same effect as running this command. [/description] +[subcommand init] + purpose = initialize the database tables for the audio file selector + synopsis = [table_name...] + aux_info = AFS_READ | AFS_WRITE + [description] + When invoked without arguments, this command creates all + tables: audio_files, attributes, scores, moods, lyrics, images, + playlists. Otherwise only the given tables are created. + [/description] + [subcommand jmp] purpose = reposition the current stream non-opts-name = n @@ -97,6 +178,45 @@ aux_info_prefix = Permissions: n <= 100. [/description] +[subcommand lsatt] + purpose = list attributes + aux_info = AFS_READ + [description] + Print the list of all defined attributes which match the given + pattern. If no pattern is given, the full list is printed. + [/description] + + [option id-sort] + short_opt = i + summary = sort attributes by id + [help] + The default is to sort alphabetically by name. + + Attributes are internally represented as an 64 bit array. The attribute + id is the bit number in this array. + [/help] + [option long] + short_opt = l + summary = print long listing + [help] + The long listing prints the attribute id in addition to the name of + the attribute. The id is printed as a decimal number and is separated + from the name by a tab character. + [/help] + [option reverse] + short_opt = r + summary = reverse sort order + +[subcommand mvatt] + purpose = rename an attribute + synopsis = source dest + aux_info = AFS_READ | AFS_WRITE + [description] + Rename the attribute given by the first argument to the destination + given by the second argument. It is an error if the destination + attribute exists. + [/description] + [subcommand next] purpose = close the stream and start to stream the next audio file aux_info = VSS_READ | VSS_WRITE @@ -135,6 +255,52 @@ aux_info_prefix = Permissions: Set the 'P' (playing) bit of the vss status flags. [/description] +[subcommand rm] + purpose = remove rows from the audio file table + non-opts-name = pattern... + aux_info = AFS_READ | AFS_WRITE + [description] + Remove all rows of the audio file table which match any of the given + patterns. Note that this affects only the database table; the command + won't touch your audio files on disk. + [/description] + [option verbose] + short_opt = v + summary = print paths of deleted rows + [option force] + short_opt = f + summary = don't complain if nothing was removed + [option pathname-match] + short_opt = p + summary = modify matching behaviour + [help] + Match a slash in the path only with a slash in pattern and not by an + asterisk (*) or a question mark (?) metacharacter, nor by a bracket + expression ([]) containing a slash (see fnmatch(3)). + [/help] + +[subcommand rmatt] + purpose = remove attribute(s) + non-opts-name = pattern... + aux_info = AFS_READ | AFS_WRITE + [description] + Remove all attributes which match any given pattern. All information + about the removed attributes in the audio file table is lost. + [/description] + +[subcommand select] + purpose = activate a mood or a playlist + non-opts-name = specifier/name + aux_info = AFS_READ | AFS_WRITE + [description] + The specifier is either 'm' or 'p' to indicate whether a playlist or + a mood should be activated. Example: + + select m/foo + + activates the mood named 'foo'. + [/description] + [subcommand sender] purpose = control paraslash senders synopsis = [sender cmd [arguments]] @@ -154,6 +320,20 @@ aux_info_prefix = Permissions: [/description] +[subcommand setatt] + purpose = set or unset attributes + synopsis = attribute{+|-}... pattern... + aux_info = AFS_READ | AFS_WRITE + [description] + Set ('+') or unset ('-') the given attributes for all audio files + matching the given pattern. Example: + + setatt rock+ punk+ pop- '*foo.mp3' + + sets the 'rock' and the 'punk' attribute and unsets the 'pop' attribute + of all files ending with 'foo.mp3'. + [/description] + [subcommand si] purpose = print server info aux_info = NO_PERMISSION_REQUIRED @@ -207,6 +387,119 @@ aux_info_prefix = Permissions: necessary to send SIGKILL. [/description] +[subcommand touch] + purpose = manipulate the afs information of audio files + non-opts-name = pattern... + aux_info = AFS_READ | AFS_WRITE + [description] + This command modifies the afs info structure of all rows of the audio + file table whose path matches at least one of the given patters. + + If at least one option is given which takes a number as its argument, + only those fields of the afs info structure are updated which + correspond to the given options while all other fields stay unmodified. + + If no such option is given, the lastplayed field is set to the current + time and the value of the numplayed field is increased by one while + all other fields are left unchanged. This mimics what happens when + the virtual streaming system selects the file for streaming. + + If the file is admissible for the current mood (or contained in the + current playlist), its score is recomputed according to the changed + values. + [/description] + [option numplayed] + short_opt = n + summary = set the numplayed count manually + arg_type = uint32 + arg_info = required_arg + typestr = num + [help] + The numplayed count of an audio file is the number of times the file + was selected for streaming. It is one of the inputs to the scoring + function which determines the order in which admissible files are + streamed. + + The virtual streaming system increases this number automatically each + time it opens the file for streaming. + [/help] + [option lastplayed] + short_opt = l + summary = set the lastplayed time manually + arg_type = uint64 + arg_info = required_arg + typestr = num + [help] + The lastplayed time of an audio file is the time when the file was + last opened for streaming. + + Like the numplayed count, it is an input for the scoring function + and is updated automatically by the virtual streaming system. + + The argument must be a number of seconds since the epoch. Example: + + touch -l=$(date +%s) file + + sets the lastplayed time of 'file' to the current time. + [/help] + [option image-id] + short_opt = i + summary = set the image id + arg_type = uint32 + arg_info = required_arg + typestr = num + [help] + The afs info structure of each row of the audio file table contains + a slot for the image id of the audio file that corresponds to the + row. The image id stored in this slot refers to the key in the image + table that identifies the blob. + + When a new audio file is added to the audio file table, its image + id starts out as zero, indicating that there is no image associated + with the file. Setting the image id to a non-zero number associates + the file with a particular blob of the image table, for example the + cover art of the album in jpg format. + [/help] + [option lyrics-id] + short_opt = y + summary = set the lyrics id + arg_type = uint32 + arg_info = required_arg + typestr = num + [help] + This option works just like --image-id, but sets the lyrics ID rather + than the image id. + [/help] + [option amp] + short_opt = a + summary = set the amplification value (0-255) + arg_type = uint32 + arg_info = required_arg + typestr = num + [help] + The amplification value of an audio file is a number which is stored + in the afs info structure. + + The value determines the scaling factor by which the amplitude of + the decoded samples should be multiplied in order to normalize the + volume. A value of zero means no amplification, 64 means the amplitude + should be multiplied by a factor of two, 128 by three and so on. + + The amp filter of para_audiod amplifies the volume according to + this value. + [/help] + [option verbose] + short_opt = v + summary = explain what is being done + [option pathname-match] + short_opt = p + summary = modify matching behaviour + [help] + Match a slash in the path only with a slash in pattern and not by an + asterisk (*) or a question mark (?) metacharacter, nor by a bracket + expression ([]) containing a slash (see fnmatch(3)). + [/help] + [subcommand version] purpose = print the git version string of para_server aux_info = NO_PERMISSION_REQUIRED