English Readme file for YEO-MP3 (Your Ears Only MP3 Player)
===========================================================

Version provided with this distribution: 0.32 Build #62
Operating System: Windows 95/98

Contents:
1. License, Copyright, Limitation of Warranty, Disclaimer of Liability etc.
2. The files included in this distribution
3. Command line parameters
4. YEO-MP3's basic functions
5. How to use YEO-MP3's Song Library Manager
6. Bugs, bugfixes and version history
7. Contact the Author
8. Miscellaneous / Credits / Words of thanks

---

1. License, Copyright, Limitation of Warranty, Disclaimer of Liability etc.

YEO-MP3 is freeware. That means you don't have to pay for the software
but the author (myself) still is the copyright owner.
You can get the source code upon request. See chapter 7 for contact information.
YEO-MP3 uses the Xaudio MP3 decoding engine. Currently this engine is free
for individual private use.
The software YEO-MP3 is provided "as is", the author of YEO-MP3, Andreas Leidner,
is not liable for any damage to your computer, loss of data, etc. that comes from
the use or false use of this software.
You may further distribute this software on CD-ROM, diskette and over networks as long
as you distribute all of the files included in the original distribution (see chapter 2)
and as long as you do not modify any of the original files.

LIMITATION OF WARRANTY.
THE AUTHOR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY
OF THIS SOFTWARE OR ABOUT ANY CONTENT OR INFORMATION PLAYED BY THE SOFTWARE,
FOR ANY PURPOSE.  THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT EXPRESS OR IMPLIED
WARRANTIES, INCLUDING WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE OR NONINFRINGEMENT. THE AUTHOR MAY NOT SUPPORT THIS SOFTWARE AND MAY NOT
ISSUE UPDATES TO THIS SOFTWARE.

DISCLAIMER OF LIABILITY.
THE AUTHOR OR HIS SUPPLIERS SHALL NOT BE LIABLE FOR (a) DIRECT, INCIDENTAL,
CONSEQUENTIAL, SPECIAL OR INDIRECT DAMAGES OF ANY SORT WHATSOEVER, WHETHER ARISING
IN TORT, CONTRACT OR OTHERWISE, (INCLUDING WITHOUT LIMITATION DAMAGES FOR LOSS OF
BUSINESS PROFITS, REVENUES, OR INFORMATION, OR FOR BUSINESS INTERRUPTION) RESULTING
FROM YOUR USE OF THE SOFTWARE OR INABILITY TO USE THE SOFTWARE, EVEN IF THE
AUTHOR HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR (b) FOR ANY CLAIM
BY ANY OTHER PARTY THAN YOU. THIS DISCLAIMER OF LIABILITY SHALL NOT APPLY TO
LIABILITY FOR DEATH OR PERSONAL INJURY WHERE THE APPLICABLE LAW PROHIBITS SUCH
LIMITATION. FURTHERMORE, SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION AND EXCLUSION MAY NOT APPLY
TO YOU.

If you do not agree with all of the above statements you don't have the permission to use
this software! In this case you are required to delete it immediately from all of your
computer's storage devices.

The xaudio library cannot be used for commercial purposes without a license.
Xaudio MPEG Audio decoding engine is copyright MpegTV, LLC.
MpegTV, LLC contact:
Gilles Boccon-Gibod           gilles@mpegtv.com
MpegTV, Vice-President        xaudio@mpegtv.com
http://www.mpegtv.com     http://www.xaudio.com

Xaudio MPEG Audio Engine (c) 1996-1998 MpegTV, LLC

2. The files included in this distribution

The following files must be included in this distribution. If one or more of the files
are not included please contact the software's author (see chapter 7).

YEOMP3.exe		- The binary executable.
xaudio.dll		- MpegTV's Xaudio MP3 decoding engine/library.
readme.txt		- This file.
yeomp3.dat		- Where YEO-MP3 stores its options.
play.ico		- Dynamically loaded icon resource.
pause.ico		- Dynamically loaded icon resource.
stop.ico		- Dynamically loaded icon resource.
BassPower.eqs		- A sample Equalizer-Settings-File.
PowerVoiceRight.eqs	- A sample Equalizer-Settings-File.
setlib.dat		- An empty song library.
This is an example set that contains no songs.set
			- An example set for the song library.
treeview_closed_set.bmp - Dynamically loaded bitmap resource.
treeview_opened_set.bmp - Dynamically loaded bitmap resource.
treeview_song.bmp       - Dynamically loaded bitmap resource.
treeview_playing.bmp    - Dynamically loaded bitmap resource.
treeview_paused.bmp     - Dynamically loaded bitmap resource.
treeview_stopped.bmp    - Dynamically loaded bitmap resource.

3. Command line parameters

There are only four possible command line parameters:

-s or --show   : shows the main window (instead of displaying only a taskbar icon)
-m or --manage : shows the Library Manager
-a or --audio  : shows the Modify Audio Settings-window
<MP3-filename> : plays the specified MP3 file.

Example:
Enter the following at the command line when you are in the same directory as
YEOMP3.EXE (without the quotes):
"YEOMP3.EXE --show OptionalMP3Filename.mp3"

You need the -s (or --show) switch only if you want to be sure that YEO-MP3 will
show its main window at program start. YEO-MP3 saves the last position of the
main window and whether the main windows was displayed or not automatically.

4. YEO-MP3's basic functions

The YEO-MP3 player establishes a program icon in the taskbar (or system tray) at
program start. You can also display a "normal" window by double-clicking on the
tray-icon. If you right-click on the tray icon or somewhere in the main window
a menu will pop up from where you can control YEO-MP3's functions.
Choose "Open File..." to display a usual open-file-dialog and open one of your
MP3 files. YEO-MP3 should immediately begin to play the file.

If you simply left-click on the tray-icon while YEO-MP3 is playing a song it
will pause the current song. Left-click again and the song continues to play.

YEO-MP3 also provides a song library.
Read now...

5. How to use YEO-MP3's Song Library Manager

Open YEO-MP3's popup-menu by right-clicking on the tray-icon and open the
"Song Library" menu and left-click on "Manage Library...". Now you should
see a window called "Library Manager".

The Library Manager window is divided into two sections. On the left there
are a drive-and-directory-listbox, a file-listbox and a filter-combobox.
Choose the drive/directory containing your MP3 files now. The MP3 files
should be displayed in the file-listbox.

On the right you see YEO-MP3's song library - empty at the moment, of course.
The song library is organized like your CD collection. In the upper right corner
there is a list of "Sets" (empty now; each Set represents a CD) each of them containing
some songs that are displayed in the song list in the bottom right corner.
Ok, left-click on the top-left button (the bubble-help says "Add New Set"),
enter a title for the new Set and left-click on "OK".
Now, left-click on the new Set that is displayed in the Set list and then left-click
an MP3 file in the file-listbox and left-click on the button that has an "arrow pointing
to the right" on its surface. The Set you added just before contains the MP3 file
you selected now. Proceed with this operation until the Set contains all the MP3 files
belonging to one CD. Then add the next Set and the next CD.
You can use the [Return]-Key in the Library Manager's filelistbox to add the selected
file to the current Set or you can select several files and add them at once.

In YEO-MP3's options menu (popup-menu / Options) you can enable the options
"Random Set" and "Random Song" ("Random Set" can only be enabled when "Random Song"
is enabled). If one or both of these options are enabled the buttons/commands
"Next Song" and "Previous Song" will act like the commands "Play Random Set"
or "Play Random Song" (like "Play Random Song" if only the "Random Song" option is
enabled; like "Play Random Set" if both options "Random Song" and "Random Set" are
enabled). Else "Next Song" and "Previous Song" will skip to the next/previous song
in the library manager's playlist.

In the options menu there is also an item called "Enter library folder...".
YEO-MP3 stores the sets you add to the song library in a file called "setlib.dat"
in the program's directory by default. With the option mentioned above you can
change the directory where the library is stored. For each set YEO-MP3 creates
a file called like the set with the extension ".set". In these files the sets' song
titles and filenames are saved. The *.set files go in the same directory as setlib.dat.
All of these files are text files so look into them to learn about the library's
file format but be *careful* when changing any of the files manually!

6. Bugs, bugfixes and version history

There are no known bugs. If you find a bug in the program please send an e-mail
to leidner@gmx.net with "YEO-MP3 Bug" in the subject line.

You may find that when you double-click on the tray-icon to show YEO-MP3's main window
the sound shortly stops and then continues. This is no bug. Since a double-click consists
of two simple left-clicks YEO-MP3 assumes you pause the song and then continue it.
After this, Windows (that measured the time between the two left-clicks) informs YEO-MP3
that a double-click has occurred and YEO-MP3 shows its main window.

Version history:

Version 0.33 Build #62

- added: icons for the Rewind and FastForward menu commands.
- added: now the timecode and duration of the current song are also shown in the mini-window.
- changed: if the mini-window is configured to be displayed everytime the current-song changes,
         it's also displayed on Rewind and Fast-Forward.
- fixed: the functions Rewind and FastForward work correctly now. (if rewind would exceed the
         song's start position it's starts from the beginning; if fastforward would exceed the
         song's duration the song is stopped.) They also work if the song is paused.
- fixed: you can now use Rew./FF several times in alternating order and the song's input position
         and the slider will be set correctly.
- fixed: the Rewind and Fastforward commands work properly with very long mp3 files now
         (about 3 hours tested).
- added: an option "INPUT_POSITION_RANGE" in the yeomp3.dat file to set the range (max. steps) of
         the player's input. The default is now 40000 which should also work with very long files.
         If you encounter problems with the Rew./FF commands while working with files even longer
         than three hours you should try and set this variable manually to a higher value (can be
         maximal 2^32=4294967296). If you have only short files that last about a few to 10 minutes
         you can safely set this variable to 4000 or even 400.
- added: a new option in the hotkey-configuration-dialog: you can now configure for every
         system-wide hotkey whether the foreground application should also be allowed to receive
         it after YEO-MP3 has processed it (default: yes).

Version 0.32 Build #59

- added: you can configure a Mini-Info-window under "options"->"Configure Mini-Info" to
         be displayed when you execute the prev/next-song commands or everytime the
         CurrentSong changes. The mini-info contains the current set's name and
         current song's title and is only shown if the main window isn't visible.
         you can also configure how long it should be shown.
- added: new menu command "Show Mini-Info" to display the Mini-Info explicitly.
         added this one to the configure-hotkeys-dialog.
- fixed: The program now does not only remember the last DisplayStyle/layout but also
         successfully restores it upon the next start :-)
         (thanks to Slavko Kocjancic, Slavko.Kocjancic@mail.dotcom.fr)
- added: new menu commands "Rewind" and "Fast Forward". the length these commands
         rewind/forward the input stream is configurable in the options menu.
         [SystemWide] Hotkeys can be assigned to the commands
         Rewind, FastForward, SetRewindTime and SetFastForwardTime.

Version 0.32 Build #50

- added: the currently played set and song are also marked in the popup-menu song library.
- added: a hotkey-configuration dialog. hotkeys can be user-redefined now.
- added: hotkeys are assigned immediately, so there's no need for a restart of the program.
- added: YEO-MP3 uses a system-wide keyboard hook to make hotkeys system-wide available
         even if the program is not in the foreground. (only if the user defines this in
         the hotkey-config dialog)

Version 0.21 Build #39

- added: further command line parameter: -a or --audio : shows the window "Modify Audio Settings"
- fixed: changed the treatment of the command line parameters. now it's possible
         to mix them as you like (e.g. "yeomp3.exe -a FileToPlay.mp3 --manage).
- added: a "Browse for Folder"-Button to the "Enter Library Folder"-dialog box.
- added: now MainWindow's Width and Height is also saved in yeomp3.ini!
- added: Display current Song's Title in Application.Title
- added: Library Manager: Ability to select/add several files at once
- changed: Library Manager: Changed the DirectoryListBox/DriveComboBox to a more explorer-style listbox
- added: Library Manager: Ability to delete songs and sets per [Del]-Key
- added: treeview/library-manager: ask before removing set
- fixed: when adding a new set YEO-MP3 calculated the index number for the new set incorrectly.
- added: a futher control-button that toggles the main window's display styles (form_main.height):
	 1. display all
	 2. display slider, song info, control buttons
	 3. display slider, control buttons
	 4. display control buttons
- added: implemented a Resize function
- added: Display also the current song's title in the taskbar icon's quick-info (in addition to "stopped","playing","paused")
- changed: slight change to the Song Library's format (sets aren't numbered any longer)
- added: DoesSetExist-Function
- added: "Open Directory"-Function (recursive is only possible if treeview is used instead of Library Manager)
	        	create a "temporary set" with the directory's mp3 files.
			(recursive would be: create several temporary sets for the opened
				directory and all subdirectories. therefore an option
				is needed "Open Directory: Recursive?":Boolean -> ini file)
			and then call CreateLibraryMenu
			play the first song (file) of the first newly added set (directory).
			if a song does already exists in the set do not add it.
- added: Alternate view of the Song Library: TreeView
  	    double-click: play
  	    expand-on-play,
  	    setStateIndex-on-play
	    popup-menu
	    playing -> StateImage (PLAY-ICON)
	    Song Library modifyable in the alternate view (by using the Song Library Manager behind the scene)
	    Treeview-Icons: Closed Set, Opened Set, Song, Playing-Icon
	    StateIndex for paused and stopped
            support keys for treeview (OK Enter->play song, OK delete->remove set/song)


Version 0.13 Build #31

- added: ID3 tag editor integrated in the Library Manager.
- added: XA_MSG_SET_PLAYER_MODE:
	XA_PLAYER_MODE_OUTPUT_AUTO_CLOSE_ON_STOP : yes
	XA_PLAYER_MODE_OUTPUT_AUTO_CLOSE_ON_PAUSE : no
	XA_PLAYER_MODE_OUTPUT_AUTO_CLOSE_ON_EOF : yes
	-> releases the audio driver
- added: XA_MSG_SET_OUTPUT_CHANNELS:
	    XA_OUTPUT_STEREO
	    XA_OUTPUT_MONO_LEFT
	    XA_OUTPUT_MONO_RIGHT
	    XA_OUTPUT_MONO_MIX
         XA_MSG_GET_OUTPUT_CHANNELS:
	    gets output channel config per message:
		XA_MSG_NOTIFY_OUTPUT_CHANNELS
- added: XA_MSG_SET_OUTPUT_VOLUME:
	    balance, pcm_level (=wave), master_level
	    0: silent 100: maximum loudness
	    0: totally left 100: totally right
	    special value: XA_OUTPUT_VOLUME_IGNORE_FIELD => does not change the corresponding volume field.
         XA_MSG_GET_OUTPUT_VOLUME:
	    gets output per 3 messages:
		XA_MSG_NOTIFY_OUTPUT_BALANCE
		XA_MSG_NOTIFY_OUTPUT_PCM_LEVEL
		XA_MSG_NOTIFY_OUTPUT_MASTER_LEVEL
- added: XA_MSG_SET_OUTPUT_PORTS:
	    sets output port:
		XA_DECODER_CONTROL_OUTPUT_LINE
		XA_DECODER_CONTROL_OUTPUT_SPEAKER
		XA_DECODER_CONTROL_OUTPUT_HEADPHONE
         XA_MSG_GET_OUTPUT_PORTS:
	    gets output port per message:
		XA_MSG_NOTIFY_OUTPUT_PORTS
- added: XA_MSG_COMMAND_OUTPUT_MUTE, XA_MSG_COMMAND_OUTPUT_UNMUTE:
	 mutes/unmutes the sound output.
- added: XA_MSG_SET_CODEC_EQUALIZER:
	    equalizer consists of 2 sets (for left and right channel) of 32 values.
	    if the equalizer pointer passed as an argument is CODE(NULL) the
	    equalizer will be disabled (reduces CPU usage).
         XA_MSG_GET_CODEC_EQUALIZER:
	    gets equalizer settings per message:
		XA_MSG_NOTIFY_CODEC_EQUALIZER
- added: load/save equalizer settings to/from a file.
- added: automatic load/save equalizer settings at start/end (yeomp3.eqs).
- added: Set/GetCodecQuality
         CodecPriority
- added: provide some prepared eq-setting-files with the distribution
         ("BassPower", "PowerVoiceRight")

Version 0.12 Build #2

- first version released.
  includes basic operations plus a playlist function,
  song library and a random song function.

7. Contact the Author

If you're using YEO-MP3 please contact the Author of YEO-MP3, Andreas Leidner,
via e-mail at leidner@gmx.net. Please include the text "YEO-MP3" somewhere in the
subject line.
Any feedback is greatly appreciated.

8. Miscellaneous / Credits / Words of thanks

8.1 Included image files:

If you want to edit the image files included in this distribution keep in mind
that the icons' and bitmaps' size must be 16x16 pixels. The bitmaps mask is
the white color (RGB: 255,255,255).

8.2 Thanks to

    + Graeme K Chandler (jag@access.net.au, graeme@gajits.com)
         Website:
         http://www.gajits.com
         http://nutrition.gajits.com
         http://www.gajits.com/jag

      for his help with the keyboard hook procedure and his invaluable source code
      examples. Thanks to him, YEO-MP3 is able to support system-wide hotkeys.

    + Also thanks to the programmers at Borland/Inprise who provide wonderful examples
      how to use the windows API and windows hooks:

      http://www.borland.com/delphi/papers/winAPI/ 

--- EOF ---