PlaySPC_GTK Changelog
---------------------

Version 0.2.7.8:

   Some security fix ups (changed strncpy to a strlcpy-like function).

Version 0.2.7.7:

   Almost entirely clean-ups to better handle failure conditions.  Also general tidying of documentation.

Version 0.2.7.6.2:

   Update to work with p7zip 4.14.01.  Hopefully they don't change the output of the 'l' option again.

Version 0.2.7.6.1:

   A simple update to actually invalidate all View Info dialogs on either a New or Open, since clearly all entries in the playlist are removed.

Version 0.2.7.6:

   Okay, this is less of a hack to updating multiple tags.  Trying to open a view info tag twice for an entry will fail.  And there's no way for Playspc_gtk to now be confused by unloading one file and reloading another which would happen to create a new temporary tag entry in the same spot in memory.  I doubt that any of this is really an issue for anyone, but this guarantees a lack of problems.

Version 0.2.7.5:

   A much more graceful tag update feature, which allows updating multiple tags.  If you move a playlist entry around though, be sure to select it when trying to save a tag.

Version 0.2.7.4.1:

   A small update to compensate for what I'd consider a bug in 7zip.  That bug being that a smaller than 8.3 is apparently space padded.  So, to compensate for this as best as possible, spaces are trimmed off the end of a name.  This shouldn't cause too many problems.  The real solution is to fix 7zip, however.

Version 0.2.7.4:

    A few changes.  The biggest is a switch from using rar to using 7zip.  7zip is open source, has finally gotten a port to *nix, and compresses even better than RAR in my experience.  It's a pretty trivial script to convert from rar to 7zip.  However, seeing that not everyone will convert, it's advised to continue using version 0.2.7.3 if you want to continue to use rar.  If there's enough outcry, I'll try to include a merged 7zip/rar mode.  But truthfully, I feel better relying on an open source compressor than a closed one.

Version 0.2.7.3:

    Included an interal log of what goes on.  This is especially useful for GUI users who happen to be running either a shoutcast or cheap server and want some nature of status of who's connected.  Current, simply echos just what is shown on stdout.  The future might include a timestamp as well.

Version 0.2.7.2:
    Semi-major update this time.  Dopefish's switch to the emulation core included a small allocation bug which was fixed.  As well, some new options have been included to further support the wide range of interesting and possibly useful features possible.  One of which is Cheap Servers offering a means of streaming a played or paused spc file to playspc_gtk listeners or thanks to code (which is provied in windows) Windows users.  Feel free to offer to write your own code and offer it to us if you want to include your own listener.  Please, any code which is offered should be put under the GPL to simplify licensing as much as possible.

Version 0.2.7:
    Major update this time.  I've switch SPC emulation cores.  We're now using FatlXception's libopenspc (20030109 snapshot).  This library is in active development, and should be a nice improvement over the old SPC core (which is a few years old by now).  It's also quite a bit cleaner.

Version 0.2.6.2:
    This should make the read in id666 time numbers actually sane now (I just looked at what Meridian Advance was doing and mimick that behavior).  Also, a few other trivial changes.

Version 0.2.6.1:
    A small update to fix a few bugs introduced in 0.2.6 (like segfaulting when trying to save id666 tags).  The option to not playback over the sound card has been disabled due to it being the probable cause of reported skipping.  Until that can be resolved, it'll be left out.

Version 0.2.6:
    The mystery of the redraw bug has been discovered. Sometimes the most obvious is so easy to skip over. next_track() calls play() which modifies the timer, which turns out to be not thread safe unless you wrap the call to next_track() in gdk_thread_enters()/leaves().  Anyways, that's been fixed, the timer has been altered more to make more sense.  I hope the new dual timer will be more pleasing.
    The saving of files as been worked over to work better.  Now you can save to the last container file opened, or you can force what type of container is used.  Both saving to rar and loading a playlist with a variety of rar'd entries can be quite slow, so please be aware.  As a side note, an obvious statement should be made that changes to the id666 tag of a file only take effect on an rar contained file when saving to an rar, as the playlist only contains references to the original rar file.  This also means that moving the rar file, just like moving a regular spc file, will cause the playlist to fail to load completely.  More extensive use of message boxes should hopefully be more useful to the user in informing them of important things that are going on.
    Finally, there has been a lot of overhaul work done internally which should hopefully greatly simplify future work with adding actual native plugin support for more than just spcs.  Those who would like to actual write a plugin for supporting other file formats might want to take a look at spccore.c to get a rough idea of what's needed.  The final format for the plugin system will likely include several more commands, most related to verifying that a file is indeed the type it appears to be as well as display and option information.

Version 0.2.5:
    Correctly utilizes SNDFree, now.  SNDFree has been expanded and should include everything that is actually allocated by sound.c.
    Also, playspc_gtk.c has been revamped to use as many local allocations as possible, which should remove any current or future memory leaks.  Through this process, it was discovered that the id666 struct was too small and was causing memory corruption, so the id666 struct has been expanded a good means beyond what space it really uses.
    The redraw problems present in versions ever since the inclusion of the current time status bar have not been resolved.  Any work to discover what's causing this would be greatly appreciated.
    A few more options have also been included to allow for streaming to be done better.  As a result, naming conventions for names have been expanded and should hopefully be extensive enough to fill most needs.  Further work on fill_name for other possible iterations may be warrented.
    Tables == evil. Packing == good. So, I just rewrote playspc_gtk to use packing boxes. As a small consequence, a progress bar as well as text is now available for compiling. You can also choose to place the timer above or below the playlist.  Cheers.

Version 0.2.4:
    Further changes by member Michael Thornbury to PlaySPC_GTK to serve as an icecast server.  Further integration to allow most of what is now command line options should hopefully be done in the future.  Also, the addition of an append option to opening playlists.  Various other changes have been made which hopefully will make a more enjoyable player.
    A shoutcast server, which requires an mp3 encoder that can handle communicating through pipes to encode, has been included.  Lame is the default encoder.  Using another encoder shouldn't be too difficult to include at a later time.
    Other player cores should be written in a short while.

Version 0.2.3:
    Fixed the ugly redraw error introduced in the last release.  It was caused by non-thread-safe behavior related to the track timer.

Version 0.2.2:
    Michael Thornbury joins the PlaySPC_GTK development team!
    The SPC core is now built as a separate binary (although it isn't intended to do anything on its own).
    PlaySPC_GTK now uses pthreads for synchronizing between the GUI and the SPC core.
    Because of these changes, PlaySPC_GTK is now modular.  New SPC cores can now be added, and users allowed to switch between all compiled-in plugins via a GUI option.
    However, also because of this, PlaySPC_GTK no longer supports an external SPC player.  If this is a problem for you, either continue to use version 0.2.1, or wait until additional plugins are added.
    Added a pause button.
    Added a playback timer for the currently-playing track.
    Added support for double-clicking in the playlist to start playing a track.
    Cleaned up the Makefile; removed some legacy options.
    A few minor optimizations to the code.

Version 0.2.1:
    Finally squashed the playlist remove bug.

Version 0.2.0:
    This is a bugfix release. (So sue me, 0.1.3 should have been called 0.2.0, but I forgot to update that before I released.  So I'm bumping the version now instead.)
    Fixes include not leaving zombie processes all over the place, removing some extraneous code, and the like.

Version 0.1.3:
    Added the ability to write ID666 tags back to SPC files (assuming you have write permissions on the file, and it's not inside a RAR archive).
    Added the modified SNeSe SPC core used by OpenSPC--PlaySPC_GTK no longer requires an external SPC player!

Version 0.1.2:
    Added loading and saving of preferences via a ~/.playspc_gtkrc file.
    Moved the compile-time options for helper applications, etc. to the Makefile for easier compilation on different systems.

Version 0.1.1:
    Added RAR archive support.
    Fixed a bug where an SPC file without an ID666 tag would not fall back to using the filename in the playlist (so it showed up as just a "-"). Version 0.1.0: First release. No RAR archive (or TAR/ZIP/etc) support yet.

Version 0.1.0:
    Initial release.
