2009-01-20  Aaron Bockover  <abock@gnome.org>

	Released 0.8.2

	* configure.ac: Bumped Version

	* NEWS: Updated

2009-01-13  Gabriel Burt  <gabriel.burt@gmail.com>

	* src/ArtworkFormat.cs:
	* src/Photo.cs: Patch from Nicholas Doyle overriding ArtworkFormat's Equal
	method, helps avoid a lot of dupliate cover art/wasted space (BGO #555329)

2008-09-11  Aaron Bockover  <abock@gnome.org>

	Released 0.8.1

	* configure.ac: Bumped Version

	* NEWS: Updated

2008-09-03  Gabriel Burt  <gabriel.burt@gmail.com>

	* src/TrackDatabase.cs: Split out GetHash method that returns a byte []
	for testability.

	* src/Hal/HalDevice.cs: Fix issue with mono 2.0 compiler.

	* src/Hash58.cs: Fix bug where the newest iPods (Classic and Nano) that
	require the crazy new hash weren't showing any songs on the device once
	the track database file grew bigger than a certain size.  Take the new
	data tables from libgpod that precalculate the constants (BGO #536741).

	* tests/IPodTests.cs: Add internal subclasses of Device and VolumeInfo so
	we can get the tests working again, but for now comment all the tests out.

	* tests/Makefile.am:
	* tests/HashTests.cs: New file for testing the hashing fix mentioned
	above.

2007-12-18  Aaron Bockover  <abock@gnome.org>

	Released 0.8.0

	* NEWS: Updated

2007-10-11  Aaron Bockover  <abock@gnome.org>

	* src/Firmware/Makefile.am:
	* ui/Makefile.am:
	* src/Makefile.am: Install the .mdb files

	* src/TrackDatabase.cs: Return DetailType=32 as generic data since we
	don't know how to handle it right now

2007-10-10  Aaron Bockover  <abock@gnome.org>

	* src/Hal/HalDeviceManager.cs:
	* src/Hal/HalDevice.cs: Reflect the new prefix for PodSleuth properties

2007-10-10  Aaron Bockover  <abock@gnome.org>

	* src/TrackDatabase.cs: Fixed bug with IsTrackOnDevice

2007-10-09  Aaron Bockover  <abock@gnome.org>

	* shamrock.m4: 
	* configure.ac: Modernized to use shamrock

	* docs/: New generation of docs

	* src/PhotoDatabase.cs: Fixed path issues

	* src/Hal/HalDeviceManager.cs:
	* src/DeviceManager.cs: Namespace fixes

	* src/Device.cs: Tons of fixups, API changes, and cleaning

	* src/ArtworkFormat.cs:
	* src/ProductionInfo.cs:
	* src/ModelInfo.cs: 
	* src/VolumeInfo.cs: Grouped and organized properties into small 
	sub classes to make the Device API more usable

	* src/Hal/HalDevice.cs: Lots of fixes, implement the changes in Device

	* src/ShuffleTrackDatabase.cs:
	* src/TrackDatabase.cs: Fixes to reflect API changes

2007-10-08  Aaron Bockover  <abock@gnome.org>

	* src/Device.cs: Added TrackDatabasePath and HasTrackDatabase

	* src/TrackDatabase.cs: Use Device.TrackDatabasePath

2007-10-04  James Willcox  <snorp@snorp.net>

	* src/Thumbnail.cs: use the data length instead of the format length
	when writing the thumbnail since the latter is not required
	to be valid.

	* src/Hal/HalDevice.cs: ignore artwork formats with unknown
	pixel formats.

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

	* src/TrackDatabase.cs: some cleanups, and do the rest of the things
	necessary to make the hashed databases work.

2007-09-17  Aaron Bockover  <aaron@abock.org>

	* src/TrackDatabase.cs: First pass at hashing the database 

	* src/Hash58.cs: Implementation of the crappy hash algorithm that 
	Apple decided to use to lock out third party clients

2007-09-17  James Willcox  <snorp@snorp.net>

	* Massive reorganization.  There is now a DeviceManager class which
	does enumeration of devices.  Additionally, Device is now abstract
	and platform-dependent subclasses are used instead.

2007-09-10  James Willcox  <snorp@snorp.net>

	* src/Device.cs: change the #ifdef to WINDOWS instead of DOTNET
	and remove all of the runtime OS checking.
	
	* ui/DeviceCombo.cs: make it build again

	* src/TrackDatabase.cs: up MaxSupportedVersion to 25 (!)

2007-08-10  Justin Cherniak <justin.cherniak@gmail.com>

	* src/TrackDatabase.cs: Fixed bug where calling 
	DatabaseRecord.ReassignTrackIds() would invalidate the track ids
	within the TrackListRecord.

2007-08-04  Justin Cherniak <justin.cherniak@gmail.com>
	
	* src/Device.cs: changed ListDevices() so that it relies on the
	platform device to generate IPod.Devices instead of doing the
	conversion b/w IDevices and Devices itself

	* src/PhotoDatabase.cs: Added checks to LookupPhoto functions (faster
	than catching exceptions)

	* src/SysInfoExtended.cs: Compatibility fix for Windows Vista.

	* src/Track.cs: Added the following fields: DiscNumber, TotalDiscs,
	BPM, AlbumArtist, Composer, LatestRating, LastLastModifiedTime.  Added 
	write accessors for DateAdded, Size.  Compatibility fix for URI 
	generation under Win32

	* src/TrackDatabase.cs: Added TrackAdded/TrackRemoved events, support
	for Track.LatestRating.  Compatibility fixes for Win32.  Added
	CreateTrack overload which copies the track to the iPod immediately
	versus waiting for TrackDatabase.Save()

	* src/Win32/DeviceEventListener.cs:  Rewrote Win32.DeviceEventListener
	so that it mainly operates statically.  This allows it to keep one
	list of Devices instead of creating different devices for different
	listeners (when in truth, they would be the same physical device).

	* src/Win32/Device.cs: Now gets its device list from
	DeviceEventListener.

2007-08-03  Justin Cherniak <justin.cherniak@gmail.com>
	
	Recursively applied svn:eol-style=native to all text files
	* src/Win32/WinAPI.cs: Fixed inconsistent eol's
	* src/Device.cs: Fixed inconsistent eol's

2007-07-02  Justin Cherniak <justin.cherniak@gmail.com>

	Added Win32 support to the library.
	
	* All Mono specific bits are cased in "#if !DOTNET" blocks to allow 
	the code to compile for windows using Microsoft .NET (All Win32 specific
	code compiles under Mono, so to build a cross platform build, use mono.
	This allows the code to be compiled under Micrsoft .NET for Windows use)

	* src/Unix: Moved Unix specific implementations (Device.cs, 
	DeviceAddedHandler.cs, DeviceEventListener.cs,
	DeviceRemovedHandler.cs, Initializer.cs) to this directory and to
	IPod.Unix namespace
	
	* src/Win32: Added Windows specific implementation of Device.cs in 
	IPod.Win32 namespace
	
	* src/Device.cs: Completely redone.  Moved all platform specific stuff
	to src/Unix/Device.cs and src/Win32/Device.cs.  This file now creates 
	and uses one of the platform specific devices depending on the OS on
	which it is run.

	* src/IDevice.cs: Interface that both Unix and Win32 Devices implement
	so that Ipod.Device can utilize either one depending on the runtime OS.

	* src/PhotoDatabase.cs: Changed Mono specific call to .NET call.

	* src/TrackDatabase.cs: Added Win32 FlushFileBuffers call for .NET
	compilation
	
	* src/SysInfo.cs: Rudementary parser for the SysInfo file stored on the
	iPod.  Currently only used in the Win32 implementation.
	
	* src/SysInfoExtended.cs: XML Parser for SysInfoExtended stored in the 
	iPod firmware.  Some code taken from libipoddevice.  Currently only used
	in the Win32 implementation.
	
	* src/Win32/WinAPI.cs: Included Win32 API Wrappers used throughout the
	solution

	* src/Win32/DeviceEventListener.cs:
	* src/Win32/DeviceWatcherWindow.cs: Implements a DeviceEventListener
	for Win32 by monitoring WM_DEVICECHANGE

	* src/Unix/DeviceEventLister.cs: Moved to IPod.Unix namespace.
	
	* src/Unix/Device.cs: Removed common (between platforms) functionality 
	to IPod.Device. Added explict conversion between IPod.Device

	* src/ipod-sharp.csproj: Added Visual Studio 2005 project with DOTNET 
	compilation symbol on by default (allowing library to build in Visual
	Studio for Win32 with Microsoft .NET)

	* src/ipod-sharp.mdp: Updated project to reflect new paths

2007-06-19  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.6.4

2007-06-19  James Willcox  <snorp@snorp.net>

	* src/Device.cs: s/public/private/ for some methods which were
	accidentally marked public (LoadTrackDatabase, etc)

2007-06-16  Brad Taylor  <brad@getcoded.net>
	
	* src/Device.cs:
	* src/SportKitManager.cs: Implement support for iPod Sport devices.
	
	* tools/PodTool.cs: Add a flag (--dump-sportkits) to print out the
	  workouts of each sport kit stored on the selected iPod for debugging
	  purposes.

2007-06-15  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: make track add/remove/lookup operations much
	faster.  Patch from Justin Cherniak <justin.cherniak@gmail.com>

2007-04-20  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: add yet another detail type found in
	album list.

2007-04-04  Aaron Bockover  <abock@gnome.org>

	0.6.3 Released

	* configure.ac: Bump to 0.6.3, require libipoddevice 0.5.3

2007-03-31  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: add support for another detail type found in
	the album list.

2007-03-30  Aaron Bockover  <abock@gnome.org>

	* src/DeviceModel.cs: Added new model types from libipoddevice (shuffle 2)

	* src/Device.cs: Added an IsShuffle property

2007-03-30  Aaron Bockover  <abock@gnome.org>

	* src/TrackDatabase.cs: do not copy iTunesDB if read only (HFS+)

2007-03-29  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: add write support for this new album list
	data

2007-03-29  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: oops, there are some new mhod types in the
	album list data.  This adds them.

2007-03-29  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: parse the new "album list" data set found on
	2nd gen nano and shuffle after being synced with iTunes 7.1.

2007-03-29  Aaron Bockover  <abock@gnome.org>

	* src/TrackDatabase.cs:
	* src/Track.cs: Add null checks for the artwork DB as on some devices we
	may not be able to read the format info, and we shouldn't crash if that's
	the case

2007-03-23  Aaron Bockover  <abock@gnome.org>

	* src/Firmware/DmgFirmwareExtract.cs: Updated so my old work isn't lost, 
	but with iTunes 7, they shattered my dreams of firmware updating... for now

2007-03-19  James Willcox  <snorp@snorp.net>

	* src/TrackDatabase.cs: bump the supported database version to 20
	(which is what iTunes 7.1 uses)

2006-12-19  Aaron Bockover  <abock@gnome.org>

	* src/DeviceModel.cs: Added NanoProductRed

2006-09-19  Aaron Bockover  <abock@gnome.org>

	* src/Device.cs: Added ShouldAskIfUnknown and DoNotAskIfUnknown 

2006-09-18  Aaron Bockover  <abock@gnome.org>

	* src/Device.cs: Added UnknownIpodUrl property, replaces the entire
	tool from yesterday, going for a web-based solution

	* tools/Makefile.am: 
	* ipod-sharp-ui.pc.in: Reverted

	* tools/IpodDataSubmit.cs: Removed

2006-09-18  Aaron Bockover  <abock@gnome.org>

	* ipod-sharp-ui.pc.in: Add ipod-data-submit.exe

	* tools/Makefile.am: Build/install the data submission tool

	* tools/IpodDataSubmit.cs: A standalone tool to submit data about
	unknown iPods to banshee-project.org

2006-09-18  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.6.2
	* Device.cs: use new libipoddevice artwork format API, and change
	ours to be similar.  Also add new properties ManufacturerId,
	ProductionYear, ProductionWeek, and ProductionIndex.

2006-09-12  James Willcox  <snorp@snorp.net>

	* configure.ac: bump version to 0.6.1
	* src/TrackDatabase.cs: bump supported db version to 19

2006-09-11  James Willcox  <snorp@snorp.net>

	* src/Device.cs: use the 'library' playlist name as the device name
	and remove a bunch of dead code

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

	* src/TrackDatabase.cs: bump the max supported database version to 18

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

	* src/Photo.cs: add an internal CurrentFullSizeFileName property
	* src/PhotoDatabase.cs: make sure old photos are removed

2006-07-06  Aaron Bockover  <aaron@abock.org>

	* configure.ac: Require libipoddevice 0.4.6+

2006-06-29  James Willcox  <snorp@snorp.net>

	* ui/ArtworkHelpers.cs: preserve aspect ratio when scaling

2006-06-29  James Willcox  <snorp@snorp.net>

	* ui/ArtworkHelpers.cs: remove the SetCoverArt/SetThumbnail methods,
	and just have ToBytes/ToPixbuf.  Also, do a better job of figuring
	out the endianess needed for the RGB565 images and handle rotation.

	* src/TrackDatabase.cs: when opening files for read-only access,
	just use File.OpenRead.

	* src/Device.cs: add the new Size and ImageType properties
	to ArtworkFormat

	* src/Thumbnail.cs: use the new Size property to ensure that the
	correct amount of data is received in SetData.

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

	* src/TrackDatabase.cs: remove the length check in TrackRecord when
	saving, as it was really just for debugging.

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

	* src/Track.cs: make the Id property useful (it is persisted across
	database saves) and remove the duplicate TrackRecord property

	* src/TrackDatabase.cs: assign TrackRecord.DatabaseId incrementally,
	not randomly.

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

	* ui/ArtworkHelpers.cs: make a lame attempt at figuring out whether or
	not a thumbnail should be big endian

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

	* src/PhotoDatabase.cs: don't be so clumsy when calculating child
	padding for detail records.

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

	* src/PhotoDatabase.cs: ensure that the database directory exists
	before trying to write a file there.

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

	* ui/ArtworkHelpers.cs: correctly pack/unpack IYUV data as contained
	in the TV thumbnails.

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

	* src/Track.cs: added HasCoverArt
	* src/PhotoDatabase.cs: don't save thumbnails to the db if they
	are empty.

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

	* ui/ArtworkHelpers.cs:
	* tools/PhotoAdder.cs:

	Moved the Pixbuf helpers to their own class (ArtworkHelpers) in the
	UI library.  Also added a little tool for adding a directory of
	images to a device.

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

	* src/Thumbnail.cs: Dispose the pixbuf if a scaled version was created

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

	* src/Track.cs: add stuff for removing cover art
	* src/Device.cs: add a LookupFormat method for getting the
	ArtworkFormat for the given ArtworkType

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

	* src/Track.cs: add pixbuf helper methods for cover art

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

	* src/Thumbnail.cs: add GetPixbuf()

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

	* src/Thumbnail.cs: add SetDataFromPixbuf, which will do all the
	rgb565 packing, etc.

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

	* Fix a ton of photo/artwork bugs, flesh out the public API some more

2006-06-16  James Willcox  <snorp@snorp.net>

	* src/PhotoDatabase.cs: more write fixes.  It can now read/write the
	art and photo database without corruption.

2006-06-16  James Willcox  <snorp@snorp.net>

	* fix the test cases

2006-06-16  James Willcox  <snorp@snorp.net>

	* Use IList<T> instead of ReadOnlyCollection<T> in the public API

2006-06-16  James Willcox  <snorp@snorp.net>

	* src/PhotoDatabase.cs: read/write the full size image records

2006-06-16  James Willcox  <snorp@snorp.net>

	* Convert more stuff to use generic collections

2006-06-15  James Willcox  <snorp@snorp.net>

	* Add beginnings of write support for the photo database.  Can read
	back its own database, but the iPod doesn't like it yet.

2006-06-14  James Willcox  <snorp@snorp.net>

	* Add initial photo support.  Currently read-only, and still a bit raw.
	* switch to gmcs (C# 2.0), and start using generic collections
	* configure.ac: bump to 0.6.0

2006-06-10  Aaron Bockover  <aaron@abock.org>

	* ipod-sharp.mdp: Updated MonoDevelop project

	* src/Firmware/DmgImage.cs: 
	* src/Firmware/CpioArchive.cs: Added path-based API wrappers

	* src/Firmware/DmgFirmwareExtract.cs: Extracts all firmware images 
	based on the iPodUpdater DMG image (currently uses mount -t hfsplus)

	* src/Firmware/Makefile.am: Added DmgFirmwareExtract.cs

	* tools/Makefile.am: Added build rules for ipod-firmware-extract

	* tools/ExtractFirmware.cs: New command line tool to extract ipod images

2006-06-10  Aaron Bockover  <aaron@abock.org>

	* src/Dmg*.cs: Moved to src/Firmware

	* src/Firmware/Makefile.am: Added new ipod-sharp-firmware.dll assembly

	* src/Firmware/CpioArchive.cs: New class to read and extract files from
	CPIO archives in the ASCII header format

	* configure.ac: Generate src/Firmware/Makefile

	* src/Makefile.am: Added Firmware to SUBDIRS

	* tools/Makefile.am: Updated build to reflect renamed files

	* ipod-sharp.mdp: Updated MonoDevelop project

2006-06-09  Aaron Bockover  <aaron@abock.org>

	* {Makefile.am,*/Makefile.am}: Added MAINTAINERCLEANFILES to keep 
	clean up so fresh, Mr. Clean himself would wink at you (but Oxyclean's
	Billy Mays would just yell at you)

	* autogen.sh: Fixed it

2006-06-09  Aaron Bockover  <aaron@abock.org>

	* src/DmgImage.cs: Parse DMG partitions from a DMG image file; writes
	HFS+ ISO from DMG image
	
	* src/DmgPartition.cs: Read DMG partition information from plist XML
	node and extract HFS+ ISO image partition 
	
	* tools/DmgIsoExtract.cs: Command line tool to convert DMG images to
	HFS+ ISO images

	* src/Makefile.am: Added DmgImage.cs and DmgPartition.cs to build

	* tools/Makefile.am: Build dmg-iso-extract.exe tool

	* ipod-sharp.mds:
	* ipod-sharp.mdp: Added MonoDevelop project

2006-06-02  James Willcox  <snorp@snorp.net>

	* Track.cs: add Type property
	* TrackDatabase.cs: handle more stuff in TrackRecord, such as
	media type.

	Add stuff for video support

2006-06-01  James Willcox  <snorp@snorp.net>

	* Song.cs -> Track.cs

2006-06-01  James Willcox  <snorp@snorp.net>

	* SongDatabase.cs -> TrackDatabase.cs
	* ShuffleSongDatabase.cs -> ShuffleTrackDatabase.cs

2006-05-03  Aaron Bockover  <aaron@abock.org>

	* src/SongDatabase.cs (LoadPlayCounts): handle an invalid header (less
	than 16 bytes) and catch conversion exceptions
	
2006-04-23  James Willcox  <snorp@snorp.net>

	* src/ShuffleSongDatabase.cs: make internal instead of public
	* src/en/*: updated

2006-04-20  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.5.16

2006-04-19  James Willcox  <snorp@snorp.net>

	* src/EndianBinaryWriter.cs: write out the correct endianness

2006-04-13  James Willcox  <snorp@snorp.net>

	* src/Song.cs: add LatestPlayCount property, which indicates the play
	count since the last sync.
	* src/SongDatabase.cs: read the play count correctly

2006-04-13  James Willcox  <snorp@snorp.net>

	* src/EndianBinaryWriter.cs: added, allows one to control what
	byte order stuff is written as
	* src/SongDatabase.cs: be a lot more careful about byte order,
	and pave the way for the annoying reverse byte order databases
	found on Motorola SLVR.

2006-04-10  James Willcox  <snorp@snorp.net>

	* src/Device.cs: remove Reboot(), as libipoddevice no longer as it

2006-02-13  James Willcox  <snorp@snorp.net>

	* src/Song.cs: only create a new unique path in the Uri setter
	if the song isn't already on the device.
	* src/SongDatabase.cs: s/GetPodPath/GetUniquePodPath/ and
	add a GetPodPath, which just returns the ipodized path
	for a file.

2006-02-13  Aaron Bockover  <aaron@abock.org>

	0.5.15 Released
	
	* src/SongDatabase.cs: Set MaxSupportedVersion back to 17 (whoops); 
	(CheckFreeSpace): do not include file size in 'required' if the
	file is already in the device's Music/F*/* structure, and will not
	be copied; moved that check to 'IsSongOnDevice'

2006-02-12  Aaron Bockover  <aaron@abock.org>

	* configure.ac: Bump to 0.5.15 (snorp is release happy)
	* src/Song.cs: Added % to array of chars that need escaping
	* src/SongDatabase.cs: Do not try to copy a song that is already on
	the iPod

2006-02-12  Aaron Bockover  <aaron@abock.org>

	* src/Device.cs:
	* src/SongDatabase.cs: Allow "loading" an empty song database; useful
	if the real database cannot be loaded (unsupported version), and the
	consuming application wants to scan the iPod to recreate a database

2006-02-12  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.5.14 (sigh)

2006-02-12  James Willcox  <snorp@snorp.net>

	* src/Song.cs: oops, do a value comparison when comparing
	the Uri.

2006-02-12  James Willcox  <snorp@snorp.net>

	* src/Song.cs: when setting the Uri for a song, don't do
	anything if the new value is the same as the old.

2006-02-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: don't try to emit SaveProgressChanged
	if nobody is listening.

2006-02-12  James Willcox  <snorp@snorp.net>

	* configure.ac: bump to 0.5.13

2006-02-12  James Willcox  <snorp@snorp.net>

	* src/SongDatabase.cs: fix the SaveProgressArgs.TotalProgress property
	* ui/ProgressDialog.cs: show a 'Finishing' message when
	the sync() is occurring.

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

	* configure.ac: Version 0.5.12
	* src/SongDatabase.cs: Send a null song in a progress event 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)

