Version 3.8.6 (4 August 2008)
- Fixed: Duplicate song entries in browser and Coverflow created in some cases
- Fixed: Artwork folder created if doesnt exist
Version 3.8.4.6
- Added: Detection of new iPhone 3G / iTouch 2.0 devices
Version 3.8.4.4
- Added: iPhone/iTouch video support
- Added: Multiple connected iPods support - IPod::GetAllConnectedIPods()
- Fixed: IPodFileExporter duplication of files when copying multiple playlists containing
the same file and not using FilenameCollisionBehaviour.Ignore
Version 3.8.4
- iPhone & iPod Touch support, including artwork (except Coverflow)
Version 3.8.3
- IPodFileExporter::PerformCopy() takes a FilenameCollisionBehaviour
argument to dictate how to behave with duplicate files. It also now returns an IPodFileExporterResult
which contains the files copied, bytes copied, how many seconds the copy took etc.
- Device eject now reliably ejects iPod, or the standard Windows removable drive dialog
displays the reason for failure.
- iPod Shuffles (Gen 1 & 2) now working again.
- IPod::AcquireLock() opens the iTunesLock file exclusively
to stop Windows from ejecting the iPod while SharePodLib is working with it.
- IPod::ReleaseLock() - Be careful to call this when
you are finished with the iPod. (Closes the locked file).
Version 3.8.2
Added: Full podcast support
- To add a podcast, first add it to the iPod as normal. Then add it to the Podcasts
playlist.
_iPod.Playlists.GetPlaylistByName("Podcasts").AddTrack(myTrack);
Added: Track artist alphabetization ('The Beatles' will appear under 'B', not 'T'
in the Artists list)
Added: Playlists ordered by name
Version 3.8.1
Added: Add/remove album artwork support
- track.SetArtwork(string artworkFile); This should
be used for adding and updating artwork, no need to call remove first to change
the artwork.
- track.RemoveArtwork();
Added: Track.RememberPosition flag to tell the iPod to auto-resume the track. This
is true by default for videos. Added: DeviceInfo to IPod class. This now holds the
serial number, firewireId, supported artwork formats and raw device xml straight
from the iPod.
Added: NewTrack now has an ArtworkFile property which can be any image file to set
as the track's artwork.
Changed: NewTrack now has a mandatory IsVideo flag.
Changed: iPod.Eject() now only works when when the code executing is
not running
from the iPod drive. Although its possible in some cases to get away with
doing this, often Windows would give a nasty error message. Also this method will
now throw an exception, rather than just return false on error.
Version 3.6.4
Added: .wav file support
Added: AlbumArtist field
Added: AlbumTrackCount, DiscNumber, TotalDiscCount fields to NewTrack
Added:
IPodFileExporter.ValidFileNamePatternTokens
is a list of tokens you can use for the CopyFormat ([Title], [Artist] etc.)
Added: Device disconnected notification
Added: DeviceProfile as a first step to supporting iPhone/iPod Touch
- Add more custom DeviceProfiles to DeviceProfile.RegisteredProfiles
- DeviceProfiles are used in GetConnectedIPod() and GetIPodByDrive() calls.
- iPod object now has a DeviceProfile property.
- Built-in profiles include Standard iPod, iTouch 1.1.2, iTouch 1.1.3
Added: Overrides on all the GetIPod..() methods to specifiy whether to sync the
PlayCounts or not.
Added: We now .Flush() the iTunesDB file after writing rather than just .Close()'ing
it.
Changed: All GetIPod..() methods have been moved from SharePodLib.SharePod to SharePodLib.IPod
Changed: Device notification events moved from SharePodLib.SharePod to SharePodLib.Device
SharePod itself now uses TagLib-Sharp (http://www.taglib-sharp.com/) for all file
tag information. If you are using the MediaReader class (+ dlls) from the SharePodUtil
source, I recommend using taglib-sharp instead. Its much better!
Version 3.6.3
Added:
TrackAlreadyExistsException (thrown on iPod.Tracks.Add(...)
now contains the existing track.
Added: Support for the new iPod Classic/Nano 3G slightly different menu structure.
Changed: IPodExporter
- Constructor only takes iPod object
- PerformCopy has option to create iTunes import .xml files
- PerformCopy returns List
of copied filenames.
- Fixed: NullRef exception when ProgressEvent or ProgressErrorEvent wasn't hooked
Changed: Can now delete Smart Playlists
Fixed: Error when setting track fields (eg Artist) to an empty string.
Fixed: Few random bugfixes.
This version was going to support Smart Playlist track adding/removing, but it turns
out that the iPod looks at the smart playlist rules and rebuilds the playlist after
SharePod edits it. I am investigating a flag which might control this behaviour.
Version 3.6.1
This is the first offical SharePodLib release which supports the iPod Classic and
Nano 3G devices. These devices require a database hash value, which is generated
from the device's FirewireId. As a result, SharePodLib now needs administrator rights
to run properly on Windows Vista. For an example of how to force administrator rights
in Vista, see the AddVistaRequireAdminResource.bat file in the SharePodUtility source
code.
Most of the changes in this version are under the hood to support the new database,
but there is a new event on the static SharePod class to listen for iPods being
plugged into the PC.
SharePod.iPodConnected += new iPodConnectedHandler(SharePod_iPodConnected); //connect
up the event handler
SharePod.ListenForDeviceChanges(myWindow.Handle); //tell SharePodLib to listen for
new iPods, passing the handle of your app's window.
...
...
SharePod.StopListeningForDeviceChanges(); //tell SharePodLib to stop listening for
new iPods