
               XMMS remote that uses K-Jofol's skins

                   Written by Tim Ferguson, 1999-2000.

               (http://www.csse.monash.edu.au/~timf/xmms/)
       (timf@csse.monash.edu.au, http://www.csse.monash.edu.au/~timf/)

  There are some very cool skins coming out for K-Jofol.  They look
  heaps better than the Winamp ones.  This can be compiled as a stand
  alone program which functions as a remote control.  Just run XMMS,
  then run this to control XMMS.  It will also compile as a visualisation
  plugin.  Simply do a `make clean; make vislib'.
  
  Have a look at the makefile for configuration and more information.

  For this to work, you need to copy default.zip to either ~/.xmms/kjofol/
  or /usr/share/xmms/kjofol/.  Also place any other resource files
  you have there.  I started a penguin resource, but I am not much of an
  artist.  If someone wants to complete it for me, that would be cool!
  Also added is support for Digideck skins, which can be put in the same
  place as the K-Jofol skins, or in ~/.xmms/digideck/.

  This is still under development, although it is fairly functional and
  stable now.  I think it still has a few bugs that will crash it
  (eg: changing to a bad resource file... needs a compiled in default).

  There is a sample of my desktop running 9 different skins simultaneously
  called `kint.jpg'.

  Great places to download skins are
     http://customize.org/ and http://www.skinz.org/

  For the real product, look at
     http://www.kjofol.org/

  Default skin:
  The default resource released with this package is the same default that
  comes with K-Jofol.  I have received permission from the author,
  Christophe Thibault, to distribute this resource, so I thank him very much.
  If you are running windows, make sure you go to http://www.kjofol.org/ and
  grab his player.

  Playlist editing:
  This interface now attempts to maintain a local copy of the current
  playlist.  In some cases, it is possible to have the K-Jofol playlist out
  of sync with XMMS' list.  One significant problem results whenever a change
  is made to the K-Jofol playlist while XMMS is playing.  Since  the result
  of this change must be sent to XMMS, it will stop playing (playlist gets
  cleared and then set with the K-Jofol list).  These problems are difficult
  to overcome efficiently, and unless the plugin interface is improved, may
  be impossible.  One possible solution is through the import hack currently
  used for equaliser on/off control.

  XMMS_VISIMPORT_HACK for equaliser:
  The `XMMS_VISIMPORT_HACK' in kj.h should be set to 0 by default.  By setting
  it to 1 will allow the equalisers on/off control to work when compiled as
  a visualisation plugin only.  Since the XMMS plugins api does not support
  equaliser on/off modification, this is a very crude hack that relies on
  XMMS function and variable import.  If it works for you, great, if not,
  there is probably not much that can be done, so set `XMMS_VISIMPORT_HACK'
  to 0.  Future versions may improve playlist editing support this way.  Feel
  free to let me know how you go with this.

  Latest version:
  This package is updated fairly frequently.  The latest version can be
  obtained from (until the uni kicks me out that is):
               http://www.csse.monash.edu.au/~timf/xmms/

----------------------------------------------------------------------
To Do:

 - Create a default skin for distribution with XMMS (Any volunteers???)
 - Complete play list editor buttons (add, sub, load, save, select, etc..)
 - Fix play list editor font: Try out freetype lib perhaps?
 - Small playlist windows don't seem to update properly....
 - Improve the winshade and docking modes positioning, and make the
   window stay on top.  Need to check that that it is not moved off screen.
 - Double size I guess...
 - And probably heaps more (Any suggestions are welcome).

Need from XMMS team:
 - Support for a plugins ability to read/write the equaliser on/off settings.
 - Commands that allow easy modification of playlist entries from a plugin:
   move track, delete track, load list, save list.... Its getting there.
 - Pitch control??  Seems popular on Windows players these days.

----------------------------------------------------------------------
Change Log:

26/8/99
 - Initial release.  Loads skin, and buttons, volume control, etc, work.

29/8/99
 - Added transparent font support.

30/8/99
 - Added a configuration panel.  Allows selection of skins.
 - Added about window.
 - Fixed font and volume/pitch control transparency.

1/9/99
 - Added window docking mode.  Will put a wrap around window that follows
   the currently focused window.  If the skin supports it that is....

2/9/99
 - Added playlist window display.  Not very functional at the moment.

4/9/99
 - Can compile it as a XMMS visualisation plugin.  Not 100% stable though.
   NEED the configuration load/save and setup.

5/9/99
 - Added load/save of configuration (resource, positions) to ~/.xmms/config
 - Can now lock the play list window to the main window
 - Made some of the play list window functional: title listing, scroll,
   play, stop, pause, next, previous.

6/9/99
 - Fixed toggle buttons and a few other small problems.  Refreshing is a
   little better now.

7/9/99
 - Added sliding buttons on equaliser.  Need XMMS to support remote setting
   of equaliser values now.
 - Added skin about information to the about window.

8/9/99
 - Added popup menu.  Incorporates Winshade selection.

9/9/99     * computers die today anyways :) *
 - Added spec analyser when compiled as a visual plugin.

14/9/99
 - Fixed bug for displays < 24-bit.  Transparency should work properly now.
   (everyone should have 24 bit displays anyway... they are awesome!!)
 - Set window hints and decorations.

18/9/99
 - Added some functionality to the playlist editor.  Entries can be selected
   and double clicked.  Playlist editing looks messy from remote in XMMS.
 - Tried fixing window size change bug under some window managers.

21/10/99
 - Added configuration editing from visual plugin selection.
 - Added mouse wheel support.  Volume and playlist editor.
 - Scroll up/down playlist with keyboard: arrow up/down, page up/down, home,
   and end keys.  Pressing `p' will also close the playlist editor.
 - Added `close_main_startup' to ~/.xmms/config.  By default this is FALSE,
   but changing it to TRUE will close the xmms main window when the k-jofol
   interface starts up.  Need to add a configuration panel.

10/11/99
 - Fixed a small bug when compiled as a visual plugin on some systems.  Big
   thanks to Damien Sandras for finding and tracking this bug down!

18/11/99
 - Added more configuration in preferences window.
 - Added oscilloscope for visual plugin.  Click on analyser to change.
 - Changed the makefile a little: just do a `make vislib' now.

29/11/99 - 0.92
 - Added visualisation menu: right click on analyser/scope area (like XMMS).
 - Different modes and refresh rates for visualisation added.
 - A bar VU mode added to visualisation list (good for narrow analyser areas).

03/12/99 - 0.92a
 - Added a hack to do fire and vertical line analyser modes.  It seems
   people want these.  I don't recommend their use since K-Jofol does
   not support them, therefore, the colours are artificially created.  It may
   look all right on some resources.

07/12/99 - 0.92b
 - Fixed a few display update related bugs.
 - Added playlist editing features.  NOTE: this is very crude... see above.

13/12/99 - 0.92c
 - Fixed a problem when compiling with non-CVS version of XMMS.. oops.

08/01/00 - 0.93    * computers should be dead by now.... *
 - `XMMS_VISIMPORT_HACK' to kj.h.  This should be set to 0 by default,
   but enabling it will allow the equaliser to work... see above.
 - XMMS competition release :)  Please vote for me!
     http://www.xmms.org/

29/01/00 - 0.94
 - Makefile now uses `xmms-config'.
 - Added support for Digideck skins.  Just add the zipped skin files to one
   of your K-Jofol resource directories, or ~/.xmms/digideck/.  Not all
   (what little there is) of their functionality is currently implemented.
 - Updated kint.jpg: there is a Digideck skin the in bottom left corner.

05/12/00 - 0.95 - LONG time comming!
 - Finished my PhD ... woohoo...
 - Updated the source a little to use the new equaliser control functions in
   the plugin api.  Also included repeat and shuffle control (note: shuffle
   not operational in default skin).
 - When compiled as a vis plugin, the quit button can now either disable the
   plugin, or can be configure to quit XMMS.  (See config pannel).
