@DATABASE "AMPlifier.guide"
@AUTHOR "Thorsten Hansen/ported by JP"
@-WORDWRAP

@NODE MAIN "AMPlifier Documentation"

                        @{b}AMPlifier@{ub}
                      Version 2.21

                Multiformat Audio Player

                 © 2000 Thorsten Hansen
                    @{i}Kato Development@{ui}

                  http://www.katodev.de

@{JLEFT}
  @{" Introduction            " LINK INTRODUCTION}   Why using it?
  @{" Requirements            " LINK REQUIREMENTS}   Things needed to get it work
  @{" Usage                   " LINK USAGE       }   How it works
  @{" Tooltypes and Arguments " LINK CONFIG      }   Configuration and Settings
  @{" ARexx                   " LINK AREXX       }   ARexx Port

@ENDNODE


@NODE INTRODUCTION "Introduction"
@TOC MAIN
@{b}Introduction to AMPlifier@{ub}

AMPlifier primary is a playback tool for MPEG-Audio 
(Musicam). Additionally it can be used to playback 16-bit 
Sound stored into various file formats. AMPlifier makes it 
possible to play MPEGs at nice and powerfull manner. It 
may be used on any Amiga and supports hardware-based 
decoding on one hand and software-based decodierung using 
the mpega.library.

   supported hardware decoders actually are:

      Melody Z2, Melody1200+/pro, Peggy+ (ScalaMPEG), 
      CD32-FMV


   as said before software decoding is using mpega.library 
   and AHI or X-Audio depending on user's needs.


@{u}Features:@{uu}

  * Supports MPEG-Audio up to Layer III and even AIFF, 
    MAUD, WAVE and RAW.

  * Ease of use, basic functionality known from CD-Players
    (play, pause, stop, forward, backward, skip back, 
     skipforward)

  * Powerful plugin system - for external visualization plugins

  * Resizeable and configureable user interface - easy to use

  * Loads WinAMP skins (different gfx designs)

  * Opens and moves to/from any public screen on your choice

  * Nice and fast move to any position in a song by using
    a pos-slider

  * Powerfull Playlist (sortable, loop support).

  * Load, Save and Edit of playlists.

  * Random play

  * Simple drag&drop of files and drawers. (drop it over the
    playlist window to add it)

  * Recursive scan through directorys with pattern matching 
    (drag&drop). with possibility to abort!
    (drop a drawer or volume on the player or playlist 
     window)

  * ID3-Tag support to get closer and better infos from the 
    songs played (artist, title, album, year,...)

  * Time remaining/elapsed display

  * ARexx port

  * Done as a Commodity

  ...


@ENDNODE


@NODE REQUIREMENTS "Hardware Requirements"
@TOC MAIN
@{b}Hardware and Softwarerequirements@{ub}

* AMPlifier works for any Amiga running AmigaOS 2.04 or 
  better. While Developers machines are running OS 3.1 only
  the player is enhanced and checked with 3.1 only.
  Because of this the actual version 3 of the OS should 
  be used.


* Regarding MPEG AMPlifier supports DSP based decoding of 
  Soundboards and even simple Soundboards or output of 
  traditional Amiga. If Software decoding is used only
  @{b}mpega.library@{ub} done by Stephan Tavenard is 
  required.
  For hardware which supports MPEG a proper mpeg.device 
  (CBM's  definition for CD32) is required and must be 
  selected in the settings of AMPlifier.

@ENDNODE


@NODE USAGE "Usage"
@TOC MAIN
@{b}Usage@{ub}

AMPlifier may be started from Workbench or Shell.
The GUI is equvalent to the user interface of a generic 
CD-Player.
At PullDown menue an additional playlist window may get 
opened. It contains the list of songs which will be played. 
By klicking one of the entries in the list it's possible to 
start that song immediately. This mechanism may even be 
used to skip one ore more songs or play one or more a 
second time.

If songs are given to the player using Drag-and-Drop or the
filerequester (multiselect capability) the old playlist
will get removed and a new one containing the last choice 
will show up. To add songs to the playlist they have to be
dropped over the playlist window or may get added with a 
filerequester by using the ADD button.

Unkown file formats won't be accepted in default setup. 
This may get changed via a a @{" Tooltype " LINK CONFIG} 
to enable playback of headerless RAW samples 
(Big-Endian, MSB first, Motorola).  

The windows of player and playlist are variable in size. 
While the sizegadget is visable at playlist, it's invisable
at the player itself. It's still there, though.


@{" Menus         " LINK MENUS}

@{" Player        " LINK WIN_PLAYER}
@{" Playlist      " LINK WIN_PLAYLIST}
@{" Configuration " LINK WIN_CONFIG}

@ENDNODE

@NODE MENUS "Menues"
@TOC USAGE
@{b}Menues@{ub}

@{" Project       " LINK MENU_PROJECT}
@{" Settings      " LINK MENU_SETTINGS}

@ENDNODE

@NODE MENU_PROJECT "Project"
 
@{b}@{u}Project@{ub}@{uu}

@{b}Open...@{ub}
  Opens an ASL-Filerequester for selecting songs to play

@{b}Add...@{ub}
  Opens an  ASL-Filerequester to add one song or a list of 
  songs to playlist

@{b}File info...@{ub}
  Shows information about the file (ID3-Tags).

@{b}Playlist...@{ub}
  Opens the window of the playlist.

@{b}Load Playlist...@{ub}
  Loading of an previously saved playlist.
  The name will be requested by a Filerequester.

@{b}Save Playlist...@{ub}
  Saves actual playlist into a file.

@{b}About@{ub}
  Displays a window which contains infos to AMPlifier an 
  its designer/programmer.

@{b}Hide@{ub}
  Hides the GUI of the player. As this is a so called 
  Commodity feature the tool Exchange (comes with the OS)
  may be used to redisplay it again.

@{b}Quit@{ub}
  This entry hopefully won't be used at all as it simply 
  quits the programm. The function is equivalent to the 
  close gadget at the player's window.

@ENDNODE

@NODE MENU_SETTINGS "Settings"

@{b}@{u}Settings@{uu}@{ub}

@{b}Configuration...@{ub}
  The item opens the configuration window of AMPlifier.

@{b}Random@{ub}
  If Random is checked titles in the list are played at
  random order.

@{b}Loop@{ub}
  After all songs are played the player doesn't stop but
  plays the list again (if checked).

@{b}Time Elapsed / Time Remaining@{ub}
  Switches display to time remaining instead of time 
  elapsed.

@{b}Display@{ub}

  @{u}Standard GUI@{uu}

  @{b}Info@{ub}
    Activates the part of the GUI which displays the 
    line which contains infos regaring the currently played 
    song

  @{b}Slider@{ub}
    Activates position slider at the GUI.

  @{b}Panel@{ub}
    Activates the CD-Player panel of player's GUI

  @{u}Skin GUI@{uu}

  @{b}Select Skin...@{ub}
    It pops up a window  which shows the list of different 
    skins which are available in the skins directory 
    (look for at WinAMP skins in Internet if you like).
    The skins directory can be selected in the 
    configuration window of the player.
    

@{b}Public Screen@{ub}
  This item opens a list window which contains the public 
  screens on which AMPlifer may be moved to.
  
@{b}Snapshot@{ub}
  This one snaps position and size of the player windows 
  and stores the information for the next start of the 
  program. 


@ENDNODE

@NODE WIN_PLAYER "Player"
@TOC USAGE
@{b}Player@{ub}

The userinterface was done euivalent to that one of a 
generic CD player. Same functionality is available at 
AMPlifier.

There are buttons for @{i}Play@{ui}, @{i}Stop@{ui}, @{i}Pause@{ui} and for
Skipping and Jump back to previously played songs.

The first way to do a list of songs for playback is
a filerequester which even allows multiselection.
It's even possible to choose the whole directory with the
filerequester if no file is selected.

The other and maybe easier way is to drag and drop
files, directories or even volumes over/into the 
player window. In case of a directory or volume 
AMPlifier will recursively scan it for files it's 
able to play back. These files will be listed in the 
playlist window.


@ENDNODE

@NODE WIN_PLAYLIST "Playlist"
@TOC USAGE
@{b}Playlist@{ub}

Like the name tries to tell this is the window which 
includes and shows the list of titles to play.
Each file is displayed with length (min:secs) and
name.
MPEG-files may contain so called ID3 Tag informations
appended to the sound data. If such Tag is available
closer info will be or may be shown in the list.

In the top area of the playlist's window there are
buttons which represent functions for editing the 
playlist. One or more files may be @{b}Add@{ub}ed to the 
actual playlist. The filerequester supports selection of
multible files (shift key!). 

There are buttions to @{b}Remove@{ub} entries or 
@{b}Clear@{ub} the whole list. Additionally there is
a buttion to @{b}Sort@{ub} the list in alphabetical order.

As long as the player scans directories recursively 
(volumes or directories, their subdirectories and so on)
there will be a temporary break button in the bottom of the 
window. It will disappear when the scan is finished.
It was done to stop scans which take too long maybe 
because of and accidently selected Workbench partition
or something equivalent.
Entries in the playlist which are/were played will change
from bold font to normal font. 

A very special bonbon of the GUI is the XY-scrolling 
Listview which does softscrolling using any font! Up to 
programmers knowledge it's a unique GUI element at Amiga
up to now.

@ENDNODE

@NODE WIN_CONFIG "Configuration"
@TOC USAGE
@{b}Configuration@{ub}

@{" Audio I/O     " LINK CFG_AUDIOIO}
@{" Options       " LINK CFG_OPTIONS}
@{" Display       " LINK CFG_DISPLAY}

@ENDNODE

@NODE CFG_AUDIOIO "Audio I/O"
@TOC WIN_CONFIG
@{b}Audio I/O@{ub}

Since AMPlifier 2 there is a new modulare plugin system for
different input and output modules.
This modules does the filetype identification and the data streaming.
Every module can have their own info window (The mpeg audio player has
the always known ID3-Tag editor).

Every module can have an own individual configuraion window.

The following modules are currently available:

@{b}Input modules:@{ub}

 @{" MPEG audio player " LINK INPMOD_MPEG}
  AIFF/MAUD player
  WAV player

@{b}Output modules:@{ub}

 @{" X-Audio/AHI Modul " LINK OUTMOD_AUDIO}

@ENDNODE

@NODE INPMOD_MPEG "MOD MPEG"
@TOC WIN_CONFIG
@{b}MPEG audio player@{ub}

@{b}ID3 Title@{ub}

ID3-Tag is an information block which may be appended to
MPEG audio files. It usually contains title, interpret,
style etc. A checked box tells AMPlifier to read this 
information out of the file.

There is a coded string which defines the format of the 
display (have a look at the default settings to 
understand).

No question a title which doesn't contain such info data
won't allow AMPlifier to display the data!
There are several tools which may be used to enter or 
modify ID3-Tags.  

As there is a problem with ID3 regarding broadcasting 
(it's starting to be available when the song finished)
there is a new standard at the horizont. AMPlifier will
even support it when it's finished.

@{b}Decoder@{ub}

At the MPEG configuration user has got the choice of doing software
or hardware based decoding. This can be configured seperately for
MPEG Audio Layer I/II and for Layer III.

@{b}MPEG Device@{ub}
  Select the output driver and the unit number for MPEG
  hardware decoding.
  If there is more than one board using the same driver
  you'll have to specify it by using unit numbers. 

  For example it's even possible to use two Melody1200PRO
  in a A1200 (one on top of the other).
  Closer information available on request.

  For Melody take 'melodympeg.device'.
  Users of Peggy should enter 'peggympeg.device'.

@{b}Buffersize@{ub}
  That's the size of the overall file buffer. AMPlifer 
  makes use of multibuffering for smooth playback.

@{b}Blocksize@{ub}
  Blocksize specifies the size of one particular buffer.
  The overall buffersize is splitted into a calculated 
  number of small buffers with the size of Blocksize.
 
  @{i}Attention:@{ui} If Peggy+, ScalaFMV is used, the 
  maximum value is 5 kB only (bug in its device).

@ENDNODE

@NODE OUTMOD_AUDIO "MOD Audio"
@TOC WIN_CONFIG
@{b}X-Audio/AHI output@{ub}

@{b}Device@{ub}
  Select the output driver and the unit number.

  @{b}X-Audio@{ub}
    That's the name of the Audio Device 
    (melodyaudio.device for all Melody boards).

  @{b}AHI@{ub}
    If there are people who unfortunately don't have got a Melody1200
    available in their A1200 or Zorro Amiga, AHI may be choosen.
    If AHI is used it's even possible to start more instances of
    AMPlifer and play back on the same hardware (AHI does the mixing).


@{b}Buffering@{ub}
  The size of the audio {b}Buffer@{ub} in seconds is selected here.
  
  Primary when using software decoding there may be short 
  interrupts when an MPEG file just started playback or the
  positioning slider is moved.
  To avoid these kind of short interrupts 
  @{b}Pre-Buffering@{ub} may be used.
  Via this setting it's possible to define how much of the
  audio buffer has to be filled (in percent) until audible 
  playback starts. 

  Additionally the user may modify the @{b}Priority@{ub} 
  of the audio Task. A priority of 20 or more is recomended
  in case of problems.
  Finally it strongly depends on the machine and its CPU
  which is used for playback.

@ENDNODE

@NODE CFG_OPTIONS "Options"
@TOC WIN_CONFIG
@{b}Options@{ub}

@{b}Check filetype information on load@{ub}
  This checkbox forces AMPlifier to check filetypes while 
  building the playlist. Files of types it doesn't know 
  won't be shown at the playlist.

  This confguration topic doesn't prevent AMPlifier to 
  check any file before it plays it back, though.

@{b}Song Dir@{ub}
  Default directory for songs.

@{b}Playlist Dir@{ub}
  Default directory for playlists.

@{b}Start File@{ub}
  This feature allows the user to pre-define a title or a
  directory of songs AMPlifier will start to play when
  just started.

@{b}File Pattern@{ub}
  File pattern limits the search for playable files by their
  extention (f.e. #?.mp3). As AMPlifier doesn't have to 
  spend a look into each file it usually speeds up scanning
  by factors.

@{b}Start playback@{ub}
  As said before the scan of a big or slow dataset may take 
  a longer time. AMPlifier is able to start playback before 
  the whole list is ready.
  The time (in seconds) it should wait until starting the 
  first song may be entered here, too.

  Attention: If a very short time is choosen random play
  will allways start with the same song(s) for sure. 

@ENDNODE

@NODE CFG_DISPLAY "Display"
@TOC WIN_CONFIG
@{b}Display@{ub}

@{b}Skins@{ub}
  Beside the traditional GUI which shows up by default, so 
  called skins known from PC's WinAMP may be used. This 
  drawn GUIs are often difficult to look at (not 
  economical) and don't offer the feature of resizing. 
  Regarding useablity they're bad but fresh and colorfull
  on the other hand. 
  
  If skins are used the GUI includes a display area for
  @{i}Volume Meter@{ui}, @{i}Oscilloscope@{ui} or @{i}
  Spectrum Analyzer@{ui}. Click left below the time 
  display for toggling
 
   (If Melody1200 with MPEG hardware support is build into 
    the machine special hardware is used to display the 
    analysis graphics!).

  At this area the directory which contains the skins 
  may and should be entered.

  The Skins from PC world are done in Truecolor. If they're 
  used at an Amigascreen which offers a lower number of
  colors (usually true for A1200) the may loog quite ugly.
  
  Even less colors look nice if color reduction is done.
  If the skin does't look very nice take color reduced ones
  or do the reduction yourself if you can.
  Sometimes there are stronger problems regarding display
  of skins. Usually the @{b}picture.datatype@{ub} is 
  defective/old and slow. Take a new one!
 
  As soon as Skins are enabled a new menue bar will be 
  shown in @{i}Settings@{ui} Menue.
  That's the place where skins may be changed and selected.

@{b}Skin Directory@{ub}
  Directory where to find the skins

@{b}Skin@{ub}
  Actual skin

@{b}solid windowmove@{ub}
  AMPlifier 2 supports window moving in realtime. This mean the
  window will follow the actual mouse position automaticaly.

  The windows can be draged on every position where isn't a gadget
  (not only on the titlebar).

@{b}Snap windows at nn pixel@{ub}
  This option does the automatic window docking. The distance
  between the windows when they will be docked can be set.

@ENDNODE

@NODE CONFIG "Configuration"
@TOC MAIN
@{b}Settings and Parameters@{ub}

There are several options which may selected via tooltypes
or as a parameter in the shell. 

Following Tooltypes are available in programm's Icon:

@{b}CONFIG=Prefsfile@{ub}
  Prefsfile is a file into which AMPlifier stores its 
  configuration. It's probably only usefull to change the
  name if there is more than one instance if AMPlifier 
  running with different configuration. 
  (Default: ENVARC:AMPlifier.prefs)

@{b}CX_POPUP=Yes/No@{ub}
  This Tooltype is a standard one of AmigaOS.
  If 'No' is entered, AMPlifier starts up as an AppIcon 
  only. The GUI is not visable for first. 
  This is equivalent to iconify in pull-down-menue of 
  AMPlifier.

@{b}CX_POPKEY=Hotkey@{ub}
  Hotkey defines the kombination of keys which
  (re-)activates the GUI. 
  (Default: @{i}shift-F1@{ui})

@{b}CX_PRIORITY=pri@{ub}
  Defines the startup priority of Commodity 
  (standard feature)

@{b}noAppIcon@{ub}
  The player doesn't show an AppIcon on Workbench.

@{b}PubScreen=ScreenName@{ub}
  Screenname is one of the allready opened Public 
  Screens on which AMPlifier will open its GUI on.

@{b}RemainingTime@{ub}
  The player doesn't display time elapsed but the time 
  remaining.

@{b}Pattern=\#?.(MP2|AIFF|WAV|MAUD)@{ub}
  At filerequesters only files matching the pattern are 
  displayed.

@{b}Random@{ub}
  The Player plays all entries at random order instead
  of alphabetical order.
  
@{b}Loop@{ub}
  AMPlifier doesn't stop playback after the whole list
  is finished but restarts playback again.

@{b}StopBeforeScan@{ub}
  Before AMPlifier plays back a new song it checks if  
  knows the filetype.
  At some configurations it's a problem if one song is 
  currently played and a second one is scanned to identify
  it. Using this flag AMPlifer will stop the previous
  song until having a look at the next one.

@{b}Visual=1,2,3@{ub}
  This is used to select the display which is used at the
  the skin GUI.
  1=Volume Meter, 2=Oscilloscope, 3=Spectrum Analyzer

@{b}SAScale=spectrum scale@{ub}
  This is the scaling of the frequency range at the 
  Spectrum Analyzer Effect.

@{b}VisualPri=pri@{ub}
  This is the priority of the Visualization task

@{b}Equalizer@{ub}
  The equalizer is default disabed now.
  You must set this option if you want to use the equalizer.


Many options are even available as shell arguments
The meaning is equivalent to the WB Tooltypes.

    FILENAME=StartFile
    CONF=CONFIGFILE
    CX_POPUP=<YES/NO>
    PS=PUBLICSCREEN


@ENDNODE

@NODE AREXX "ARexx"
@TOC MAIN

@{b}AMPlifier ARexx-Port@{ub}

The ARexx port of AMPlifier is accessable @{b}AMPLIFIER.1@{ub}. 
Additional instance of AMPlifier gets the port @{b}AMPLIFIER.2@{ub} 
and so on.

Following ARexx commands available at AMPlifier's port:

   @{" QUIT          " LINK QUIT}   
   @{" HIDEGUI       " LINK HIDEGUI} 
   @{" SHOWGUI       " LINK SHOWGUI} 
   @{" OPEN          " LINK OPEN}   
   @{" PLAY          " LINK PLAY}   
   @{" STOP          " LINK STOP}   
   @{" PLAYPAUSE     " LINK PLAYPAUSE}
   @{" PAUSE         " LINK PAUSE}   
   @{" PLAYNEXT      " LINK PLAYNEXT}
   @{" PLAYPREV      " LINK PLAYPREV}
   @{" SELECT        " LINK SELECT}
   @{" QUERYSELECTED " LINK QUERYSELECTED}
   @{" SEEK          " LINK SEEK}
   @{" VOLUME        " LINK VOLUME}
   @{" WAIT          " LINK WAIT}
   @{" WAITABORT     " LINK WAITABORT}
   @{" ADD           " LINK ADD}
   @{" REM           " LINK REM}
   @{" CLEAR         " LINK CLEAR}
   @{" SORTLIST      " LINK SORTLIST}

   @{" PLAYSTATE     " LINK PLAYSTATE}
   @{" GETTIME       " LINK GETTIME}
   @{" GETLENGTH     " LINK GETLENGTH}
   @{" GETTAGINFO    " LINK GETTAGINFO}

@ENDNODE


@NODE QUIT "QUIT"
@TOC AREXX

@{b}@{u}QUIT@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Quits AMPlifier

@ENDNODE

@NODE HIDEGUI "HIDEGUI"
@TOC AREXX

@{b}@{u}HIDEGUI@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Hides graphical user interface

@ENDNODE

@NODE SHOWGUI "SHOWGUI"
@TOC AREXX

@{b}@{u}SHOWGUI@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Shows graphical user interface

@ENDNODE

@NODE OPEN "OPEN"
@TOC AREXX

@{b}@{u}OPEN@{uu}@{ub}

@{i}Template@{ui}
    TITLE/A

@{i}Description@{ui}
    Tries to open a file with name given

@ENDNODE

@NODE PLAY "PLAY"
@TOC AREXX

@{b}@{u}PLAY@{uu}@{ub}

@{i}Template@{ui}
    TITLE,INDEX/N/K

@{i}Description@{ui}
    If no argument is passed the current song is played;
    With argument given the specified file will be loaded
    if possible.
    If index argument is used the number of the entry in 
    playlist is played (topmost argument is 0).

@ENDNODE

@NODE STOP "STOP"
@TOC AREXX

@{b}@{u}STOP@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Stops playback of current song

@ENDNODE

@NODE PLAYPAUSE "PLAYPAUSE"
@TOC AREXX

@{b}@{u}PLAYPAUSE@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Each call toggles play und pause

@ENDNODE

@NODE PAUSE "PAUSE"
@TOC AREXX

@{b}@{u}PAUSE@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Pauses playback of current song

@ENDNODE

@NODE PLAYNEXT "PLAYNEXT"
@TOC AREXX

@{b}@{u}PLAYNEXT@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Plays next title in playlist
    If random mode is activated, the next random title is 
    played.

@ENDNODE

@NODE PLAYPREV "PLAYPREV"
@TOC AREXX

@{b}@{u}PLAYPREV@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Plays previous title

@ENDNODE

@NODE SELECT "SELECT"
@TOC AREXX

@{b}@{u}SELECT@{uu}@{ub}

@{i}Template@{ui}
    INDEX/N/K,NEXT/S,PREV=PREVIOUS/S,TOP/S,BOTTOM/S

@{i}Description@{ui}
    Selects titel in playlist

@ENDNODE

@NODE QUERYSELECTED "QUERYSELECTED"
@TOC AREXX

@{b}@{u}QUERYSELECTED@{uu}@{ub}

@{i}Template@{ui}
    PLAYED/S,INDEX/S,NAME/S,LABEL/S

@{i}Description@{ui}
    Returns informations to selected title in playlist 

@ENDNODE

@NODE SEEK "SEEK"
@TOC AREXX

@{b}@{u}SEEK@{uu}@{ub}

@{i}Template@{ui}
    SEC/N/A

@{i}Description@{ui}
    Jumps to a specified position in actual title 
    (seconds from start).

@ENDNODE

@NODE VOLUME "VOLUME"
@TOC AREXX

@{b}@{u}VOLUME@{uu}@{ub}

@{i}Template@{ui}
    LEVEL/N

@{i}Description@{ui}
    Set volume to (0-64).
    If no argument is passed actual volume is returned

@ENDNODE

@NODE WAIT "WAIT"
@TOC AREXX

@{b}@{u}WAIT@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Wait until song is finished (synchronous) 

@ENDNODE

@NODE WAITABORT "WAITABORT"
@TOC AREXX

@{b}@{u}WAITABORT@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Breaks @{" WAIT " LINK WAIT} command

@ENDNODE

@NODE ADD "ADD"
@TOC AREXX

@{b}@{u}ADD@{uu}@{ub}

@{i}Template@{ui}
    TITLES/M

@{i}Description@{ui}
    Adds one or more files or directories from playlist
    
@ENDNODE

@NODE REM "REM"
@TOC AREXX

@{b}@{u}REM@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Removes an entry from playlist

@ENDNODE

@NODE CLEAR "CLEAR"
@TOC AREXX

@{b}@{u}CLEAR@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Clears playlist

@ENDNODE

@NODE SORTLIST "SORTLIST"
@TOC AREXX

@{b}@{u}SORTLIST@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Sorts playlist in alphabetical order

@ENDNODE

@NODE PLAYSTATE "PLAYSTATE"
@TOC AREXX

@{b}@{u}PLAYSTATE@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Ask for state of the players

@{i}Result@{ui}
    1=Stop
    2=Pause
    3=Playback

@ENDNODE

@NODE GETTIME "GETTIME"
@TOC AREXX

@{b}@{u}GETTIME@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Ask for time elapsed (per song).

@{i}Result@{ui}
    Time in seconds

@ENDNODE

@NODE GETLENGTH "GETLENGTH"
@TOC AREXX

@{b}@{u}GETLENGTH@{uu}@{ub}

@{i}Template@{ui}
    -

@{i}Description@{ui}
    Ask for length of current title

@{i}Result@{ui}
    Length in seconds

@ENDNODE

@NODE GETTAGINFO "GETTAGINFO"
@TOC AREXX

@{b}@{u}GETTAGINFO@{uu}@{ub}

@{i}Template@{ui}
    STEM/K

@{i}Description@{ui}
    Returns ID3-TAG informations into a 
    pre-defined variable 
    
@{i}Result@{ui}
    READY    0 - no ID3-TAG infos available
             1 - following infos are available
                 
    TITLE    
    ARTIST   
    ALBUM    
    YEAR     
    COMMENT  
    GENRE    

@{i}Example@{ui}

    OPTIONS RESULTS

    ADDRESS AMPLIFIER.1

    GETTAGINFO STEM tag

    IF tag.ready = "1" THEN DO
      SAY "Title:" tag.title
      SAY "Artist:" tag.artist
      SAY "Album:" tag.album
      SAY "Year:" tag.year
      SAY "Comment:" tag.comment
      SAY "Genre:" tag.genre
    END

@ENDNODE

