Overview of changes in libgpod 0.8.0
====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below. The iPhone 4, iPod Touch 4
and the iPad aren't supported, other iOS4 devices should work. The Nano 6g
(Touch Nano) isn't supported either.

This release is a quick release after 0.7.95, it brings some last minute
bug fixes, and libgpod finally gets a stable 0.8.0 release.

* shuffle 3g/4g bug fixes (Adam Broschinski)
* bug fixes related to the addition of the new ipod models (Christophe
  Fergeau)
* silence some useless runtime warnings (Christophe Fergeau)

Overview of changes in libgpod 0.7.95
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below. The iPhone 4, iPod Touch 4
and the iPad aren't supported, other iOS4 devices might work. The Nano 6g
(Touch Nano) isn't supported either.

This release brings some improvements to the generation of the sqlite
databases (used by iOS devices), in particular improved playcounts handling.
It also adds some bug fixes to the mono bindings.

* improved support for sqlite databases (Joel Smith)
* bug fixes and playlist support for mono bindings (Alan McGovern, Gabriel
  Burt, Nathaniel McCallum)
* small itdb_start_sync/itdb_stop_sync behaviour change, now the calls need
  to be paired, but itdb_start_sync can be called N times, and the "Sync in
  Progress" screen will only go away after the Nth call to itdb_stop_sync
  (Hector Martin)
* be more smart when auto-guessing whether to use iPod_Control or
  iTunes_Control (Whitney Young)
* improve error handling in itdb_init and itdb_write, before that there
  were error cases that were not properly reported to the caller (Christophe
  Fergeau)


Overview of changes in libgpod 0.7.94
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below. The iPhone 4 and the iPad
aren't supported, other iOS4 devices might work.
This release adds support for the button-less iPod Shuffles (without voice
over) and CLI (mono/C# bindings), as well as various bug fixes.

* Shuffle 3g and 4g support (Adam Broschinski)
* CLI bindings (Nathaniel McCallum, Alan McGovern, Bertrand Lorentz)
* artwork fixes (Nikias Bassen)
* various bug fixes (Todd Zullinger, Olivier Crête, Cédric Bellegarde, Alex
  Mauer, Christophe Fergeau)

Overview of changes in libgpod 0.7.93
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below.
This release mainly contain bugfixes that should polish iPhone use.

* various bug fixes in HAL/udev iPhone callout which would make it fail
  to dump SysInfoExtended more often than not.
* fix iPod Classic 80GB support (Joeny Ang).
* handle TV Shows, Movies and Music Videos on iPhone better (Joel Smith)
* fix python bindings for the iPhone (Adrian Sampson).
* fix OnTheGo playlist parsing (the 1st on-the-go playlist was always
  ignored).
* automatically call itdb_shuffle_write when itdb_write is called if needed.
* some gint32/guint32 changes were made in the public API, this shouldn't
  break anything, but please report a bug if it's an annoyance for you.
* lower udev rule priority so that it runs after the usbmux udev rule.

Overview of changes in libgpod 0.7.92
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below.

* make the temporary mountpoint used by the HAL/udev callouts configurable
  at compile time (Bastien Nocera). This is helpful for distros who use 
  SELinux to restrict what the callouts can do.
* tag .mov files as video files (Erik Staats)
* add itdb_start_sync and itdb_stop_sync functions to show/hide the "Sync
  in progress" screen on iPhones and iPod Touch (this is a no-op on other
  devices)
* set udisks-compliant names for icons in the udev callout instead of using
  the old devicekit-disks names
* prefix libgpod udev rule with a number (80-) since it's the usual way
  of naming rules

Overview of changes in libgpod 0.7.91
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below.

* add udev callout 

HAL is actively being deprecated, this udev callout is meant to be functionally
equivalent to the HAL callout except that it doesn't export the podsleuth-like
information to the udev database. This would be easy to do, but udev
maintainers didn't recommend doing that. Installing both the udev and HAL
callout at the same time is disrecommended since they'd both be run upon
device insertion. As for the HAL callout, the udev callout needs to be compiled
against libusb for plug-n-play nano5g support.

* fix playback order when sorting by composer (bug reported and fixed by
Alex T.)

* fix handling of nano5g with the latest firmware

* various bug fixes

Overview of changes in libgpod 0.7.90
=====================================

This release is API and ABI compatible with libgpod 0.7.2. It's a development
release toward libgpod 0.8.0. Please report any bug or misbehaviour you may 
find with this release, especially with the iPhoneOS/iPod Nano 5g support. 

* iPhoneOS 3.x support (iPhone and iPod Touch) 

This requires a working libimobiledevice stack and a device initialized
once by iTunes. This support is optional so make sure you have libimobiledevice
development headers installed when compiling libgpod if you want to get it.
libgpod HAL callout needs to be installed and working for this support to work,
see README.overview for more details.

* iPod Nano 5G support 

The device database needs to be initialized by iTunes once.
libgpod HAL callout needs to be installed and working for this support to work,
see README.overview for more details. Please note that for proper nano5g
support, the HAL callout must be compiled with libusb support (which is 
optional). This requires libusb >= 1.0 to be installed.

* iPod Classic 3G support

* fix iPod Nano 4G 4GB serial number (bgo #599772)

* properly read timezone information from iPod Classic and Nano 4G

* artwork writing bug fixes

* iTunesDB reading bug fixes

* add code sample showing how to copy a file to the iPod

* export podsleuth-like information to HAL


Overview of changes in libgpod 0.7.2
====================================

* Performance work (thanks a lot to Javier Kohen for his patches)

* Add itdb_device_supports_podcast and itdb_device_supports_chapter_image
  methods

* Fix static iPod Classic/Nano 3G artwork formats

* Change installation directory for the HAL callout in the hope that it
  will work out of the box on more systems

* BSD portability fixes (courtesy of Andrew Nosenko)

* Write MHLA (list of albums) headers to iTunesDB

* Small improvements for iPhone support though iPhone 3G are still
  unsupported because we can't checksum the iPhone iTunesDB.


Overview of changes in libgpod 0.7.0
====================================

* support for iPod Nano 4th generation

This includes support for cover art.
Please note that this release DOES NOT support iPhones and iPod Touch
with firmware 2.x

* support for "sparse artwork" writing

This lets us write more compact artwork files to the iPod, which in turn makes
the UI more responsive (and saves disk space on the iPod).

* jump table support

These are the big letters that show up in the album/artist list when someone
quickly scrolls through them. Thanks a lot to Ian Stewart for implementing it.

* chapter data support

Chapter data allows large files (movies, audio books, podcasts) to be divided
into smaller sections.  Thanks to Michael Tiffany for this feature.

* improved timezone handling

This should now work up to 5G iPods, for newer iPods, libgpod will assume 
timestamps are in UTC.

* translation updates

Thanks to all of our translators :)

* much more complete API doc

All of the public API is now documented with gtk-doc.

* simplification of the cover art handling API

The API for artwork for developers using libgpod should be more
straightforward, if things are missing, don't hesitate to get in touch
with us ;)

* extensive plist parser

In libgpod 0.6.0, libgpod got a very basic parser for the SysInfoExtended file
(which is a XML plist description). This parser was rewritten for this release
to parse the whole file. This parser depends on libxml2 but its compilation
will be disabled if libxml2 and its development headers can't be found.

* add mapping from iPod serial numbers to iPod models

The iPod serial number can be obtained programmatically, and its last 3 digits
are characteristic of an iPod (type, generation, color, capacity). libgpod
can now find out an iPod model using this serial number.

* portability improvements to windows and macosx

This is probably not perfect yet, but the goal is to improve it as much as
possible so don't hesitate to send bug reports if some things are still not
working. Thanks to the songbird project and Éric Lassauge.

* reworked handling of artwork formats

libgpod can now automatically use the artwork formats described in
SysInfoExtended even if the iPod model is unknown, this should make it possible
for libgpod to support artwork on newly released iPod models without the need
to upgrade.

* python bindings are more consistent with other python container objects

This enables testing whether a key exists in an object (e.g. "'title' in track")
as well as iterating over a Track or Photo object's keys, values, or items.

* bug fixes and code cleanup all over the place


Overview of changes in libgpod 0.6.0
====================================

* support for iPod Classics and Video Nanos

The database from these models is protected by a checksum. When this checksum 
doesn't match the content of the iPod database, the iPod won't show any 
track (ie it will look empty). Support for writing this checksum has been 
implemented in this release thanks to the awesome work of a few people in
#gtkpod. However, to calculate this checksum, a so called "firewire ID" is 
needed which is different from iPod to iPod. Since reading it from the iPod
requires special permissions, the firewire ID must be written in a regular 
file on the iPod so that libgpod can find it and use it to generate the
checksum. 

libgpod installs a HAL callout to do that automatically when 
everything is installed in an appropriate place. It can also be done manually,
see README.SysInfo for more information.

Cover art should be working except for non square covers, preliminary photo 
support but this hasn't been widely tested yet.


* support for iPhone and iPod Touch

This requires manual user intervention: the devices must be jailbroken and 
mounted through sshfs. The iPod Touch also needs a firewire ID which must be
manually set, see README.SysInfo

Cover art is implemented but not tested at all, ditto for photo support on 
the iPod Touch


* additional tools to get the firewire id from new iPods including a HAL
  callout which will make the process totally automatic when it's properly 
  installed. These tools need libsgutils to be installed.

* endianness fixes in the artwork writing code
* now depends on glib 2.8 or newer

Huge thanks to wtbw and Simon Schulz without whom that release wouldn't have 
been possible. Thanks as well to the people on #gtkpod for the testing they 
provided.

Other contributors to the release:
- Jesse Bouwman
- Alex Eftimie
- Christophe Fergeau
- Filippo Giunchedi
- Javier Kohen
- Tobias Kreisel
- Eric Lassauge
- Nicholas Piper
- Jorg Schuler
- Simon Schulz
- Todd Zullinger
