impp - interactive mp3 player Code
Brought to you by:
mfontanini
------------------------------------------------------------------------ impp v0.2 ------------------------------------------------------------------------ -------------------------------- About --------------------------------- impp is an interactive command line mp3 player application. Every action the player can execute, is triggered by a specific command. Several commands are supported to enable the user to add and delete songs from the playlist, change the current working directory, list the mp3 files included in it, and much more. impp supports both filename and command autocompletion, the same way shell interpreters do. By pressing the TAB key, depending on the command which is in the command line, the available filenames or arguments available for such command will be printed out. impp is licensed under the GNU General Public License version 2, as documented in the "COPYING" file. ------------------------------ Compiling ------------------------------- When running configure, you might want to compile impp using different setups. impp can use both libmad and libmpg123 as decoders, as well as portaudio and libasound to handle audio output. The default configure script uses libmpg123 and portaudio. To use libmad as the mp3 decoder, add "decoder=mad" as a parameter of this script. Moreover, to use libasound, add "output=alsa". e.g: ./configure decoder=mad output=alsa Then just run "make" to compile impp using the libraries you chose. ------------------------------ Commands -------------------------------- This is a list of impp's currently supported commands: - add SONG [SONG[...]]: Adds one/multiple songs to the playlist. Path's given can be either absolute or relative to the current working directory. Note that the asterisk(*) character serves as a wilcard, so the user could execute "add Track*", which will add every song which starts with "Track" to the playlist. Keep in mind that only .mp3 files will be added to the playlist, so there's no need to make this explicit by using the wildcard this way: "add *.mp3". In such case, just use an asterisk, and every mp3 file will be added. Each time this command is executed, the last song added's path is stored on the "_" path variable. - alias <[ALIAS COMMAND | del ALIAS]>: Since there are some commands that will be used more than others, the user can create its own alias, in order to reduce the amount of characters to type for each command. Therefore, if the user wants to create an alias for "add", he could execute "alias a add". After this, songs could be added to the playlist just by typing "a". Multi-word alias can be created by using double quotes, e.g. 'alias shuffle "plist shuffle"'. If an alias was to be removed, the "del" parameter could be used, e.g. "alias del a". - audio [DEVICE]: Displays/modifies the audio device being used. This is useful when using ALSA output module, where one might one to use another device in certain situations. e.g. "audio hw:0,0". - cd <DIRECTORY_NAME>: Changes the current working directory to the one given as DIRECTORY_NAME. Note that if any paths have been defined, a '$' character must be prepended to the pathname so that impp nows you're refering to a defined path. e.g: "cd $music". - config <save | load | poll | add >: Saves/loads the configuration file. This file is stored in $HOME/.impp/impp.conf, and contains a list of commands which will be executed when the application starts. The "add" and "poll" arguments modify impp's configuration paremeters. One can set "shuffle" and "filter" on or off using "config add shuffle on", for example. This way, if the configuration is saved afterwards, next time impp is launched, it will startup using shuffle mode. - exit: Gracefully exits the application. This same behaviour occurs when impp reads EOF. - help: Displays the supported commands and a simple description for each of them. - ls [PARAMS]: List files in the current/a given directory. This actually forks and execs "ls", so any parameter accepted by that application, can be used as an argument for this command. - next: Plays the next song in the playlist, stops playing if there are no songs left. - path: Lists/creates/delete a path variable. Path variables serve as shortcuts for long directory names. The path command alone, lists every already defined path variable. If the user wanted to create a new shortcut, then it should follow this format: "path SHCUT PATH", which would create a shortcut named SHCUT, to PATH. To delete a variable, the "del" parameter should be used, the same way as the "alias" command. e.g. "path music /home/john/Music/". - pause: Pauses the player. - play: Plays the current song in the playlist. - plist: List/manage the playlist. This command alone lists the playlist and only shows within a range of 5 songs from the current. * The "prev" parameter is used, then every song which is before the current one is displayed. * The "next" parameter displays the songs which are after the current one in the playlist. * The "clear" parameter erases the current playlist. * The "export" parameter stores the current playlist in a file, which can be loaded with the "import" command. This file will be stored in the $HOME/.impp/playlist/. * The "import" parameter loads a playlist stored with the "export" command. Playlists are text files containing a non-quoted list of mp3 files, one per line. * The "shuffle" parameter displays wether the playlist is shuffled. In order to set the shuffle mode on and off, an additional "on" or "off" parameter should be added. e.g. "plist shuffle on". * The "filter" parameter displays wether the playlist allows repeated songs. In order to set the filter mode on and off, the mechanism used is the same as the "shuffle" parameter. * The "del" parameter takes one or more integers and erases the song(s) which occupies the given index(es). - prev: Plays the previous song in the playlist. - prompt [NEW_PROMPT]: Displays/modifies the current prompt. - pwd: Displays the current working directory. - replay: Plays the current song from the beggining. - usage <COMMAND>: Shortly displays the usage for the given command. ------------------------------------------------------------------------ ------------------------------------------------------------------------ Visit http://sourceforge.net/projects/impp/ to download the latest impp version.