2005-12-06  Aaron Bockover  <aaron@aaronbock.net>

	* configure.ac: Version 0.5.12
	* src/SongDatabase.cs: Force progress to 100% so consumer app will know 
	the sync is passed copy/write and in the "sync()" phase	

2005-11-18  Aaron Bockover  <aaron@aaronbock.net>

	* tests/IPodTests.cs: Device device = new Device() changed to just 
	new Device() since the local var is never used
	* src/SongDatabase.cs: Use Mono.Unix.Native.Syscall, Mono.Unix.Syscall is
	obsolete
	* src/DeviceEventListener.cs
	* src/SongDatabase.cs: Use #pragma warning disable/restore to hide
	warnings we know about

2005-11-17  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.5.11.1 (0.5.11 had build issues)
	* tests/Makefile.am: link over ipod-sharp.dll if needed

2005-11-16  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.5.11

2005-11-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: support multiple On-The-Go playlists
	* tests/IPodTests.cs: updated for the above

2005-11-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: rework progress reporting a bit and make
	Save do a sync(2) so Device.Eject doesn't take forever.

2005-11-11  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: don't write library indices, as they are
	screwing things up for some reason.  Also add some things that
	are in new db versions (podcast playlist flag, etc).

2005-11-08  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add a Uri property.

2005-11-08  Aaron Bockover  <aaron@aaronbock.net>

	* tools/PodTool.cs: Updated to reflect Duration/FileName Song API changes
	* autogen.sh: Updated to reference configure.ac
	* configure.ac: Moved from configure.in; we keep with the times
	* configure.in: Removed, renamed to configure.ac; configure.in convention
	is depcrecated
	* configure.in: bump to 0.5.10, require libipoddevice 0.3.5
	* src/Device.cs (ArtworkFormats): fixed offset problem; there is
	two bytes of padding (0xffff) after each struct entry

2005-11-08  James Willcox  <snorp@snorp.net>

	* src/Device.cs: add ArtworkFormats field
	* src/Initializer.cs: cleanup unused methods

2005-11-08  James Willcox  <snorp@snorp.net>

	* src/Song.cs: s/Filename/FileName/ and s/Length/Duration/

2005-10-31  Aaron Bockover  <aaron@aaronbock.net>

	* configure.in: bump to 0.5.9

2005-10-28  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: bump the supported db version to 16

2005-10-12  Aaron Bockover  <aaron@aaronbock.net>

	* src/DeviceModel.cs: Add enums for VideoWhite, VideoBlack iPods
	* src/DeviceGenerations.cs: Add Fifth Generation Enum
	* configure.ac: Require libipoddevice 0.3.4, bump to 0.5.8

2005-10-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: up the newest known db version to 15, which
	is what iTunes 6 uses.  Adding/removing songs still works without
	further modification.
	* configure.in: bump to 0.5.7

2005-09-24  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: nuke all of the locks.  The consumer
	is responsible for all locking now.
	* src/Device.cs: ditto

2005-09-22  James Willcox  <snorp@snorp.net>

	* tests/IPodTests.cs: fix two of the tests, as they wrongly assumed
	that song ids were persistent.

2005-09-22  James Willcox  <snorp@snorp.net>

	* configure.in: bump version to 0.5.6

2005-09-22  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: if the OTG playlist file is empty, do not
	try to read it.

2005-09-22  James Willcox  <snorp@snorp.net>

	* src/Initializer.cs: remove the UseDefaultContext property
	(it will always use the default context), and make this class
	internal again.

2005-09-22  Aaron Bockover  <aaron@aaronbock.net>

	* src/Utility.cs: Use new DateTime(1904, 1, 1) instead of 
	DateTime.Parse("1/1/1904")... reduce parsing overhead and eliminate
	locale conflicts

2005-09-15  James Willcox  <snorp@snorp.net>

	* configure.in: bump to 0.5.5
	* src/SongDatabase.cs: reassign the track ids on every save.
	Apparently if the ids are not sequential without gaps, the iPod
	will not show the songs after the gap.  Also, write out
	library index records.
	* src/Device.cs: enable write support on v14 databases.

2005-09-08  Aaron Bockover  <aaron@aaronbock.net>

	* configure.in: Require libipoddevice 0.3.3
	* src/SongDatabase.cs: Throw an unsupported exception if DB version is 
	greater than 14
	* src/Device.cs: support libipoddevice "device-model-string" property,
	bound as Device.ModelString, return false for Device.CanWrite if
	SongDatabase.Version is 14 or greater (we can't write that out yet)

2005-09-07  Aaron Bockover  <aaron@aaronbock.net>

	* configure.in: bump to 0.5.4, require libipoddevice 0.3.2
	* src/DeviceEventListener.cs: got rid of compiler warnings about unused
	methods
	* src/SongDatabase.cs: Added ShuffleSongDatabase.Save call to 
	SongDatabase.Save, got rid of compiler warnings about unused vars, 
	update Song.Filename after CopySong
	* src/Device.cs: Added ControlPath property
	* src/Utility.cs: Moved Utility class from SongDatabase.cs to here, added
	new static method: Utility.ReverseByteOrder(short)
	* src/ShuffleSongDatabase.cs: writer for the iTunesSD database unique
	to the iPod Shuffle

2005-08-31  James Willcox  <snorp@snorp.net>

	* configure.in: bump to 0.5.3

2005-08-31  James Willcox  <snorp@snorp.net>

	* src/Song.cs: use the UserId property to determine whether or not
	a song is protected.

2005-08-30  James Willcox  <snorp@snorp.net>

	* configure.in: bump version to 0.5.2

2005-08-25  James Willcox  <snorp@snorp.net>

	* configure.in: require mdassembler
	* src/Makefile.am: use mdassembler (oops)
	* src/en/*: updated

2005-08-25  James Willcox  <snorp@snorp.net>

	* src/en/*: update docs
	* src/Makefile.am: don't rely on monodoc for the sources dir, use
	pkg-config.
	* configure.in: don't require monodoc

2005-08-25  James Willcox  <snorp@snorp.net>

	* src/Playlist.cs: add some events
	* src/SongDatabase.cs: ditto

2005-08-24  James Willcox  <snorp@snorp.net>

	* src/Playlist.cs: fix the API so it takes indices instead of Songs
	* src/SongDatabase.cs: do stuff for the above
	* src/en/*: updated docs
	* tests/IPodTests.cs: fix a test and remove an invalid one
	* tests/Makefile.am: remove a couple of the tarballs from the test set
	for now, since they are missing some files.

2005-08-24  James Willcox  <snorp@snorp.net>

	* src/DeviceModel.cs: updated again, added 'Invalid'
	* src/Device.cs: add the Reboot method

2005-08-24  James Willcox  <snorp@snorp.net>

	* src/DeviceModel.cs: adjusted to match the new libipoddevice enum
	* src/DeviceGeneration.cs: added
	* src/Capacities.cs: moved into libipoddevice, so remove it here
	* src/capacities.txt: ditto

2005-08-23  James Willcox  <snorp@snorp.net>

	* src/Device.cs: add a VolumeLabel property

2005-08-23  James Willcox  <snorp@snorp.net>

	* src/Capacities.cs: if the model is null, don't blow chunks

2005-08-22  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: if the iTunesDB file does not exist, allow
	one to be created.
	* tests/ipod-test-db-blank.tar.gz: add a test for the above

2005-08-22  James Willcox  <snorp@snorp.net>

	* src/en/*: update docs

2005-08-22  Aaron Bockover  <aaron@aaronbock.net>

	* ipod-sharp: Version 0.5.1
	* configure.in: Requires libipoddevice >= 0.2.6, Bumped version to 0.5.1
	* src/Device.cs: Device.CanWrite binding for new can-write property 
	in libipoddeivce

2005-08-21  James Willcox  <snorp@snorp.net>

	* src/Capacities.cs: we're not including the first letter in the model
	so use the appropriate substring.

2005-08-21  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: only open stuff in FileAccess.Read where we can

2005-08-21  James Willcox  <snorp@snorp.net>

	* configure.in: up version to 0.5.0

2005-08-21  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: oops, avoid a NRE with database versions < 13

2005-08-21  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: as the podcast playlist doesn't appear
	to be special at all, remove the special API for it.
	* tests/IPodTests.cs: remove tests for the above

2005-08-21  James Willcox  <snorp@snorp.net>

	* ui/DeviceCombo.cs: make removing devices work again (oops)
	* src/SongDatabase.cs: fix support for 4th gen devices with v13
	databases.  The current 'spec' appears to be wrong about what
	the extra 'mhlp' record is.  It does not appear to be the
	podcast playlist, but rather a duplicate of the 'real' mhlp.
	* en/*: update docs

2005-08-19  James Willcox  <snorp@snorp.net>

	* src/Initializer.cs: fix indentation
	* ui/DeviceCombo.cs: check the IPOD_DEVICE_IMAGES env var for
	fake devices and add those as well.
	* src/SongDatabase.cs: remove the annoying WriteLine

2005-08-18  Aaron Bockover <aaron@aaronbock.net>

	* src/capacities.txt: Removed letter prefix from list
	* configure.in: bump to 0.4.11
	* src/Initializer.cs: Use either the default GMainContext or a new one,
	managed by ipod-sharp (default)

2005-08-16  James Willcox  <snorp@snorp.net>

	* configure.in: bump to 0.4.10

2005-08-16  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add an IsProtected property, which indicates whether
	or not the song uses DRM.
	* src/SongDatabase.cs: reworked some stuff in TrackRecord for the above
	* src/Device.cs: don't assume that the error gets set if eject
	returns false.

2005-08-04  James Willcox  <snorp@snorp.net>

	* src/en/*: update docs

2005-08-04  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: add a 'Version' property.

	* src/Device.cs: add a 'Changed' event, which is fired whenever
	a property is changed.

	* ui/DeviceCombo.cs: remove the 'EjectActive' method, as it's not
	needed anymore.  Also, update the device name in response to
	the new Device.Changed event.

2005-08-03  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: add stuff for reading/writing library index
	type mhod records.  Currently, though, only the old indices are
	removed when the db is saved.

2005-08-03  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: correctly write out the number of child
	details in playlist records.

2005-08-03  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: don't pad 'mhit' records

2005-08-03  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: more work on PlaylistItemRecord, updated
	to match the most recent spec.

2005-08-03  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: change unknownOne in PlaylistItemRecord to be 0
	instead of 1, as that's what iTunes does.  Make PadLength 8 to see if
	that "fixes" problems with 4th devices.
	* src/Device.cs: add AdvertisedCapacity property
	* src/Capacities.cs: new file, gets advertised capacity info, given
	a model number.
	* src/capacities.txt: a little text db that maps model -> capacity

2005-07-26  James Willcox  <snorp@snorp.net>

	* src/Device.cs: wrap the new device properties in libipoddevice

2005-07-26  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: the type 100 mhod following a mhit is now
	considered a child in database version 13, and the size must
	be calculated appropriately.

2005-07-26  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: write all the extra unknown fields out in
	TrackRecord, if the database version is >= 12.

2005-07-26  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: TrackRecord was reading/writing some things in
	(apparently) the wrong order, so fix that.

2005-07-26  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: when dealing with tracks, don't read/write
	the 'remainder'.

2005-07-20  James Willcox  <snorp@snorp.net>

	* src/Initializer.cs: use g_type_init instead of Gtk.Application.Init.
	We do not require an X connection, etc.

2005-07-20  James Willcox  <snorp@snorp.net>

	* src/Initializer.cs: use a separate thread for hal
	* ui/DeviceCombo.cs: since events come in on a thread, do stuff
	in an idle handler.

2005-07-19  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: s/StatusHandler/SaveProgressHandler/ and add a
	'currentPercent' argument to it, which represents how much of the
	current song has been copied.  Also, made the Save method provide
	that information.

	* ui/ProgressDialog.cs: use the new 'currentPercent' info to provide
	a smoother progress bar.

2005-07-19  James Willcox  <snorp@snorp.net>

	* ui/ProgressDialog.cs: display 'current + 1' instead of 'current' in
	the progress handler, to be accurate.

2005-07-19  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: clean some of the internal bits up a bit,
	and remove RevertSong.
	* src/DatabaseReadException.cs: added
	* src/DatabaseWriteException.cs: ditto
	* src/en/*: update docs

2005-07-19  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: put files in the F00 style directories and
	rename them similar to how iTunes does it.  Patch from
	Aaron Bockover <aaron@aaronbock.net>

2005-07-18  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: remove from the 'library' playlist when removing a song.
	Also, don't force the PodcastUrl2 detail type to PodcastUrl.

2005-07-12  Aaron Bockover  <aaron@aaronbock.net>

	* configure.in: Check for ipoddevice >= 0.2.2
	* src/Makefile.am, tests/Makefile.am, ui/Makefile.am, tools/Makefile.am:
	Update compiler flags -o -> -out: and -r -> -debug

2005-07-12  James Willcox  <snorp@snorp.net>

	* src/Makefile.am, ui/Makefile.am: since ipod-sharp[-ui] is still
	in development, don't install the assemblies to the GAC.
	* ipod-sharp.pc.in, ipod-sharp-ui.pc.in: add a 'Libraries' variable
	that contains the path to the assembly for apps to copy.

2005-07-12  James Willcox  <snorp@snorp.net>

	* src/DeviceEventListener.cs: new, wraps the respective class in
	libipoddevice.
	* src/Initializer.cs: put all initialization stuff here, and have
	the static constructors call it.
	* ui/DeviceCombo.cs: use the new event listener to add/remove devices
	* src/en/*: update docs for the above

2005-07-09  James Willcox  <snorp@snorp.net>

	* src/en/*: update docs some more

2005-07-08  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: add PodcastPlaylist property.  This playlist and
	the OnTheGo playlist are not listed in the Playlists property now, they
	are only acccesible through their respective properties.
	* src/Song.cs: add 'Category' and 'Grouping' properties.
	* src/en/*: update docs
	* test/IPodTests.cs: add/update tests for podcast stuff.

2005-07-05  James Willcox  <snorp@snorp.net>

	* src/en/*: updated

2005-07-05  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add a 'PodcastUrl' property.
	* test/IPodTests.cs: add a test for the above

2005-07-05  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: support the newest database version with all the
	podcast stuff.  The special podcast playlist is not exposed yet in the
	public API.

2005-07-05  Ross Burton  <ross@burtonini.com>

	* configure.in:
	* src/Makefile.am:
	Allow the building of API docs to be disabled.

2005-06-28  James Willcox  <snorp@snorp.net>

	* ui/DeviceCombo.cs: oops, make Refresh public again

2005-06-27  James Willcox  <snorp@snorp.net>

	* ui/DeviceCombo.cs: change EjectActive() to be slightly less hacky

2005-06-24  James Willcox  <snorp@snorp.net>

	* ui/ProgressDialog.cs:
	* ui/ipod.gif:

	Add extra-slick iPod animation to the progress dialog.

2005-06-23  James Willcox  <snorp@snorp.net>

	* ui/DeviceCombo.cs: be a little more stetic when no
	devices are available.

2005-06-23  James Willcox  <snorp@snorp.net>

	* ui/ProgressDialog.cs: add evil hack for ellipsizing, and make
	the message when copying songs a bit nicer.

2005-06-22  James Willcox  <snorp@snorp.net>

	* ui/DeviceCombo.cs: added

2005-06-22  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add the DateAdded property.

2005-06-22  James Willcox  <snorp@snorp.net>

	* configure.in: jack up the version arbitrarily
	* src/SongDatabase.cs: expose the compilation flag in songs,
	and also preserve extra data found in track records.
	* src/Song.cs:

2005-06-21  James Willcox  <snorp@snorp.net>

	* src/Device.cs: propagate exceptions when saving the equalizers
	and don't try to save equalizers if they weren't loaded

2005-06-21  James Willcox  <snorp@snorp.net>

	* src/Device.cs: load equalizers on demand

2005-06-21  James Willcox  <snorp@snorp.net>

	* ui/ProgressDialog.cs: don't use Label.Ellipsize, as it's not in
	gtk-sharp 1.9.x 

2005-06-21  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: Remove the 'Load' method, as it doesn't really
	fit well now that we have Device, etc.  Add 'Reload'.  Also, remove
	the default constructor.

2005-06-21  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: add events for save progress, instead of using
	a callback passed into the Save method.
	* ui/*: added a new assembly which contains gtk# widgets that are
	handy for using with ipod-sharp.  Currently it contains a progress
	dialog that shows save progress.
	* ipod-sharp.snk: moved from src/

2005-06-18  James Willcox  <snorp@snorp.net>

	* src/ipod-sharp.dll.config: added

2005-06-18  James Willcox  <snorp@snorp.net>

	* src/en/*: updated

2005-06-18  James Willcox  <snorp@snorp.net>

	* tests/Makefile.am:
	* tests/runtests.sh:

	Fix things so they work when builddir != srcdir.

2005-06-18  James Willcox  <snorp@snorp.net>

	* src/Equalizer.cs: added
	* src/Device.cs: add equalizer bits
	* src/SongDatabase.cs: clean up some
	* tests/IPodTests.cs: add equalizer tests
	* tests/tests/ipod-test-db-v12-a.tar.gz: add a EQ file, since it was missing one

2005-06-17  James Willcox  <snorp@snorp.net>

	* src/Device.cs: update bindings to handle the recently added
	GError arguments.
	* tests/IPodTests.cs: put funky UTF-8 strings in some of the tests

2005-06-17  James Willcox  <snorp@snorp.net>

	* tests/mktest.sh: Fixup a bit, and include more stuff in the tarball
	* tests/runtests.sh: Accept a device to test, which makes a test
	tarball out of it and runs the tests.

2005-06-17  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add TotalTracks
	* tests/IPodTests.cs: add above to tests
	* tests/runtests.sh: added, convenience script
	* tests/Makefile.am: use runtests.sh

2005-06-17  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs:
	* src/Song.cs: support setting PlayCount, LastPlayed, and Rating
	* src/IPodTests.cs: update tests for the above and other
	Song properties

2005-06-17  James Willcox  <snorp@snorp.net>
	
	* src/SongDatabase.cs: Add On-The-Go playlist support
	* src/Playlist.cs: ditto
	* tests/IPodTests.cs: add tests for the above

2005-06-17  James Willcox  <snorp@snorp.net>

	* tests/IPodTests.cs: moved from DatabaseTests.cs
	* tests/Makefile.am: s/db-tests.dll/ipod-sharp-tests.dll/

2005-06-17  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: don't write crap to stderr if the play counts
	can't be loaded.
	* tests/DatabaseTests.cs: s/ApplicationException/DeviceException/

	Start keeping a ChangeLog again, now that things are in svn.

2005-05-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: check the free space before copying songs

2005-05-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: fixup playlist creation a little, and add
	RemovePlaylist()

2005-05-10  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: Add API and fix things to enable creation
	of new playlists.

2005-05-10  James Willcox  <snorp@snorp.net>

	* import into baz

2005-05-10  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: get the filename from the record, when copying
	* src/Song.cs: sanitize the filename, since apparently '?' causes
	problems for bizarre reasons.
	* configure.ing: bump to 0.0.3

2005-05-10  James Willcox  <snorp@snorp.net>

	* configure.in: bump to 0.0.2

2005-05-10  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: rollback the db if something goes wrong while
	copying files.
	* src/Song.cs: support AAC files correctly, hopefully.
	* tools/PodTool.cs: add --dump-files option

2005-02-04  James Willcox  <james@ximian.com>

	* tests/DatabaseTests.cs: add an assertion

2005-02-04  James Willcox  <james@ximian.com>

	* Makefile.am: add tests subdir
	* configure.in: add --disable-tests
	* src/Song.cs: fix filename handling
	* src/SongDatabase.cs: fix miscellenous crap
	* tests/DatabaseTests.cs: added
	* tests/Makefile.am: ditto 
	* tests/ipod-test-db.tar.gz: ditto
	* tools/PodTool.cs: add --clear

2005-01-24  James Willcox  <snorp@snorp.net>

	* src/Makefile.am:
	* tools/Makefile.am:

	Fix the dist (sort of)

