From: <suc...@us...> - 2006-06-25 02:19:57
|
Revision: 64 Author: sucknblow Date: 2006-06-24 19:19:51 -0700 (Sat, 24 Jun 2006) ViewCVS: http://svn.sourceforge.net/pmplib/?rev=64&view=rev Log Message: ----------- Changing command line options: -D/--database and -u/--update become -c/--create and -u/--update (so similar to tar). -P and -M are now lower case - often used options should be easier to type. -l becomes -L, so case is consistent with -R, the only option with which it becomes useful. -L becomes -l. Frequently used options are now documented in the man page. Modified Paths: -------------- trunk/frontend/easypmp/cui/easypmp.1 trunk/frontend/easypmp/cui/option.c Property Changed: ---------------- trunk/frontend/easypmp/cui/ Property changes on: trunk/frontend/easypmp/cui ___________________________________________________________________ Name: svn:ignore + Makefile.in Makefile .libs .deps easypmp Modified: trunk/frontend/easypmp/cui/easypmp.1 =================================================================== --- trunk/frontend/easypmp/cui/easypmp.1 2006-06-24 17:48:10 UTC (rev 63) +++ trunk/frontend/easypmp/cui/easypmp.1 2006-06-25 02:19:51 UTC (rev 64) @@ -1,5 +1,5 @@ .\" Hey, EMACS: -*- nroff -*- -.TH EASYPMP 1 "June 2, 2006" +.TH EASYPMP 1 "June 25, 2006" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -16,37 +16,141 @@ easypmp \- create music databases used by portable media players .SH SYNOPSIS .B easypmp -.R [ -.B -D -.R | -.B -u -.RI "] [" mount-point ] +.RB [ -c | -u "] [" -p "] [" -m "] [" -R " [" -L +.IR level "] ]" +.RI [ mount-point ] +.br +.BR "easypmp " [ -h | -v ] + .SH DESCRIPTION -.\" TeX users may be more comfortable with the \fB<whatever>\fP and -.\" \fI<whatever>\fP escape sequences to invode bold face and italics, -.\" respectively. - \fBeasypmp\fP is a command line utility used to create and maintain the -music database on a variety of portable music players. +music database on a variety of portable media players. -Many Portable music players allow the user to browse tracks by artist, -album, genre, pre-defined playlists etc. In order to do this +Many portable music players allow the user to browse tracks by artist, +album, genre, predefined playlists etc. In order to do this efficiently, they require a database of track information. Without this database, the player may require the user to browse tracks using only the directory structure. \fBeasypmp\fP exists to create that database, based on the tracks and playlists that are stored on the player. -.\".SH OPTIONS" -.\"These programs follow the usual GNU command line syntax, with long" -.\"options starting with two dashes (`-')." +Normally, \fBeasypmp\fP is able to detect the type of any supported +media player automatically. It does so by comparing the files and +directories found at the specified mount point with the list of files +it expects to find on each type of device that it supports. If no +mount point is specified, the current working directory is assumed to +be the mount point. + +In order to check that \fBeasypmp\fP can identify the type of media +player, the media player should be mounted as a USB device. The +program should then be run without any command line switches (although +the mount point should be specified if it is not the current +directory). If the device is recognised, \fBeasypmp\fP displays +information about the device, including the directories in which it +expects to find music and playlists on that device. If the device is +not recognised, an error message to this effect is shown. + + +.SH DEVICE SUPPORT +\fBeasypmp\fP currently only works with media players that can be +mounted as \fIUSB Mass Storage\fR (UMS) devices. Specifically, it +has been tested with the following devices: + + * iRiver H100 series + * iRiver H300 series + * iRiver H10 UMS + * iRiver H10 MTP (with emergency connect mode) + * iRiver H10Jr. UMS + * iRiver U10 UMS + * MEDION MDJuke220 + * MEDION MDJuke440 + * Samsung YH-820 + +Note that some of the iRiver devices listed above may not support UMS +as shipped. For example, in Europe and the United States, the iRiver +U10 ships with support for a proprietary file transfer protocol called +\fIMedia Transfer Protocol\fR (MTP). In order to use these devices +with \fBeasypmp\fP, it is necessary to re-program (or `flash') the +firmware on the device to make it support UMS. This can be +accomplished by running the iRiver firmware updater for iRiver +products. At the time of writing this works with T10, T20, T30, U10 +and N12 models, with the exception of 256MB and 2GB models in these +series. The firmware updater can be downloaded from: +.br + http://www.iriver.com/mtp/ + +Note that the iRiver firmware updater is a Windows program. The +program requires that your computer be connected to the Internet when +run, in order to download the latest firmware for the device. Please +note that updating the firmware on a device using this program will +erase any data already stored on the device. + +.SH OPTIONS +\fBeasypmp\fP follows the usual GNU command line syntax, with long +options starting with two dashes (`-'). .\"A summary of options is included below." -.\".TP" -.\".B \-h, \-\-help" -.\"Show summary of options." -.\".TP" -.\".B \-V, \-\-version" -.\"Show version of program." +.TP +.B \-c, \-\-create +Create a new music database from scratch. The music files in the +directory on the device used for storing music files is scanned +recursively for music files. For each file found, the meta-data +stored in that file - including the genre, artist, album and track +name - is read, and used to add a record for that file in the music +database stored on the device. +.TP +.B \-u, \-\-update +Update the music database stored on the device. This is similar to +the \fB-d\fP option, with the exception that, when an entry for a +given music file already exists in the database stored on the device, +the meta-data already stored in the database is not updated. + +Using this option means that \fBeasypmp\fP does not need to re-read +the meta-data in every music file on the device. Rather, it only has +to read the meta-data in music files that were not on the device the +last time the database was updated. Thus this option is a faster way +creating the music database when only a few tracks on the device have +been changed since the database was last created or updated. However, +if the meta-data in existing files has changed, this may not be +reflected in the database when using this option. +.TP +.B \-p, \-\-playlist +Many programs for playing music allow playlists to be created and +saved on disk, ready to be played later. Such playlists frequently +have a \fB.m3u\fP extension. However, the playlists saved by most +programs cannot be used directly on portable media players. Instead, +it is necessary to convert (or `compile') each playlist into a format +that the media player can read. + +When the \fB\-p\fP/\fB\-\-playlist\fP option is specified, +\fBeasypmp\fP will search the playlist directory on the device for +playlists that can be converted into a form that the media player can +read (see the \fBDESCRIPTION\fP section above for information on how +to determine the playlist directory for a particular media player). +.TP +.B \-m, \-\-music +The \fB\-m\fP/\fB\-\-music\fP option is similar to the +\fB\-p\fP/\fB\-\-playlist\fP option. However, instead of searching +the playlist directory on the media player for playlists, it searches +in the music directory on the player instead. +.TP +.B \-R, \-\-repr +Output a textual representation of the music database on standard +output. This option is seldom used: it may be useful for debugging +purposes, or if bored. +.TP +\fB \-L \fIlevel\fP, \-\-repr-level=\fIlevel\fP +Specifies the format of the textual representation of the music +database. This option is only meaningful if the \fB\-R\fP option is +used. The value of \fIlevel\fP should be an natural number: that is, +either 0 or a positive integer. The meaning of the given value +depends on the type of media player in use. Currently, the only +values of \fIlevel\fP that may produce different results are 0 and 1. +.TP +.B \-h, \-\-help +Show summary of options. +.TP +.B \-v, \-\-version +Show version of program. .SH EXAMPLES These examples assume a media player has been mounted as a normal USB disk using /media/sda as a mount point. Modified: trunk/frontend/easypmp/cui/option.c =================================================================== --- trunk/frontend/easypmp/cui/option.c 2006-06-24 17:48:10 UTC (rev 63) +++ trunk/frontend/easypmp/cui/option.c 2006-06-25 02:19:51 UTC (rev 64) @@ -63,22 +63,22 @@ fprintf(fp, "\n"); fprintf(fp, "Media database options:\n"); - fprintf(fp, " -D, --database Construct a media database\n"); + fprintf(fp, " -c, --create Construct a media database\n"); fprintf(fp, " -u, --update Update the existing media database incrementally\n"); fprintf(fp, " -R, --repr Output a database structure in plain text\n"); - fprintf(fp, " -l, --repr-level=VAL Specify representation level\n"); + fprintf(fp, " -L, --repr-level=VAL Specify representation level\n"); fprintf(fp, " -t, --strip-words=VAL Specify a list (CSV) of words to strip from artist names\n"); fprintf(fp, "\n"); fprintf(fp, "Playlist options:\n"); - fprintf(fp, " -P, --playlist Convert playlist files in PLAYLIST directory\n"); - fprintf(fp, " -M, --music Convert playlist files in MUSIC directory\n"); + fprintf(fp, " -p, --playlist Convert playlist files in PLAYLIST directory\n"); + fprintf(fp, " -m, --music Convert playlist files in MUSIC directory\n"); fprintf(fp, " -r, --reconvert Discard the existing playlist files and reconvert\n"); fprintf(fp, " -f, --find-missing Correct playlists with corrupt references to media files\n"); fprintf(fp, " -s, --skip-missing Continue a conversion even if a media file is missing\n"); fprintf(fp, " -j, --jspl Enable JavaScript playlist (JSPL)\n"); fprintf(fp, "\n"); fprintf(fp, "Player options:\n"); - fprintf(fp, " -L, --list-device Show the list of supported devices and exit\n"); + fprintf(fp, " -l, --list-device Show the list of supported devices and exit\n"); fprintf(fp, " -d, --device Specify a device identifier for the player\n"); fprintf(fp, "\n"); #ifndef _WIN32 @@ -88,7 +88,7 @@ fprintf(fp, "\n"); #endif/*_WIN32*/ fprintf(fp, "Miscellaneous options:\n"); - fprintf(fp, " -V, --version Show version number and exit\n"); + fprintf(fp, " -v, --version Show version number and exit\n"); fprintf(fp, " -h, --help Show this help message and exit\n"); } @@ -112,39 +112,39 @@ int this_option_optind = optind ? optind : 1; int option_index = 0; static const struct option long_options[] = { - {"database", no_argument, 0, 'D'}, + {"create", no_argument, 0, 'c'}, {"update", no_argument, 0, 'u'}, {"source", required_argument, 0, 'z'}, {"repr", no_argument, 0, 'R'}, - {"repr-level", required_argument, 0, 'l'}, + {"repr-level", required_argument, 0, 'L'}, {"strip-words", required_argument, 0, 't'}, - {"playlist", no_argument, 0, 'P'}, - {"music", no_argument, 0, 'M'}, + {"playlist", no_argument, 0, 'p'}, + {"music", no_argument, 0, 'm'}, {"reconvert", no_argument, 0, 'r'}, {"find-missing", no_argument, 0, 'f'}, {"skip-missing", no_argument, 0, 's'}, {"jspl", no_argument, 0, 'j'}, - {"list-device", no_argument, 0, 'L'}, + {"list-device", no_argument, 0, 'l'}, {"device", required_argument, 0, 'd'}, #ifndef _WIN32 {"encoding", required_argument, 0, 'e'}, {"tagencoding", required_argument, 0, 'w'}, #endif/*_WIN32*/ - {"version", no_argument, 0, 'V'}, + {"version", no_argument, 0, 'v'}, {"help", no_argument, 0, 'h'}, {NULL, 0, 0, 0} }; #ifndef _WIN32 - int c = getopt_long(argc, argv, "DuzRl:t:PMrfsjLd:e:w:Vh", long_options, &option_index); + int c = getopt_long(argc, argv, "cuzRL:t:pmrfsjlD:e:w:vh", long_options, &option_index); #else - int c = getopt_long(argc, argv, "DuzRl:t:PMrfsjLd:Vh", long_options, &option_index); + int c = getopt_long(argc, argv, "cuzRL:t:pmrfsjlD:vh", long_options, &option_index); #endif/*_WIN32*/ if (c == -1) { break; } switch (c) { - case 'D': + case 'c': opt->verb |= MODE_DATABASE; break; case 'u': @@ -168,16 +168,16 @@ case 'R': opt->verb |= MODE_DATABASE_REPR; break; - case 'l': + case 'L': opt->repr_level = atoi(optarg); break; case 't': set_strip_words(opt, optarg); break; - case 'P': + case 'p': opt->verb |= (MODE_PLAYLIST | MODE_PLAYLIST_PLAYLIST); break; - case 'M': + case 'm': opt->verb |= (MODE_PLAYLIST | MODE_PLAYLIST_MUSIC); break; case 'r': @@ -192,7 +192,7 @@ case 'j': opt->verb |= MODE_PLAYLIST_JSPL; break; - case 'L': + case 'l': opt->verb |= MODE_LIST_DEVICES; break; case 'd': @@ -206,7 +206,7 @@ opt->music_encoding = optarg; break; #endif/*_WIN32*/ - case 'V': + case 'v': opt->verb |= MODE_VERSION; break; case 'h': This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |