2009-01-20 Aaron Bockover Released 0.8.2 * configure.ac: Bumped Version * NEWS: Updated 2009-01-13 Gabriel Burt * 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 Released 0.8.1 * configure.ac: Bumped Version * NEWS: Updated 2008-09-03 Gabriel Burt * 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 Released 0.8.0 * NEWS: Updated 2007-10-11 Aaron Bockover * 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 * src/Hal/HalDeviceManager.cs: * src/Hal/HalDevice.cs: Reflect the new prefix for PodSleuth properties 2007-10-10 Aaron Bockover * src/TrackDatabase.cs: Fixed bug with IsTrackOnDevice 2007-10-09 Aaron Bockover * 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 * src/Device.cs: Added TrackDatabasePath and HasTrackDatabase * src/TrackDatabase.cs: Use Device.TrackDatabasePath 2007-10-04 James Willcox * 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 * src/TrackDatabase.cs: some cleanups, and do the rest of the things necessary to make the hashed databases work. 2007-09-17 Aaron Bockover * 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 * 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 * 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 * src/TrackDatabase.cs: Fixed bug where calling DatabaseRecord.ReassignTrackIds() would invalidate the track ids within the TrackListRecord. 2007-08-04 Justin Cherniak * 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 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 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 * configure.ac: bump to 0.6.4 2007-06-19 James Willcox * src/Device.cs: s/public/private/ for some methods which were accidentally marked public (LoadTrackDatabase, etc) 2007-06-16 Brad Taylor * 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 * src/TrackDatabase.cs: make track add/remove/lookup operations much faster. Patch from Justin Cherniak 2007-04-20 James Willcox * src/TrackDatabase.cs: add yet another detail type found in album list. 2007-04-04 Aaron Bockover 0.6.3 Released * configure.ac: Bump to 0.6.3, require libipoddevice 0.5.3 2007-03-31 James Willcox * src/TrackDatabase.cs: add support for another detail type found in the album list. 2007-03-30 Aaron Bockover * src/DeviceModel.cs: Added new model types from libipoddevice (shuffle 2) * src/Device.cs: Added an IsShuffle property 2007-03-30 Aaron Bockover * src/TrackDatabase.cs: do not copy iTunesDB if read only (HFS+) 2007-03-29 James Willcox * src/TrackDatabase.cs: add write support for this new album list data 2007-03-29 James Willcox * src/TrackDatabase.cs: oops, there are some new mhod types in the album list data. This adds them. 2007-03-29 James Willcox * 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 * 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 * 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 * src/TrackDatabase.cs: bump the supported database version to 20 (which is what iTunes 7.1 uses) 2006-12-19 Aaron Bockover * src/DeviceModel.cs: Added NanoProductRed 2006-09-19 Aaron Bockover * src/Device.cs: Added ShouldAskIfUnknown and DoNotAskIfUnknown 2006-09-18 Aaron Bockover * 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 * 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 * 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 * configure.ac: bump version to 0.6.1 * src/TrackDatabase.cs: bump supported db version to 19 2006-09-11 James Willcox * src/Device.cs: use the 'library' playlist name as the device name and remove a bunch of dead code 2006-07-19 James Willcox * src/TrackDatabase.cs: bump the max supported database version to 18 2006-07-18 James Willcox * src/Photo.cs: add an internal CurrentFullSizeFileName property * src/PhotoDatabase.cs: make sure old photos are removed 2006-07-06 Aaron Bockover * configure.ac: Require libipoddevice 0.4.6+ 2006-06-29 James Willcox * ui/ArtworkHelpers.cs: preserve aspect ratio when scaling 2006-06-29 James Willcox * 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 * src/TrackDatabase.cs: remove the length check in TrackRecord when saving, as it was really just for debugging. 2006-06-27 James Willcox * 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 * ui/ArtworkHelpers.cs: make a lame attempt at figuring out whether or not a thumbnail should be big endian 2006-06-23 James Willcox * src/PhotoDatabase.cs: don't be so clumsy when calculating child padding for detail records. 2006-06-23 James Willcox * src/PhotoDatabase.cs: ensure that the database directory exists before trying to write a file there. 2006-06-23 James Willcox * ui/ArtworkHelpers.cs: correctly pack/unpack IYUV data as contained in the TV thumbnails. 2006-06-22 James Willcox * src/Track.cs: added HasCoverArt * src/PhotoDatabase.cs: don't save thumbnails to the db if they are empty. 2006-06-22 James Willcox * 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 * src/Thumbnail.cs: Dispose the pixbuf if a scaled version was created 2006-06-22 James Willcox * 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 * src/Track.cs: add pixbuf helper methods for cover art 2006-06-22 James Willcox * src/Thumbnail.cs: add GetPixbuf() 2006-06-22 James Willcox * src/Thumbnail.cs: add SetDataFromPixbuf, which will do all the rgb565 packing, etc. 2006-06-21 James Willcox * Fix a ton of photo/artwork bugs, flesh out the public API some more 2006-06-16 James Willcox * src/PhotoDatabase.cs: more write fixes. It can now read/write the art and photo database without corruption. 2006-06-16 James Willcox * fix the test cases 2006-06-16 James Willcox * Use IList instead of ReadOnlyCollection in the public API 2006-06-16 James Willcox * src/PhotoDatabase.cs: read/write the full size image records 2006-06-16 James Willcox * Convert more stuff to use generic collections 2006-06-15 James Willcox * 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 * 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 * 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 * 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 * {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 * 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 * 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 * Song.cs -> Track.cs 2006-06-01 James Willcox * SongDatabase.cs -> TrackDatabase.cs * ShuffleSongDatabase.cs -> ShuffleTrackDatabase.cs 2006-05-03 Aaron Bockover * src/SongDatabase.cs (LoadPlayCounts): handle an invalid header (less than 16 bytes) and catch conversion exceptions 2006-04-23 James Willcox * src/ShuffleSongDatabase.cs: make internal instead of public * src/en/*: updated 2006-04-20 James Willcox * configure.ac: bump to 0.5.16 2006-04-19 James Willcox * src/EndianBinaryWriter.cs: write out the correct endianness 2006-04-13 James Willcox * 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 * 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 * src/Device.cs: remove Reboot(), as libipoddevice no longer as it 2006-02-13 James Willcox * 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 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 * 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 * 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 * configure.ac: bump to 0.5.14 (sigh) 2006-02-12 James Willcox * src/Song.cs: oops, do a value comparison when comparing the Uri. 2006-02-12 James Willcox * 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 * src/SongDatabase.cs: don't try to emit SaveProgressChanged if nobody is listening. 2006-02-12 James Willcox * configure.ac: bump to 0.5.13 2006-02-12 James Willcox * 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 * 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 * 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 * 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 * configure.ac: bump to 0.5.11 2005-11-12 James Willcox * src/SongDatabase.cs: support multiple On-The-Go playlists * tests/IPodTests.cs: updated for the above 2005-11-12 James Willcox * 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 * 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 * src/Song.cs: add a Uri property. 2005-11-08 Aaron Bockover * 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 * src/Device.cs: add ArtworkFormats field * src/Initializer.cs: cleanup unused methods 2005-11-08 James Willcox * src/Song.cs: s/Filename/FileName/ and s/Length/Duration/ 2005-10-31 Aaron Bockover * configure.in: bump to 0.5.9 2005-10-28 James Willcox * src/SongDatabase.cs: bump the supported db version to 16 2005-10-12 Aaron Bockover * 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 * 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 * 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 * tests/IPodTests.cs: fix two of the tests, as they wrongly assumed that song ids were persistent. 2005-09-22 James Willcox * configure.in: bump version to 0.5.6 2005-09-22 James Willcox * src/SongDatabase.cs: if the OTG playlist file is empty, do not try to read it. 2005-09-22 James Willcox * 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 * 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 * 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 * 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 * 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 * configure.in: bump to 0.5.3 2005-08-31 James Willcox * src/Song.cs: use the UserId property to determine whether or not a song is protected. 2005-08-30 James Willcox * configure.in: bump version to 0.5.2 2005-08-25 James Willcox * configure.in: require mdassembler * src/Makefile.am: use mdassembler (oops) * src/en/*: updated 2005-08-25 James Willcox * 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 * src/Playlist.cs: add some events * src/SongDatabase.cs: ditto 2005-08-24 James Willcox * 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 * src/DeviceModel.cs: updated again, added 'Invalid' * src/Device.cs: add the Reboot method 2005-08-24 James Willcox * 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 * src/Device.cs: add a VolumeLabel property 2005-08-23 James Willcox * src/Capacities.cs: if the model is null, don't blow chunks 2005-08-22 James Willcox * 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 * src/en/*: update docs 2005-08-22 Aaron Bockover * 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 * src/Capacities.cs: we're not including the first letter in the model so use the appropriate substring. 2005-08-21 James Willcox * src/SongDatabase.cs: only open stuff in FileAccess.Read where we can 2005-08-21 James Willcox * configure.in: up version to 0.5.0 2005-08-21 James Willcox * src/SongDatabase.cs: oops, avoid a NRE with database versions < 13 2005-08-21 James Willcox * 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 * 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 * 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 * 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 * configure.in: bump to 0.4.10 2005-08-16 James Willcox * 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 * src/en/*: update docs 2005-08-04 James Willcox * 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 * 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 * src/SongDatabase.cs: correctly write out the number of child details in playlist records. 2005-08-03 James Willcox * src/SongDatabase.cs: don't pad 'mhit' records 2005-08-03 James Willcox * src/SongDatabase.cs: more work on PlaylistItemRecord, updated to match the most recent spec. 2005-08-03 James Willcox * 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 * src/Device.cs: wrap the new device properties in libipoddevice 2005-07-26 James Willcox * 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 * src/SongDatabase.cs: write all the extra unknown fields out in TrackRecord, if the database version is >= 12. 2005-07-26 James Willcox * src/SongDatabase.cs: TrackRecord was reading/writing some things in (apparently) the wrong order, so fix that. 2005-07-26 James Willcox * src/SongDatabase.cs: when dealing with tracks, don't read/write the 'remainder'. 2005-07-20 James Willcox * 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 * 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 * 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 * ui/ProgressDialog.cs: display 'current + 1' instead of 'current' in the progress handler, to be accurate. 2005-07-19 James Willcox * 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 * src/SongDatabase.cs: put files in the F00 style directories and rename them similar to how iTunes does it. Patch from Aaron Bockover 2005-07-18 James Willcox * 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 * 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 * 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 * 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 * src/en/*: update docs some more 2005-07-08 James Willcox * 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 * src/en/*: updated 2005-07-05 James Willcox * src/Song.cs: add a 'PodcastUrl' property. * test/IPodTests.cs: add a test for the above 2005-07-05 James Willcox * 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 * configure.in: * src/Makefile.am: Allow the building of API docs to be disabled. 2005-06-28 James Willcox * ui/DeviceCombo.cs: oops, make Refresh public again 2005-06-27 James Willcox * ui/DeviceCombo.cs: change EjectActive() to be slightly less hacky 2005-06-24 James Willcox * ui/ProgressDialog.cs: * ui/ipod.gif: Add extra-slick iPod animation to the progress dialog. 2005-06-23 James Willcox * ui/DeviceCombo.cs: be a little more stetic when no devices are available. 2005-06-23 James Willcox * ui/ProgressDialog.cs: add evil hack for ellipsizing, and make the message when copying songs a bit nicer. 2005-06-22 James Willcox * ui/DeviceCombo.cs: added 2005-06-22 James Willcox * src/Song.cs: add the DateAdded property. 2005-06-22 James Willcox * 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 * 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 * src/Device.cs: load equalizers on demand 2005-06-21 James Willcox * ui/ProgressDialog.cs: don't use Label.Ellipsize, as it's not in gtk-sharp 1.9.x 2005-06-21 James Willcox * 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 * 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 * src/ipod-sharp.dll.config: added 2005-06-18 James Willcox * src/en/*: updated 2005-06-18 James Willcox * tests/Makefile.am: * tests/runtests.sh: Fix things so they work when builddir != srcdir. 2005-06-18 James Willcox * 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 * 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 * 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 * 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 * 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 * 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 * tests/IPodTests.cs: moved from DatabaseTests.cs * tests/Makefile.am: s/db-tests.dll/ipod-sharp-tests.dll/ 2005-06-17 James Willcox * 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 * src/SongDatabase.cs: check the free space before copying songs 2005-05-12 James Willcox * src/SongDatabase.cs: fixup playlist creation a little, and add RemovePlaylist() 2005-05-10 James Willcox * src/SongDatabase.cs: Add API and fix things to enable creation of new playlists. 2005-05-10 James Willcox * import into baz 2005-05-10 James Willcox * 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 * configure.in: bump to 0.0.2 2005-05-10 James Willcox * 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 * tests/DatabaseTests.cs: add an assertion 2005-02-04 James Willcox * 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 * src/Makefile.am: * tools/Makefile.am: Fix the dist (sort of)