2009-01-06 Todd Zullinger * po/zh_CN.po: Add simple Chinese translation (Tan Zhixin) 2009-01-05 Todd Zullinger * po/de.po: Update German translation (Jonas Cleve) 2009-01-02 Todd Zullinger * configure.ac: Bump version for 0.7.0rc2 * docs/reference/tmpl/track.sgml, src/itdb.h: Document Itdb_Track->album_id * bindings/python/ipod.py: Make Track.get_coverart() return None if artwork is absent 2009-01-02 Christophe Fergeau * NEWS: more news, hope the packagers will notice the new libxml2-devel dependency... 2009-01-02 Christophe Fergeau * src/Makefile.am: we need to link with -lm since ithumb-writer.c uses round and ceil 2009-01-02 Christophe Fergeau * NEWS: update NEWS file, I probably forgot some things, feel free to update it :) 2009-01-01 Christophe Fergeau * src/itdb_device.c: fix static artwork formats for the nano4g, C&P is really a bad thing ;) 2009-01-01 Christophe Fergeau * src/itdb.h: add album_id field to Itdb_Track. It's unused yet but will be used later and adding it now will avoid ABI breakage later ;) 2008-12-29 Christophe Fergeau * src/itdb_device.c: add serial number for silver and pink 16GB nano 4g, the last missing ones :) 2008-12-28 Todd Zullinger * bindings/python/gtkpod.py: Python: fix sha DeprecationWarning with python-2.6 (thanks to Alex Ghitza) 2008-12-26 Todd Zullinger * po/es.po: Update Spanish translation (Alejandro Lamas Daviña) 2008-12-22 Christophe Fergeau * src/itdb_device.c: I didn't mean to commit that hunk from Neil's patch, adding a model name here with no matching entry in the model enum would break building a user visible list of known ipod models 2008-12-22 Christophe Fergeau * src/itdb_device.c: add ipod shuffle info from Neil Campbell 2008-12-22 Christophe Fergeau * src/itdb_device.c: add serial number for yellow and green 16GB nano 4g. 2008-12-18 Christophe Fergeau * src/itdb_device.c: add serial number for purple 16GB nano 4g, thanks to Ronald for providing the information 2008-12-16 Daniele Forsi * po/it.po: updated Italian translation 2008-12-15 Jorg Schuler * src/itdb_plist.c: substitute g_base64_decode() between version 2.8 and 2.11 of glib. * src/itdb_device.c: handle timezone correctly on CYGWIN Patches courtesy of Éric Lassauge. 2008-12-13 Jorg Schuler * po/fr.po: Update French translation (Éric Lassauge) 2008-12-12 Christophe Fergeau * src/itdb_device.c: add hardcoded table for nano4g artwork formats. I haven't tested I got everything perfectly right so there might be issues with them. Thanks to Tijs van Roon for pinpointing these missing tables 2008-12-12 Christophe Fergeau * src/itdb_device.c: add serial number for 16GB Orange Nano 4g, thanks to Tijs van Roon for providing the data 2008-12-10 Todd Zullinger * po/he.po: Update Hebrew translation (Assaf Gillat) * po/sv.po: Update Swedish translation (Stefan Asserhäll) 2008-12-08 Todd Zullinger * configure.ac: Bump version and soname for 0.7.0rc1 * po/de.po po/es.po po/fr.po po/he.po po/it.po po/ja.po po/libgpod.pot po/ro.po po/sv.po: Update po files 2008-12-07 Todd Zullinger * docs/reference/libgpod-docs.xml docs/reference/libgpod-sections.txt docs/reference/tmpl/artwork.sgml docs/reference/tmpl/chapterdata.sgml docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-copying.sgml docs/reference/tmpl/itunesdb-db.sgml docs/reference/tmpl/itunesdb-lowlevel.sgml docs/reference/tmpl/itunesdb-time.sgml docs/reference/tmpl/libgpod-unused.sgml docs/reference/tmpl/photodb.sgml docs/reference/tmpl/track.sgml src/itdb.h src/itdb_artwork.c src/itdb_chapterdata.c src/itdb_device.c src/itdb_device.h src/itdb_itunesdb.c src/itdb_photoalbum.c src/itdb_playlist.c src/itdb_plist.c src/itdb_sysinfo_extended_parser.c src/itdb_thumb.c src/itdb_thumb.h src/itdb_track.c src/ithumb-writer.c: Update API documentation Add new functions and missing enums, macros, and structs to the proper places in the documentation, remove old/unused functions, and clean up various minor issues. 2008-12-07 Jorg Schuler * itdb_itunesdb.c (jump_table_letter): don't terminate when an invalid utf8 string is encountered (replaced g_assert() with g_return_val_if_fail()). 2008-11-30 Jorg Schuler * configure.ac: don't add "-Wall" to CFLAGS unconditionally. I believe this line was overlooked when this issue was fixed earlier. Thanks to Tim Mooney. 2008-11-30 Jorg Schuler * src/db-parse-context.h: remove unneeded G_GNUC_INTERNAL at the end of a declaration as this can cause problems with some compilers (and doesn't seem to make sense in the first place). Thanks to Tim Mooney. 2008-11-17 Christophe Fergeau * src/ithumb-writer.c: rework the way we calculate that thumbnails must be resized to when being transferred to the ipod. The old way had rounding errors which led to display bugs on the nano4g (in the album list) 2008-11-17 Christophe Fergeau * src/ithumb-writer.c: stricter sanity check 2008-11-17 Christophe Fergeau * src/ithumb-writer.c: add checks for int overflows on malloc args 2008-11-14 Todd Zullinger * docs/reference/tmpl/track.sgml src/itdb.h: Remove chapterdata_raw and chapterdata_raw_length from Itdb_Track These are no longer needed now that proper Chapter Data support is available (since svn revision 1936/1937). 2008-10-21 Christophe Fergeau * src/itdb_device.c: SN YX6 corresponds to a Shuffle model B225 according to a report on #gtkpod 2008-10-21 Christophe Fergeau * src/itdb_device.c: use information from SysInfoExtended to tell if an ipod supports photos or not instead of only using the hard-coded tables in libgpod 2008-10-21 Christophe Fergeau * src/itdb_device.c: add serial number for 16GB blue ipod nano, thanks to Thomas Pani for providing that SN. 2008-10-13 Christophe Fergeau * src/itdb_device.c: add serial number for 16GB black ipod nano, thanks to Doug Larrick for providing that SN :) 2008-10-07 Christophe Fergeau * src/db-artwork-debug.c: use %z modifier to print size_t values and G_GINT64_MODIFIER to print 64 bit values, fix compilation on 64 bit systems when artwork debugging is enabled 2008-10-08 Christophe Fergeau * src/itdb_device.h: switch members in Itdb_ArtworkFormat from guint16 to gint since the SysInfoExtended parser will assume they are gint value and will try to write to them through a gint* pointer (ie it will overwrite whatever is around the guint16 value if we don't change it) 2008-10-07 Christophe Fergeau * src/itdb_device.c: fix itdb_device_supports_artwork to properly take into account data from SysInfoExtended if available 2008-10-07 Christophe Fergeau * src/itdb_sysinfoextended_parser.c: artwork is stored in nodes (which are parsed to a GValueArray), reflect that in the SysInfoExtended parsing code. 2008-10-07 Christophe Fergeau * src/itdb_plist.c: fix handling on blank nodes (ie nodes containing only white spaces), fixes parsing of SysInfoExtended files as well ;) 2008-10-07 Christophe Fergeau * src/itdb_plist.c: add support for tags to the plist parser, this is needed to support SysInfoExtended files as found on on the 4g nanos 2008-10-05 Christophe Fergeau * src/itdb_device.c: add serial number for the 8GB Silver Nano 4g and model number for the 4GB Blue Nano 4g 2008-10-01 Christophe Fergeau * src/itdb_device.c: a few more fixes in device model numbers/serials 2008-10-01 Christophe Fergeau * src/itdb_device.c: add missing name for the yellow ipod nano 2008-10-01 Christophe Fergeau * src/itdb_device.c: and add SN for the 8GB Red Nano 2008-10-01 Christophe Fergeau * src/itdb_device.c: add SN for 16GB Red Nano 2008-10-01 Christophe Fergeau * src/itdb.h: add enum entries for the new ipod classic and the new nanos * src/itdb_device.c: add entries for the new nanos and the new ipod classic, add some serial numbers for older ipod models 2008-09-11 Christophe Fergeau * src/itdb_device.c: add missing string description for the red ipod shuffle that was added some time ago, without it gtkpod was badly broken wrt ipod model selection :-/ 2008-08-23 Todd Zullinger * bindings/python/ipod.py bindings/python/tests/tests.py: Add a quiet parameter to Database.remove() and use it in tests * bindings/python/ipod.py: Be more consistent with other python container objects and classes 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. The items() and pairs() methods were renamed to values() and items(), respectively, in the Track and Photo classes. * bindings/python/tests/tests.py: Whitespace cleanup * bindings/python/ipod.py: Set the mediatype field for Track objects 2008-08-20 Todd Zullinger * bindings/python/examples/save_photos.py bindings/python/gpod.i.in bindings/python/ipod.py bindings/python/tests/tests.py: Update python bindings to work with the new thumbnail API. This removes sw_get_artwork_thumbnails() and the Thumbnail class from the python bindings. The get_pixbuf() function is now in the Photo class. 2008-08-09 Paul Richardson * Added eclipse project related files to svn:ignore * src/db-artwork-parser.c src/itdb.h src/itdb_photoalbum.c: Added to Itdb_PhotoAlbum, a reference to its parent Photo DB. When albums are constructed upon loading of the Photo DB, the reference is added as part of initialisation. 2008-08-09 Todd Zullinger * src/itdb_playlist.c tests/test-ls.c: Remove uses of deprecated itdb_time_* functions 2008-08-03 Jorg Schuler * src/ithumb-writer (ithumb_writer_handle_pixbuf_transform): handle rotation correctly: don't interchange width and height for the thumbnail on the iPod. 2008-08-02 Todd Zullinger * src/itdb_track.c: Fix typo in itdb_track_get_thumbnail() doc comment 2008-07-31 Christophe Fergeau * configure.ac: s/test -a/test -e/ since this is what I really meant, thanks tmz 2008-07-31 Christophe Fergeau * configure.ac: instead of looking for .svn or {arch}, look for autogen.sh to decide if we are compiling a version checked out from svn or a release tarball. 2008-07-31 Christophe Fergeau * src/itdb_device.h: * src/itdb_plist.h: move itdb_device_error_quark from itdb_plist.h to itdb_device.h 2008-07-30 Todd Zullinger * docs/reference/tmpl/track.sgml src/itdb.h src/itdb_itunesdb.c: Rename unk146 to explicit_flag in Itdb_Track now that it's purpose is known 2008-07-27 Christophe Fergeau * src/itdb_sysinfo_extended_parser.c: * src/itdb_plist.c: add gtk-doc documentation 2008-07-27 Christophe Fergeau * src/itdb_sysinfo_extended_parser.c: * src/itdb_sysinfo_extended_parser.h: add a GError argument to SysInfoExtended parsing functions * src/itdb_device.c: pass NULL GError argument to call to SysInfoExtended functions * tests/test-sysinfo-extended.c: add a GError argument when calling SysInfoExtended parsing functions 2008-07-27 Christophe Fergeau * src/itdb_device.c: add itdb_device_error_quark() * src/itdb_plist.h: * src/itdb_plist.c: add error handling to XML parsing (using GError) * src/itdb_sysinfo_extended_parser.c: pass a NULL GError to call to plist parsing function 2008-07-26 Christophe Fergeau * tests/test-fw-id.c: (main): add missing call to g_type_init 2008-07-20 Jorg Schuler * src/ithumb-writer.c (pack_RGB_565), (pack_RGB_555) (pack_RGB_888): handle horizontal padding correctly (affected pictures in portrait format). * src/itdb_device.c: added some comments. 2008-07-18 Jorg Schuler * src/itdb_device.c (itdb_device_set_timezone_info): avoid g_stat on NULL filename. Thanks to Andrea. 2008-07-18 Jorg Schuler * src/itdb_device.c: assume the following generations do not support sparse artwork: ITDB_IPOD_GENERATION_NANO_1: ITDB_IPOD_GENERATION_NANO_2: ITDB_IPOD_GENERATION_VIDEO_1: ITDB_IPOD_GENERATION_VIDEO_2: 2008-07-17 Todd Zullinger * README bindings/python/gpod.i.in bindings/python/ipod.py docs/reference/libgpod-sections.txt docs/reference/tmpl/artwork.sgml docs/reference/tmpl/itunesdb-db.sgml src/itdb.h: Remove references to itdb_thumb_get_gdk_pixbuf() 2008-07-10 Christophe Fergeau * src/db-artwork-writer.c: if we fail to write ithmb files for some reason, don't go on trying to write the ArtworkDB/PhotoDB as well 2008-07-09 Todd Zullinger * po/POTFILES.in: add src/itdb_thumb.c 2008-07-09 Christophe Fergeau * configure.ac: properly detect newer libsgutils (the so name was changed) * tools/ipod-scsi-inquiry.c: add missing include Based on a patch from Dan Horák (dan@danny.cz) 2008-07-06 Christophe Fergeau * src/itdb_device.c: fix model number information grabbed from podsleuth 2008-07-06 Christophe Fergeau * src/itdb_device.c: add a mapping from serial numbers to model numbers to make it easy to go from a serial number read from SysInfoExtended to an Itdb_IpodInfo 2008-07-06 Christophe Fergeau * src/itdb_device.c: * src/itdb_device.h: add missing red ipod shuffles as well as 2GB shuffles to the list of known ipod models 2008-07-06 Christophe Fergeau * src/itdb_device.c: * src/itdb_device.h: add itdb_device_get_storage_info method * src/itdb_itunesdb.c: use that method instead of directly using statvfs, makes it easier to port things over to MSVC8 2008-07-05 Christophe Fergeau Patch from: Songbird (http://getsongbird.com/) * src/db-itunes-parser.h: remove unused constant * src/db-parse-context.c: * src/db-parse-context.h: use GMappedFile instead of directly using mmap, it's needed for MSVC8 portability 2008-07-05 Christophe Fergeau Patch from: Songbird (http://getsongbird.com/) * src/itdb_itunesdb.c * src/itdb_track.c: get rid of inner functions since it is a gcc specific extension and MSVC8 doesn't like that 2008-07-05 Christophe Fergeau Patch from: Songbird (http://getsongbird.com/) * src/db-artwork-parser.c * src/db-parse-context.c * src/db-parse-context.h: get rid of unused argument to db_parse_context_destroy (it was always set to TRUE) 2008-07-06 Christophe Fergeau * src/ithumb-writer.c: fix bug in the function scaling and cropping thumbnails, in the non-cropping case, the returned pixbuf size didn't reflect the size of the scaled pixbuf 2008-07-05 Christophe Fergeau * src/db-artwork-parser.c: fix small memory leak 2008-07-05 Christophe Fergeau * src/ithumb-writer.c: fix typo in thumbnail rearranging code, we were wrongly appending Itdb_Thumb_Ipod instances to lists of Itdb_Thumb_Ipod_Item 2008-07-05 Christophe Fergeau * src/db-artwork-writer.c: properly set padding to 0 in mhods type 3 2008-07-05 Christophe Fergeau Patch from: Songbird (http://getsongbird.com/) * src/ithumb-writer.c: don't leak the list of image formats we get from the ItdbDevice 2008-06-29 Daniele Forsi * src/itdb_itunesdb.c src/itdb_thumb.c src/itdb_device.c src/itdb_photoalbum.c: fix typos in comments 2008-06-29 Jorg Schuler * src/ithumb-writer.c (itdb_write_ithumb_files): fix bug when writing photos (loop variable "it" re-used inside loop). Rename loop variable to "itw" also in case of writing artwork. * src/itdb_thumb.c (itdb_thumb_to_pixbuf_at_size): If requesting a thumb from the iPod smaller than available, none would be returned. Fixed. Thumbs from the iPod would not be scaled even if requested. Fixed. If requesting a thumb from a file or existing pixbuf, scaling was done even if none was requested (width/height = 0/-1). Fixed. Introduced selection of smallest available thumbnail (width/height = 0) besides largest available thumbnail (width/height = -1). TODO: consider aspect ratio of requested picture (currently it is very likely that some of the square thumbs are returned...) src/itdb_artwork.c (itdb_artwork_get_thumbnail): Introduced selection of smallest available thumbnail (width/height = 0) besides largest available thumbnail (width/height = -1). (Only necessary documentation.) 2008-06-28 Christophe Fergeau patch by: Mike Heffner * src/Makefile.am: * src/db-artwork-writer.c: fix compilation with older glib (without GChecksum) 2008-06-24 Christophe Fergeau * src/itdb_device.c: rework timezone handling: handle timezones as stored on 5g ipods (hopefully) and fallback to using the computer timezone if we can't figure out the ipod timezone * tests/get-timezone.c: use functions from libgpod to get the timezone instead of duplicating some itdb_device code 2008-06-15 Christophe Fergeau * src/itdb_device.c: oops, forgot a ',' 2008-06-14 Christophe Fergeau * src/itdb_device.c: fix some entries in the ipod_model_table by using libipoddevice and podsleuth as a reference 2008-06-14 Christophe Fergeau * src/itdb_track.c: remove bogus function to check if the ipod supports video: it didn't take into account the new ipods released after the 1st ipod video 2008-06-09 Christophe Fergeau * src/itdb_device.h: * src/itdb_sysinfo_extended_parser.c: * src/ithumb-writer.c: use background color and alignement information from SysInfoExtended if available 2008-06-09 Christophe Fergeau * src/db-artwork-writer.c: * src/itdb_device.c: * src/itdb_device.h: * src/itdb_sysinfo_extended_parser.c: * src/itdb_sysinfo_extended_parser.h: implements itdb_device_supports_sparse_artwork (instead of the old stub always returning TRUE). Use data from SysInfoExtended if it's available, use hardcoded table from libgpod if not. 2008-06-09 Christophe Fergeau * src/itdb_device.c: * src/itdb_device.h: * src/itdb_sysinfo_extended_parser.c: * src/itdb_sysinfo_extended_parser.h: merge Itdb_ArtworkFormat and SysInfoImageFormat, use artwork formats from SysInfoExtended when it's available instead of using the hardcoded tables from libgpod 2008-06-09 Christophe Fergeau * src/db-artwork-writer.c: * src/db-image-parser.h: * src/itdb.h: * src/itdb_device.c: * src/itdb_device.h: * src/ithumb-writer.c: get rid of ItdbThumbType, it's replaced by pointers to the appropriate Itdb_ArtworkFormat for the thumbnail type when it's needed 2008-06-09 Christophe Fergeau * src/db-artwork-parser.c: remove duplicated artwork/photo support testing functions * src/db-artwork-parser.h: ditto * src/itdb_itunesdb.c: s/ipod_supports_XXX/itdb_device_supports_XXX * src/itdb_photoalbum.c: ditto * src/itdb.h: use a const Itdb_Device argument for itdb_device_supports_*, add ITDB_IPOD_GENERATION_IPHONE_1 to Itdb_IpodGeneration, get rid of ITDB_IPOD_GENERATION_FIFTH and ITDB_IPOD_GENERATION_SIXTH * src/itdb_device.c: split functions to get artwork format from the ipod in 2 separate functions: instead of itdb_device_get_artwork_formats we now have itdb_device_get_photo_formats and itdb_device_get_cover_art_formats * src/itdb_device.h: * src/db-image-parser.c: use the separate get_cover_art_formats/get_photos_formats functions * src/db-artwork-writer.c: ditto * src/ithumb-writer.c: ditto 2008-06-09 Christophe Fergeau * src/gchecksum.c: fix compilation (it's only compiled on system with older glib versions) 2008-06-09 Christophe Fergeau * src/db-artwork-writer.c: * src/itdb_artwork.c: * src/itdb_thumb.c: * src/itdb_thumb.h: fix compilation when gdk-pixbuf isn't present 2008-06-02 Jorg Schuler * src/itdb_track.c (itdb_track_remove_thumbnails): set mhii_link to 0. * src/db-artwork-parser.c (mhfd_associate_itunesdb_artwork): remove thumbnails if mhii_link is invalid. 2008-06-02 Jorg Schuler * src/gchecksum.c src/gchecksum.h src/Makefile.am configure.ac: copied gchecksum from glib 2.16.3. It's used if we compile on a system that does not have glib 2.16 or higher. Testing is needed whether it's really pulled in in those cases -- I'm using 2.16.3 myself. * src/itdb_itunesdb.c (mk_mhit): write mhii_link. * src/db-artwork-writer.c: code to handle sparse artwork correctly. (ipod_supports_sparse_artwork): currently hard-coded to TRUE. Will be changed in the future to reflect the information given in the SysInfoExtended. Change yourself if your iPod does not support Sparse Artwork (sharing of thumbnails between several tracks). 2008-06-01 Jorg Schuler * src/itdb_thumb.c remove some unnecessary checks for NULL pointer (itdb_thumb_duplicate): move g_list_reverse() outside the loop modifying the list. 2008-05-30 Jorg Schuler * src/itdb_thumb.c src/itdb_thumb.h src/ithumb-writer.c src/itdb_photoalbum.c: fixed a number of compile-time warnings. 2008-05-30 Christophe Fergeau Patch from Ian Stewart * src/itdb_itunesdb.c: don't pass NULL sort_composer names down to jump_table_letter, fixes a crash reported by Andy Busch 2008-05-30 Christophe Fergeau * src/Makefile.am: * src/db-artwork-parser.c: * src/db-artwork-writer.c: * src/db-image-parser.c: * src/db-image-parser.h: * src/itdb.h: * src/itdb_artwork.c: * src/itdb_device.h: * src/itdb_photoalbum.c: * src/itdb_track.c: * src/ithumb-writer.c: * tests/test-covers.c: * tests/test-photos.c: rework Itdb_Thumb type. Now it's split into different subtypes depending on what it represents (GdkPixbuf, thumbnail read from the ipod, ...). Itdb_Artwork now contains only a pointer to a single Itdb_Thumb (it used to contain a GList * of Itdb_Thumb) since the only time when the list is useful is for thumbs read from the ipod. Using a list for the other types of thumbnails created some complications when trying to set art on an Itdb_Track that wasn't attached to an Itdb_iTunesDB. 2008-05-29 Christophe Fergeau * src/itunesdb.c: * src/ithumb-writer.c: add missing static to internal functions 2008-05-28 Jorg Schuler * src/db-artwork-parser.c (parse_mhii): removed artwork_fallback variable upon Christophe's suggestion and streamlined code. 2008-05-28 Jorg Schuler * src/itdb_track.c (itdb_track_set_thumbnails_internal): set artwork ID to 0 after removing thumbnails. * src/db-artwork-parser.c (parse_mhii): move out dbid association to a separate function. (mhfd_associate_itunesdb_artwork): handle dbid and mhii_link association of artwork to track (parse_mhfd): loop over the number of mhsd hunks instead of hardcoding it. Call mhfd_associate_itunesdb_artwork(). * src/itdb_itunesdb.c (get_mhit): read the mhii_link field. * src/db-artwork-writer.c (write_mhli): handle unset artwork correctly. (itdb_track_filter_thumbnails): remove thumbnails correctly. * src/db-parse-context.c (db_parse_context_get_sub_context): copy newly introduced artwork field. * tests/test-covers.c: print mhii_link. * src/itdb.h: (Itdb_Track) added mhii_link. (Itdb_Artwork): added dbid. * src/itdb.h, src/db-artwork-parser.c, src/db-artwork-writer.c, src/itdb_device.c, src/ithumb-writer.c, src/itdb_artwork.c: added ITDB_THUMB_CHAPTER_SMALL/LARGE. * src/itdb_device.c: ipod_classic_1_artwork_info: correct ITDB_THUMB_COVER_SMALL/LARGE entries. 2008-05-25 Christophe Fergeau * configure.ac: libxml presence is mandatory unless --disable-libxml is passed to configure 2008-05-25 Christophe Fergeau * src/itdb_device.c: don't insert NULL firewire IDs in the SysInfo hash table 2008-05-25 Christophe Fergeau * configure.ac: rework libxml detection * src/Makefile.am: remove LIBXML_CFLAGS/LIBXML_LIBS since they are no longer used * src/itdb_plist.c: add stub functions when libxml isn't available * src/itdb_sysinfo_extended_parser.c: include config.h 2008-05-25 Christophe Fergeau * src/db-artwork-debug.c: * src/db-artwork-writer.c: * src/db-image-parser.c: * src/db-itunes-parser.h: * src/itdb_device.h: * src/ithumb-writer.c: rename correlation_id to format_id (this is how that value is called in SysInfoExtended) 2008-05-25 Christophe Fergeau * configure.ac: check libxml presence * src/Makefile.am: add new files, remove obsolete ones * src/itdb_plist.h: * src/itdb_plist.c: plist parser, this parses a plist XML file to a GHashTable of GValue *. This parser should be generic, ie it doesn't know it's parsing SysInfoExtended, it only cares about it being a plist file * src/itdb_sysinfo_extended_parser.h: * src/itdb_sysinfo_extended_parser.c: convert the parsed plist data to data structures usable by libgpod * src/itdb_device.h: * src/itdb_device.c: parses SysInfoExtended in addition to SysInfo * src/itdb_sysinfo.c: this hacky parser is obsoleted by the new (much more complete) SysInfoExtended parser, so it's removed * tests/Makefile.am: * tests/test-sysinfo-extended-parsing.c: small test program for the new parser 2008-05-25 Christophe Fergeau Patch from Ian Stewart * src/itdb_itunesdb.c: add jump letter support (mhod53) 2008-05-24 Christophe Fergeau * src/ithumb-writer.c: factor some code out of ithumb_writer_write_thumbnail into separate functions to make the code more readable 2008-05-24 Christophe Fergeau Patch from Jacob Hoffman-Andrews * src/itdb_device.h: add 'crop' field to Itdb_ArtworkFormat * src/itdb_device.c: fill this 'crop' field for the iphone * src/ithumb-writer.c: use that new 'crop' field to crop the thumbnails when the Itdb_ArtworkFormat requires it. 2008-05-24 Christophe Fergeau Patch from Jacob Hoffman-Andrews * tools/hal-callout.c: add missing #include 2008-05-17 Jorg Schuler * tests/test-covers.c: print more info (marginally) 2008-05-11 Jorg Schuler * src/itdb_photoalbum.c src/itdb_private.h src/db-artwork-writer.c: renamed itdb_get_free_photo_id() to itdb_get_max_photo_id() and implemented Jacob Hoffman-Andrew's patch about the photo_ids and album_ids being shared. * tests/test-covers.c: print more info (marginally) 2008-05-10 Jorg Schuler * tests/test-covers.c: print more status messages. 2008-05-01 Todd Zullinger * configure.ac: Bump version to 0.6.1SVN * bindings/python/ipod.py: write shuffle data (thanks to Diogo Dutra) 2008-04-19 Jorg Schuler * bindings/python/examples/Makefile.am Added fix_empty_artist_field.py provided by Thomas Perl. 2008-03-29 Todd Zullinger * bindings/python/Makefile.am docs/reference/Makefile.am src/Makefile.am: cleanup more of our dirs with make uninstall * tests/test-rebuild-db.cc: include string.h to fix builds with gcc 4.3 (fixes SF tracker #1928618) 2008-03-02 Todd Zullinger * configure.ac m4/python.m4: shell portability fixes (courtesy of Klaus Heinz) 2008-02-13 Todd Zullinger * bindings/python/ipod.py: Track.set_thumbnail() was renamed to Track.set_coverart_from_file() a long time ago 2008-02-03 Christophe Fergeau * src/db-artwork-debug.c: * src/db-artwork-debug.h: fix mhod type1 and mhod type3 dumping when debugging is enabled 2008-02-03 Christophe Fergeau * src/db-artwork-debug.h: merge mhod type1 and mhod type3 dumping functions * src/db-artwork-writer.c: adjust to the change above * src/db-artwork-parser.c: merge mhod type1 and mhod type3 parsing * src/db-itunes-parser.h: remove obsolete comment 2008-02-03 Christophe Fergeau * src/db-artwork-parser.c: use enum name instead of hardcoded int * src/db-artwork-writer.c: add comments about values that aren't swapped because they are 8 bit values 2008-02-03 Christophe Fergeau * src/db-itunes-parser.h: merge ArtworkDB_MhodHeaderArtworkType3 and MhodHeaderArtworkType1 into a single struct called ArtworkDB_MhodHeaderString * src/db-artwork-parser.c: * src/db-artwork-writer.c: adjust to the above change 2008-02-03 Christophe Fergeau * src/db-artwork-parser.c: add missing g_free that could cause memory leaks 2008-01-30 Christophe Fergeau Patch by Martin Aumueller * tests/test-ls.c: make sure the various fields we are trying to print aren't NULL, this fixes a crash that was observed with iphones 2007-11-15 Christophe Fergeau * src/itdb_itunesdb.c: don't use itdb_filename_ipod2fs to generate the filename to put on the shuffle since on windows that would use \ as a path separator instead of the correct / 2007-11-15 Christophe Fergeau * src/itdb_private.h: * src/itdb_itunesdb.c: add itdb_file_set_contents to workaround a rename issue on sshfs (existing files on the FS can't be atomatically erased during a rename). Use it in wcontents_write * src/db-artwork-writer.c: use itdb_file_set_contents to write the ArtworkDB 2007-11-15 Christophe Fergeau * src/db-artwork-writer.c: * src/db-parse-context.c: * src/itdb_device.c: * src/itdb_itunesdb.c: * src/ithumb-writer.c: don't include unistd.h on systems which don't have it 2007-11-16 Christophe Fergeau * src/itdb_itunesdb.c: rework itdb_cp for MacOSX/Windows portability 2008-01-26 Michael Tiffany * src/itdb_chapterdata.c: file missed being added in previous checkin 2008-01-26 Jorg Schuler * src/itdb_track.c * src/itdb_itunesdb.c * src/itdb_chapterdata * src/itdb.h * src/Makefile.am: applied chapterdata patch by Michael Tiffany. 2008-01-02 Christophe Fergeau * src/itdb_device.c: fix ITDB_THUMB_PHOTO_FULL_SCREEN format on ipod classic and nano video, thanks to Tomas Carnecky for pointing that out 2007-12-13 Todd Zullinger * Makefile.am: add ACLOCAL_AMFLAGS to fix some autoreconf issues (thanks to Frank Lichtenheld at Debian) 2007-11-26 Todd Zullinger * configure.ac libgpod-1.0.pc.in: conditionally add gdk-pixbuf to pkg-config Requires. exit with an error if gdk-pixbuf or pygobject are explicitly requested and not found. add AM_PROG_CC_C_O to make automake happy about per-target flags in tests/Makefile.am 2007-11-25 Todd Zullinger * autogen.sh: pass any user-specified options to configure 2007-11-17 Jorg Schuler * src/itdb_playlist.c (itdb_splr_eval): track length in rules for smart playlists was treated as seconds, but the iPod treats them as milliseconds. If you told libgpod to create a smart playlist with tracks less than 100 secs in length, but the life update of the iPod would interpret that rule as "tracks less than 100 msec in length", giving a vastly different result. Tested with iPod Nano 1G and iPod nano Video (3G). Requires corresponding fix in GUIs using this function. 2007-11-16 Christophe Fergeau * src/itdb_device.c: fix typoes in iPod Touch model lists 2007-11-14 Christophe * src/itdb_itunesdb.c: use libgpod as the prefix of music files to be copied to the ipod instead of gtkpod 2007-11-14 Christophe * src/itdb_itunesdb.c: get rid of local g_mkdir_with_parents copy since we now depend on glib 2.8 which have it. Replace mkdir with g_mkdir 2007-11-14 Christophe * src/itdb_itunesdb.c: ignore invalid UTF-8 paths which might have been added to the iPod by the user 2007-11-14 Christophe * src/itdb_photoalbum.c: use g_list_remove all instead of an inefficient combination of g_list_find + g_list_remove 2007-11-14 Jorg Schuler * src/itdb_photoalbum.c (itdb_photodb_photoalbum_remove): make sure same photo isn't freed multiple times if it was added in an album multiple times. 2007-11-13 Christophe Fergeau * src/itdb_photoalbum.c: fix bug in itdb_photodb_photoalbum_remove, when removing all the photos from the photodatabase, we were erasing elements and iterating over the list at the same time, which resulted in the function not working properly 2007-11-10 Christophe Fergeau * Makefile.am: add README.SysInfo to EXTRADIST 2007-11-10 Christophe Fergeau * NEWS: update for 0.6.0 release * README.SysInfo: explain how to get the firewire id from an iPod Touch 2007-11-10 Jorg Schuler * src/db-artwork-parser.c (parse_mhba): fix double g_free on mhba chunks with multiple mhods. Currently only mhods of type 1 are handled, the rest (type 2: image transition style) are being discarded. * src/itdb_device.c: added photo thumbnail definitions for iPod Touch. I'm not sure how reasonable the "PHOTO_LARGE, _FULL_SCREEN, _TV_SCREEN" classification is, however... * src/itdb_device.c: use the same photo thumbnail definitions for the iPhone as well as the iPod Touch until further input is received. 2007-11-09 Jorg Schuler * src/db-parse-context.c (db_parse_context_get_m_header_internal): fixed memory leak. 2007-11-08 Christophe Fergeau * src/itdb_device.c: (itdb_device_requires_checksum): the iPod Touch needs a firewire id as well 2007-11-08 Christophe Fergeau * tools/hal-callout.c: (mount_ipod): use g_get_tmp_dir instead of hardcoding /tmp 2007-11-07 Jorg Schuler * tools/hal-callout.c (mount_ipod): fix bug that prevented creation of the SysInfoExtended file if it hadn't already existed. Add copyright header. * tools/ipod-scsi-inquiry.c: added project name to the copyright header. 2007-11-06 Christophe Fergeau * configure.ac: raise version number and soname in preparation for a 0.6.0 release 2007-11-06 Christophe Fergeau * configure.ac: * tools/20-libgpod-sysinfo-extended.fdi: * tools/Makefile.am: * tools/hal-callout.c: * tools/ipod-scsi-inquiry.c: * tools/read-sysinfoextended-sgutils.c: add hal callout which automatically write SysinfoExtended to iPods when they are plugged if it's properly installed 2007-11-06 Jorg Schuler * itdb_itunesdb.c (itdb_create_directories): Add support for iPod Touch (wrong directories were created). 2007-11-04 Jorg Schuler * itdb_itunesdb.c (itdb_create_directories): Add support for iPhones (wrong directories were created). Thanks to Jesse Bouwman for the patch. Added support for video output of photos for iPod Nano Videos and iPod Classics. * src/ithumb-writer.c (pack_I420): added packer for iPod Nano Video and iPod Classic TV output photo format. (itdb_write_ithumb_files): make sure only valid thumbnail types are written. * src/db-image-parser.h: added declaration for itdb_thumb_type_is_valid_for_db() * src/itdb_photoalbum.c (itdb_photodb_add_photo_internal): make sure only photo thumbnails are added. * src/db-artwork-writer.c (write_mhii): correctly skip unneeded thumbnails (thumbnails not relevant for the current iPod type). (should_write): renamed to itdb_thumb_type_is_valid_for_db() src/itdb.h src/itdb_artwork.c: minor formatting. 2007-10-30 Christophe Fergeau Additional clean-ups after the glib requirement bumping pointed out by tmz on IRC * libgpod-1.0.pc.in: bump glib requirement there as well * src/Makefile.am: * src/db-parse-context.c: * src/glib-compat.h: * src/itdb_artwork.c: * src/itdb_itunesdb.c: * src/itdb_photoalbum.c: * src/itdb_private.h: * src/ithumb-writer.c: get rid of glib-compat.h since we raised the minimum version to 2.8 2007-10-30 Christophe Fergeau Patch from Filippo Giunchedi * src/db-artwork-debug.c: (dump_mhni): another endianness fix 2007-10-29 Christophe Fergeau * src/itdb_artwork.c: * src/ithumb-writer.c: replace // comments with /* */ pairs, fixes compilation on my machine 2007-10-29 Christophe Fergeau Patch from Filippo Giunchedi * src/itdb_artwork.c: add I420 unpacker * src/itdb_device.c: iPod classic full screen photo format is I420 * src/itdb_device.h: add I420 format * src/ithumb-writer.c: add stub for an I420 packer 2007-10-29 Christophe Fergeau * src/itdb_device.c: the iPod Touch probably uses the same image format as the iPhone 2007-10-29 Christophe Fergeau * configure.ac: raise glib requirement to 2.8 (because of g_file_set_contents) 2007-10-29 Christophe Fergeau * configure.ac: remove mremap check * src/db-artwork-writer.c: get rid mmap/mremap use 2007-10-29 Christophe Fergeau * src/db-artwork-writer.c: reread the pointer for memory mapped buffers when it may have changed Artwork writing works by mapping structs to memory and by directly accessing/modifying it. This works until we need to move the mmap base address. This patch makes sure we reset the struct mapping every time the mmap base pointer may have changed 2007-10-27 Jorg Schuler * src/itdb_device.c (ipod_classic_1_artwork_info) src/ithumb-writer.c (pack_RGB_888, pack_RGB_565, pack_RGB_555, pack_rec_RGB_555, ithumb_writer_write_thumbnail) src/db-image-parser.h (_888 definitions) src/itdb_device.h (RGB888 thumb format enum definitions) src/itdb_artwork.c (unpack_RGB_888, unpack_experimental, itdb_thumb_get_rgb_data) Partial support for photos on new iPod Nano 3G and iPod Classics. Photos should be displayed correctly on the iPod but the video output will show garbage (couldn't try video output per se, but from the data iTunes produces this is clear). 2007-10-24 Christophe Fergeau * src/db-artwork-writer.c: (write_mhif), (should_write), (write_mhlf): don't hardcode the number of mhif entries we write, but write as many entries as the number of thumbnail formats supported by the device 2007-10-24 Christophe Fergeau * src/db-artwork-writer.c: (write_mhla): yet another missing endianness conversion 2007-10-24 Christophe Fergeau Patch from Filippo Giunchedi * src/db-artwork-parser.c: (parse_mhba): another missing endianness conversion 2007-10-21 Christophe Fergeau Patch from Filippo Giunchedi * src/db-artwork-debug.c: (dump_mhod_type_3): add missing byte-swap which resulted in over huge allocation 2007-10-21 Christophe Fergeau Patch from Filippo Giunchedi * src/db-artwork-debug.c: (dump_mhba): fix dumping function in debug mode * src/db-itunes-parser.h: indentation fixes 2007-10-21 Christophe Fergeau * src/itdb_photoalbum.c: (itdb_get_photos_dir): * src/ithumb-writer.c: (ipod_image_get_ithmb_filename): 2007-10-16 Todd Zullinger * autogen.sh: add --enable-gtk-doc to the gnome-autogen.sh call. This allows make distcheck to work correctly and to use an unmodified copy of gnome-autogen.sh from the upstream gnome-common package. 2007-10-16 Christophe Fergeau * gnome-autogen.sh: switch to newer version of that file (with automake 1.10 support) 2007-10-09 Christophe Fergeau * src/itdb_device.c: (itdb_device_requires_checksum): add missing (unreachable) return 2007-10-07 Christophe Fergeau * src/itdb_device.c: (itdb_device_requires_checksum): * src/itdb_itunesdb.c: (write_db_checksum): * src/itdb_private.h: add an itdb_device_requires_checksum function so that we only error out because of checksum writing issues on ipods which require a checksum. Ideally, we should restore the old file when there is a fatal checksum writing error, but libgpod isn't currently doing that 2007-10-05 Christophe Fergeau * src/itdb_sha1.c: (generate_key): move cryptic calculations into the precomputed tables. Patch by Simon Schulz. 2007-10-05 Christophe Fergeau * src/itdb_device.c: Remove duplicate reference to ithmb file The iPod classic artwork formats contained two references to an ithmb file using 1060 as its filename. This confuses the ithumb writing code which can't handle that properly. Fixes that for now by removing the entry. We could probably be more clever in itdb_write_ithumb_files and generate two lists of iThumbWriters, one for artwork and another one for photos. This would fix that bug as well 2007-10-05 Christophe Fergeau * src/db-artwork-writer.c: (itdb_track_filter_thumbnails), (itdb_filter_thumbnails), (ipod_write_artwork_db): * src/itdb_track.c: (itdb_track_set_thumbnails_internal): Set thumbnails for all known cover types in itdb_track_set_thumbnails itdb_track_set_thumbnails can be called when the track isn't attached to any device (eg it's natural to create a track, fill its metadata including the cover art, and then add it to an iTunesDB and its associated device). This means we can't know which artwork types the iPod corresponding to the iTunesDB will be able to handle. i Consequently, we create Itdb_Thumb objects for all known cover types, and we filter that list when we don't have a choice (ie when we're about to write the ArtworkDB and the thumbnails) 2007-10-05 Christophe Fergeau * src/itdb_itunesdb.c: (itdb_write_file): set Itdb_Track::id before writing the artwork since artwork writing uses them 2007-10-01 Christophe Fergeau * README.SysInfo: add explanations about how the iPod needs to be set up so that libgpod can read the firewire id 2007-10-01 Christophe Fergeau * src/itdb_itunesdb.c: get rid of unused headers 2007-09-26 Jorg Schuler * src/itdb_itunesdb.c (mk_mhit): write extended mhit header for new iPod Nanos and Classics so they display artwork (Christophe) * src/db-artwork-writer (ipod_artwork_set_ids): modify the assignment of IDs for artwork (Christophe) * src/itdb_device.c: added artwork definition file (cover only) for iPod Nano Videos (3G). Thanks to Simon Schulz. * src/itdb_itunesdb.c: integrate checksum writing into the creation of the iTunesDB instead of modifying the iTunesDB file in place (Christophe) * src/itdb_device.c: re-use artwork definition for iPod classic also for iPod Nanos 3G. 2007-09-30 Christophe Fergeau * src/itdb_itunesdb.c: (itdb_write_checksum): remove debugging g_print 2007-09-30 Christophe Fergeau * src/itdb_device.c: fix typo and don't mark iPod Classic as read-only 2007-09-28 Christophe Fergeau * tools/read-sysinfoextended-sgutils.c: (main): use g_build_filename instead of itdb_resolve_filename since the latter will fail if SysInfoExtended does not already exist 2007-09-27 Christophe Fergeau * configure.ac: build tool to generate the iPod SysInfoExtended file if sgutils is detected * Makefile.am: * tools/ * tools/Makefile.am: changes to optionally build the sgutils-based tool * tools/read-sysinfoextended-sgutils.c: (do_sg_inquiry), (read_sysinfo_extended), (main): new file, reads the SysInfoExtended file from the iPod using SCSI queries 2007-09-27 Christophe Fergeau * src/itdb_itunesdb.c: (calculate_db_checksum), (itdb_write_checksum): * src/itdb_sha1.c: (itdb_compute_hash): * src/itdb_sha1.h: propagate the calculated checksum length as an out parameter to the checksumming functions, fixes a bug where a partial checksum would be written if it contained a \0 * tests/test-checksum.c: (calculate_db_checksum): update test program to that API change 2007-09-26 Jorg Schuler * src/itdb_device.c: remove "read only" notice on Nano Video description. * ChangeLog: explained better about SysInfo* files. 2007-09-24 Jorg Schuler ** code courtesy of Christophe Fergeau ** * src/itdb_itunesdb.c (mk_mhbd): write extended header needed for new iPod Nanos (3G Video) and iPod Classics (must fill in SysInfo or SysInfoFileExtended -- see below). src/itdb_sysinfo.c src/itdb_device.c src/itdb_device.h: Code to parse SysInfoExtended and SysInfo for the FireWireGUID. You must either copy the iPod description XML file to Device/SysInfoExtended or add a line 'FirewireGuid: 000A27....' to Device/SysInfo. You can get your FirewireGuid by looking at /proc/bus/usb/devices and search for a serial number close to the "Apple" entry. The serial number will probably start with 000A27. * src/sha1.c src/sha1.h src/itdb_sha1.c src/itdb_sha1.h New files for obscure hash generation code. * src/Makefile.am: added new files. * tests/test-checksum.c tests/test-fw-id.c tests/Makefile.am: test programs to retrieve the FirewireGuid and calculate/write the obscure hash. 2007-09-15 Jorg Schuler * src/itdb_device.c: Re-organized the representation of iPod models -- instead of 1st to 7th generation more well-known names like "iPod Nano 1G", "iPod Nano 2G"... are used. Added untested support for iPod Classic Artwork. Not clear which thumbnail type is used for what. src/itdb_track.c (itdb_track_set_thumbnails_internal): Please note: itdb_track_set_thumbnails() needs to be thought over to make sure all thumbnail types are added properly. Please see note in itdb_track.c for details. src/itdb.h: Added symbols for the new representation indicated above: ITDB_IPOD_GENERATION_*, ITDB_IPOD_MODEL_* 2007-09-08 Jorg Schuler * src/db-image-parser.c src/itdb_device.c src/ithumb-writer.c src/db-image-parser.h src/itdb_device.h src/itdb.h src/itdb_artwork.c tests/test-covers.c: added support to read and write coverart on iPhones. New cover formats are: MEDIUM, XLARGE, XSMALL, SMEDIUM -- should be renamed if function becomes clearer. Introduced New image formats for the thumbnails (THUMB_FORMAT_RGB555, THUMB_FORMAT_REC_RGB555). Coding/decoding functions are pack_/unpack_RGB_555() and pack_/unpack_REC_RGB_555(). Introduced possible padding for thumbnail files (Itdb_ArtworkFormat). * src/db-artwork-parser.c: make output filename unique. 2007-09-04 Jorg Schuler * itdb_itunesdb.c (itdb_get_control_dir): added support for iPhones * itdb.h: added ITDB_IPOD_MODEL_IPHONE_1 enum * itdb_device.c: added iPhone description TODO: define artwork definition in itdb_device.c -- currently artwork is not supported. 2007-08-18 Jorg Schuler * src/db-artwork-writer.c (write_mhod_type_3): don't assume that length of a utf16 string is twice the length of a utf8 string (even though this was safe here because the strings in question were ASCII). Thanks to Javier Kohen for the patch. (write_mhod_type_1), (write_mhod_type_3): Don't pad by 4 bytes as this achieves nothing. Thanks to Javier Kohen to point this out. * src/itdb_itunesdb.c: make calls to utf16_strlen() unnecessary. Thanks to Javier Kohen for the patch. * src/itdb_itunesdb (itdb_parse): don't call ipod_parse_artwork_db() if iTunesDB was not read successfully. * src/itdb_artwork.c (itdb_thumb_get_filename): check returnvalue of strchr(). Thanks to Javier Kohen. 2007-08-07 Nicholas Piper * bindings/python/gpod.i.in: Return an integer for time_t (note, no to/from mac timestamp mapping required), accept an integer or datetime object for a time_t * bindings/python/ipod.py (Track.__getitem__): for the Python OO interface, map reading time_* attributes in Tracks to a datetime object * bindings/python/tests/tests.py (TestiPodFunctions.testDatestampSetting): test reading/writing the Track timestamp attributes 2007-08-04 Todd Zullinger * src/db-parse-context.h: remove duplicate copyright header 2007-07-31 Todd Zullinger * bindings/python bindings/python/examples/coverart_fetch.py bindings/python/examples/save_photos.py bindings/python/gpod.i.in bindings/python/ipod.py bindings/python/tests bindings/python/tests/resources/tiny.png bindings/python/tests/tests.py configure.ac m4/python.m4 TROUBLESHOOTING: merge changes from the bug-1723660 branch * bindings/python/ipod.py: ignore reserved (and chapterdata) attributes which are returned as gpointers cleanup some trailing whitespace 2007-07-27 Todd Zullinger * bindings/python/gpod.i.in: s/top_srcdir/top_builddir to fix make distcheck * configure.ac m4/python.m4: don't make the python gtk module a hard requirement * TROUBLESHOOTING: note additional requirements for full python photo/thumbnail support 2007-07-13 Nicholas Piper * bindings/python/ipod.py (Track.set_coverart_from_file): Rename set_thumbnail function to set_coverart_from_file * bindings/python/ipod.py Improve support for adding Photos. Thanks to John Carr. * bindings/python/examples/coverart_fetch.py: Adjust to demonstrate new gtk pixbuf based coverart API 2007-07-13 Todd Zullinger * bindings/python/examples/Makefile.am: add save_photos.py to EXTRA_DIST 2007-07-12 Jorg Schuler * po/ro.po: nobody told me I forgot to actually add this file to the repository... 2007-07-12 Nicholas Piper * bindings/python/gpod.i.in: Add version and version_info attributes to the Python bindings 2007-07-11 Todd Zullinger * bindings/python/Makefile.am: try to convert the xml docs into python docstrings even when ENABLE_GTK_DOC isn't set so that tarball builds can get the full documentation in python. 2007-07-07 Jorg Schuler * configure.ac po/ro.po: added Romanian catalog. Thanks to Alex Eftimie. 2007-07-05 Todd Zullinger * configure.ac: s/PACKAGE_/LIBGPOD_/ in configuration output * src/itdb.h: remove references to Mac type timestamps * README docs/reference/tmpl/itunesdb-db.sgml: fix a few typos 2007-07-04 Todd Zullinger * po/fr.po: updated French translation (thanks to Eric Lassauge) 2007-07-02 Todd Zullinger * TROUBLESHOOTING: python bindings now use the mutagen module instead of eyeD3 2007-06-29 Jorg Schuler * po/libgpod.pot: added to SVN repository (new translators may be looking for it -- like yesterday). * po/*.po: run 'make update-po'. 2007-06-29 Todd Zullinger * bindings/python/tests/Makefile.am: include tests.py in EXTRA_DIST 2007-06-29 Jorg Schuler * src/itdb_artwork.c (itdb_thumb_free, itdb_thumb_duplicate): fix compile time error when compiling without GDKPIXBUF. Alternative fix: add '#include '. Thanks to Olivier Crête. 2007-06-28 Nicholas Piper * bindings/python/ipod.py: Remove hard-coding of Track/Artwork/Album attributes 2007-06-23 Todd Zullinger * configure.ac: bump version to 0.5.3SVN for further development * configure.ac: bump version for 0.5.2 release 2007-06-23 Jorg Schuler * src/itdb_itunesdb.c (mhod52_make_collate_keys): ignore empty sort strings -- fixes multiple display of same album on the iPod. 2007-06-18 Jorg Schuler * TROUBLESHOOTING: comment concerning namespace cleanup 2007-06-17 Todd Zullinger * configure.ac: bump version and soname for 0.5.0 release * libgpod-1.0.pc.in: add glib version and gobject-2.0 to 'Requires:' 2007-06-17 Jorg Schuler * src/itdb_itunesdb.c src/itdb.h: libgpod will not change the values for sort_artist. Furthermore, libgpod reads the stored values of sort_artist/_album... from the iTunesDB and makes them available through the Itdb_Track structure. Applications should modify these values along with the corresponding artist/album... fields if a particular sort order is required. * src/itdb.h: corrected description for "BPM" (beats per minute) 2007-06-14 Jorg Schuler * po/es.po: new version updated by Alejandro Lamas Daviña. 2007-06-11 Jorg Schuler * po/ja.po po/sv.po po/it.po: Changed license to "same as gtkpod" to "same as libgpod" after consulting with translators. Waiting for response from the Hebrew and Spanish translators. 2007-06-02 Daniele Forsi * po/it.po: updated Italian translation 2007-05-27 Jorg Schuler * src/db-artwork-parser.c (parse_mhba): non-zero terminated string was copied using g_strdup() instead of g_strndup(). This affected album names of the Photo Database. src/db-artwork-writer.c (write_mhod_type_1): convert 'type' as 16 bit integer, not 32 bit integer. Potential problem on non-standard endian system (iPod side). src/db-itunes-parser.h: '#if 0' unused structure to avoid confusion. * src/itdb_photoalbum.c (itdb_photodb_parse): return a valid photodb structure including the main Photo Library album if no database existed, analogous to itdb_photodb_create(). Without this the test-photos script won't work as expected and other applications also would have to add extra checks for presence of the main Photo Libarary. 2007-05-30 Todd Zullinger * bindings/python/tests/resources/iTunes/iTunesDB.ext docs/reference/libgpod-docs.xml docs/reference/tmpl/photodb.sgml m4/python.m4: change CVS references and links to SVN 2007-05-27 Jorg Schuler * src/db-artwork-parser.c src/db-artwork-writer.c src/itdb_device.c src/itdb_itunesdb.c src/itdb_private.h: Fixed segfault when parsing photo databases introduced by the new handling of timestamps (all timestamps exported are host-local time_t). itdb_time_time_t_to_mac() and itdb_time_mac_to_time_t() were renamed to device_*() and take a pointer to an Itdb_Device instead of a pointer to an Itdb_iTunesDB structure as the latter does not exist in case of photo databases. All references to those two functions were changed accordingly and the functions themselves were moved from itdb_itunesdb.c to itdb_device.c. 2007-05-23 Todd Zullinger * src/itdb_itunesdb.c (get_playlist): fix a potential crasher (Raymond Walsh) 2007-05-19 Jorg Schuler * src/itdb_itunesdb.c (playcounts_init): C&P error stat'ing the wrong file. Thanks to Raymond Walsh. * src/itdb_device.c (itdb_set_sysinfo): Corrected comment. Thanks to Daniele Forsi. 2007-05-17 Jorg Schuler * src/itdb.h: warning about adding string fields src/itdb_track_duplicate: duplicate new string fields (sort_*). Thanks to Raymond Walsh. 2007-05-10 Jorg Schuler * TROUBLESHOOTING: added a note about the 'padding[]' incompatibility with older versions of gcc. 2007-05-12 Todd Zullinger * bindings/python/gpod.i.in: treat time_t as long * docs/reference/Makefile.am docs/reference/libgpod-sections.txt docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-lowlevel.sgml docs/reference/tmpl/itunesdb-time.sgml docs/reference/tmpl/libgpod-unused.sgml docs/reference/tmpl/smart-playlists.sgml src/itdb_itunesdb.c src/itdb.h: Minor documentation cleanups. 2007-05-10 Jorg Schuler * src/itdb_itunesdb.c: remove non-sense check (itdb != NULL) when itdb can never be NULL. Thanks to Raymond Walsh. 2007-05-07 Jorg Schuler * src/itdb_artwork.c src/itdb_itunesdb.c tests/test-photos.c: Corrected some typos. Thanks to Daniele Forsi. * src/itdb_itunesdb.c: Fix for 64 bit systems: don't show "last played" data as played in the last century... Thanks to Christophe. 2007-05-06 Jorg Schuler * src/itdb_itunesdb.c src/itdb_device.c src/itdb_private.h src/itdb.h: New API functions to facilitate copying to the iPod in a background thread and implementation of own copying code. itdb_cp_get_dest_filename(): obtain a valid filename on the iPod to where a track can be copied. This function can be used in a thread-safe way. itdb_cp_finalize(): to be called after the track was copied to the iPod to update some fields in the Itdb_Track structure. This function can also be used in a thread-safe way. You can use the already existing function itdb_cp() to copy a track to the iPod and itdb_cp_track_to_ipod() remains available unchanged in functionality. 2007-05-01 Jorg Schuler * src/itdb_itunesdb.c (itdb_cp_track_to_ipod): removed static variable "dir_num" which was initialized once and cycled through for each track transfered. This doesn't seem right since different iPods with different number of music directories may be connected at the same time, and itdb_cp_track_to_ipod() may be called for different iTunesDBs at the same in in a threaded environment. Since there is no inherent value in cycling through the directories, a random directory is selected each time. 2007-04-30 Jorg Schuler * src/itdb_itunesdb (itdb_parse_internal): fixed compile warning (thanks to Daniele Forsi). * tests/test-ls.c (display_recently_played): fixed compile warning (thanks to Daniele Forsi). * tests/get-timezone.c: added to CVS (thanks to Daniele Forsi). * src/itdb_playlist.c (compMostOftenPlayed, compLeastOftenPlayed): compaered time_added instead of playcount (thanks to Daniele Forsi). 2007-04-28 Jorg Schuler * src/itdb.h: added padding to exported structures so new entries can be added without loosing backward run-time compatibility. * docs/reference/tmpl/track.sgml src/itdb.h src/itdb_itunesdb.c src/itdb_track.c: Added the following fields to Itdb_Track: sort_artist sort_title sort_album sort_albumartist sort_composer sort_tvshow These fields can (theoretically) be used to force a certain sort order on the iPod when displaying by artist, album... Even though these fields are present in the iTunesDB, they are discarded when reading the iTunesDB and applications must always set them before writing the iTunesDB again. This is to avoid that the fields 'artist' and 'sort_artist' accidentially get out of sync. libgpod will automatically create a sort_artist key for you if artist is of the type 'The Artist' and sort_artist is not set. The sort key used in that case is 'Artist, The' (followed by five time 0x01), even though sort_artist itself will not be touched. 2007-04-27 Jorg Schuler * src/itdb.h src/itdb_itunesdb.c src/itdb_playlist.c src/itdb_private.h bindings/python/gpod.i.in bindings/python/gpod_doc.i.in docs/reference/libgpod-sections.txt docs/reference/tmpl/libgpod-unused.sgml docs/reference/tmpl/smart-playlists.sgml: Namespace cleanup. Applications supporting smart playlists will have to be adapted. The following changes were implemented to make sure all exported symbols start with ITDB or Itdb: structs: SPLPref -> Itdb_SPLPref SPLRules -> Itdb_SPLRules SPLRule -> Itdb_SPLRule SPL_* -> ITDB_SPL_* enums, #defines: LIMITTYPE_* -> ITDB_LIMITTYPE_* LIMITSORT_* -> ITDB_LIMITSORT_* SPLMATCH_* -> ITDB_SPLMATCH_* SPLACTION_* -> ITDB_SPLACTION_* SPLFIELD_* -> ITDB_SPLFIELD_* SPLDATE_IDENTIFIER -> ITDB_SPL_DATE_IDENTIFIER splft_* -> ITDB_SPLFT_* splat_* -> ITDB_SPLAT_* enum SPLAction -> ItdbSPLAction enum SPLActionType -> ItdbSPLActionType enum SPLField -> ItdbSPLField enum SPLFieldType -> ItdbSPLFieldType enum ItdbLimitType (new) enum ItdbLimitSort (new) enum ItdbSPLMatch (new) removed SPL_MAXSTRINGLENGTH (use ITDB_SPL_STRING_MAXLEN) * docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-time.sgml docs/reference/tmpl/libgpod-unused.sgml docs/reference/tmpl/track.sgml src/db-artwork-parser.c src/db-artwork-writer.c src/db-itunes-parser.h src/itdb.h src/itdb_device.c src/itdb_device.h src/itdb_itunesdb.c src/itdb_private.h tests/Makefile.am: Christophe's patch for automatic correction of timestamps depending on which timezone the iPod is set to. ATTENTION DEVELOPERS: as a consequence all exported timestamps are no longer guint32 mac-type timestamps but standard time_t timestamps. This also includes the 64 bit timestamps in smart playlists. The following functions are therefore no longer needed and are deprecated: itdb_time_mac_to_host(), itdb_time_host_to_mac(): simply return the argument without changing it. Argument and return value are now both of type 'time_t'. itunesdb_time_get_mac_time(): returns the seconds passed since Epoch in seconds and is equivalent to time(NULL). These functions may be removed in a future version of libgpod. Programs linking to libgpod may need to be changed slightly if they made any assumptions on the type of timestamps used. This should be obvious through compile-time warnings. tests/test-ls.c: print a list of recently played tracks. 2007-04-15 Todd Zullinger * bindings/python/ipod.py: use the mac-style path for filename_ipod in the extended info file, like gtkpod does 2007-04-14 Christophe Fergeau * src/itdb_device.c: add itdb_device_supports_artwork and idb_device_supports_photo functions * docs/reference/tmpl/device.sgml: update api doc * src/itdb_itunesdb.c: don't try to write artwork database if the iPod model doesn't support artwork. 2007-04-08 Jorg Schuler * src/itdb.h: changed 'gchar *chapterdata' to 'gpointer chapterdata' with note that chapterdata is not yet supported. * src/itdb_track.c (itdb_track_duplicate): arrange the strings in the same order as in Itdb_Track for easier error-checking. 2007-03-26 Nicholas Piper * bindings/python/Makefile.am bindings/python/tests/Makefile.am bindings/python/tests/tests.py: Causes tests to run with the libraries from the build tree rather than currently installed version (Todd Zullinger) 2007-03-26 Nicholas Piper * bindings/python/gpod.i.in: Add basic PhotoDB reading facility 2007-03-25 Jorg Schuler * src/itdb_itunesdb.c: streamline MHOD52 patch (remove mk_mhod52() and let mk_mhod() handle the sorting of mhod52 directly). 2007-03-23 Jorg Schuler * src/itdb_itunesdb.c: Write out MHOD52 hunks after master playlist. This speeds up the iPod interface when browsing titles or albums etc. because the iPod won't have to sort through the track list. 2007-03-22 Jorg Schuler * src/itdb_itunesdb.c (write_playlist): corrected what is written into the mhyp header according to the iTunesDB wiki (mhod count / libmhod count) 2007-03-21 Jorg Schuler * src/itdb_artwork.c (itdb_artwork_remove_thumbnail): memory used by thumbnail to be removed will be freed now. ATTENTION: this changes the previous API description that stated that the thumbnail will not be freed. This behaviour was inconsistent with all other _remove functions in libgpod and caused a memory hole. * src/itdb_itunesdb.c (itdb_cp_track_to_ipod): cast filename extension to lowercase because some people reported new iPod models choking on filenames with uppercase extensions like test.MP3. Not sure if it helps, though. * src/itdb.h src/itdb_artwork.c src/itdb_photoalbum.c src/itdb_track.c src/ithumb-writer.c: Added new API functions: itdb_photodb_add_photo_from_pixbuf function(), itdb_track_set_thumbnails_from_pixbuf() and itdb_artwork_add_thumbnail_from_pixbuf(). Thanks to Christophe Fergeau. * docs/reference/libgpod-sections.txt: added descriptions by Christophe Fergeau. 2007-03-02 Todd Zullinger * bindings/Makefile.am: only descend into the python subdir if HAVE_PYTHON is set, this avoids some problems with the Makefiles created by automake 1.7 2007-02-27 Todd Zullinger * INSTALL_CVS docs/reference/Makefile.am: build docs when creating tarballs * docs/reference/libgpod-sections.txt: include missing and newly added declarations, remove unused declarations * configure.ac m4/python.m4: allow the use of nicer version strings in AM_CHECK_PYMOD 2007-02-25 Jorg Schuler * src/itdb.h src/itdb_itunesdb.c src/itdb_playlist.c: introduced splft_binary_and as separate field type as this will simplify handling in applications. * src/itdb_itunesdb.c (get_mhod, mk_mhod): replaced if()... with a switch()... to catch changes made to SPLFieldType more easily. * src/itdb.h: introduced Itdb_Mediatype enum. 2007-02-24 Jorg Schuler * src/db-itunes-parser.h src/artwork-writer.c: Set unknown2 of mhfd header to 2 instead of 1, otherwise iTunes7 wipes the ArtworkDB. * src/itdb.h src/itdb_itunesdb.c src/itdb_playlist.c: Updated smart playlist handling to recognize album artist, tv show, last skipped, season number, skipcount and video kind fields. * src/itdb_itunesdb.c (get_mhod): don't skip unknown action types in smart rules to avoid writing illegal smart playlist rules corrupting the iTunesDB in the process. 2007-02-09 Jorg Schuler * ChangeLog INSTALL_CVS configure.ac bindings/python/gtkpod.py bindings/python/ipod.py bindings/python/examples/add_song.py bindings/python/examples/create_mp3_tags_from_itdb.py: updates and fixes from Nicholas Piper. 2007-02-11 Nicholas Piper * bindings/python: Corrections to text encoding in the extended database and switch to python-mutagen from python-eyeD3 Thanks to Stalwart for his help clearing up handling broken filenames. 2007-02-09 Jorg Schuler * src/ithumb-writer.c: reduced maximum size for ithmb files from 500 MB to 256 MB after reports of slow iPod interface behavior. 2007-01-18 Jorg Schuler * src/itdb.h src/itdb_itunesdb.c (itdb_cp_track_to_ipod): changed declaration of 'filename' from "gchar *" to "const gchar *". 2007-01-16 Jorg Schuler * po/fr.po: updated French catalog -- thanks to Éric Lassauge 2007-01-15 Jorg Schuler * configure.ac: bumped version to 0.4.3-CVS for further development * configure.ac: bumped version to 0.4.2 for release * po/sv.po: updated Swedish catalog -- thanks to Stefan Asserhall * po/ja.po: updated Japanese catalog -- thanks to Kentaro Fukuchi * po/de.po: updated German catalog * .cvsignore po/.cvsignore tests/.cvsignore: updated with additional files to ignore. * bindings/.cvsignore: bindings/python/.cvsignore bindings/python/examples/.cvsignore bindings/python/docs/.cvsignore docs/.cvsignore docs/reference/.cvsignore m4/.cvsignore: created new ignore files * tests/test-photos.c: change "error" to "warning" in warning message. * INSTALL_CVS: TROUBLESHOOTING: short note about the python packages required to build the python bindings. * Makefile.am: added TROUBLESHOOTING to EXTRA_DIST 2007-01-15 Todd Zullinger * Makefile.am bindings/python/Makefile.am bindings/python/__init__.py bindings/python/gpod.i.in bindings/python/gpod_doc.i.in bindings/python/gtkdoc-to-swig.xsl bindings/python/gtkpod.py bindings/python/ipod.py: add builtin documentation to the python bindings using the gtk-docs for all of the wrapped libgpod functions (with much help from Nicolas Piper) * bindings/python/gtkpod.py: fix encoding issue in write_pair() (Nicolas Piper) handle gtkpod extended info files with either md5_hash or sha1_hash fields (Nicolas Piper) * bindings/python/ipod.py: ensure the db object doesn't get garbage collected at the wrong time (Nicolas Piper) 2007-01-14 Jorg Schuler * tests/test-photos.c: src/itdb_photoalbum.c: fixed two typos in message strings. * po/es.po: updated Spanish catalog -- thanks to Alejandro Lamas Daviña * po/*.po: run 'make update-po' * src/itdb_itunesdb.c: added instructions on how to add new string fields like 'tvepisode', 'tvshow' without forgetting half of the places that need to be touched. 2007-01-13 Todd Zullinger * bindings/python/Makefile.am: don't include any swig built files in the tarballs. s/SWIG_SOURCES/SWIG_INTERFACES/ to avoid a warning from automake about unused sources. * src/itdb_itunesdb.c: add a few more MHOD types that Jorg suggested * src/itdb_track.c: add more tv show fixes from Mario Rossi. add missing albumartist and keywords pointed out by Jorg. 2007-01-12 Todd Zullinger * src/itdb_itunesdb.c: TV shows patch from Mario Rossi * bindings/python/Makefile.am: fix more make distcheck issues 2007-01-11 Todd Zullinger * README docs/reference/libgpod-docs.xml docs/reference/libgpod-sections.txt docs/reference/tmpl/artwork.sgml docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-db.sgml docs/reference/tmpl/itunesdb-lowlevel.sgml docs/reference/tmpl/photodb.sgml docs/reference/tmpl/track.sgml src/itdb.h src/itdb_photoalbum.c: Add PhotoDB functions to the docs. Incorporate usage overviews from README into the docs. Fix a few doc comments to allow gtk-doc to parse them. 2007-01-10 Jorg Schuler * bindings/python/Makefile.am: correct 'make dist' failure (patch by Todd Zullinger) * docs/reference/libgpod-docs.xml docs/reference/libgpod-sections.txt docs/reference/tmpl/Internal.sgml docs/reference/tmpl/artwork.sgml docs/reference/tmpl/device.sgml docs/reference/tmpl/itunesdb-copying.sgml docs/reference/tmpl/itunesdb-db.sgml docs/reference/tmpl/itunesdb-lowlevel.sgml docs/reference/tmpl/itunesdb-time.sgml docs/reference/tmpl/playlists.sgml docs/reference/tmpl/smart-playlists.sgml docs/reference/tmpl/track.sgml src/itdb.h src/itdb_device.c src/itdb_itunesdb.c src/itdb_photoalbum.c: applied Todd Zullinger's patch fixing warnings when building the documentation. 2007-01-09 Jorg Schuler * src/pixmaps.c src/pixmaps.h: New files containing last-resort pixmap in case thumbnail/photo could not be added. Will not produce code if the gdk-pixubf library is not present. * src/ithumb-writer.c: use above pixmap instead of red canvas. * src/Makefile.am: added pixmaps.[ch] * src/itdb.h src/itdb_itunesdb.c: added tvshow, tvepisode, tvnetwork, albumartist, keywords, reseved to Itdb_Track. 'reserved' can later be used to support 'Artist, The'. 2007-01-08 Jorg Schuler * README: updated information about photo support * po/fr.po: updated French catalog (thanks to Eric Lassauge) * src/itdb.h: added 2 pointers for future extension to Itdb_Playlist (MHOD100). 2007-01-06 Jorg Schuler * tests/Makefile.am: cleanup * src/itdb.h src/itdb_itunesdb.c: renamed unk156 to skipcount and unk160 to last_skipped. Added unk244, gapless_data, unk252, gapless_track_flag, gapless_album_flag, recent_skipcount. Added handling of skipcount and last_skipped to playount file handling. * src/itdb_private.h: added skipcount and last_skipped to struct playcount. 2007-01-04 Todd Zullinger * configure.ac gnome-autogen.sh bindings/python/Makefile.am docs/reference/libgpod-overrides.txt docs/reference/Makefile.am: fix make distcheck, minor automake cleanups. * bindings/python/gpod.i bindings/python/gpod.i.in: rename gpod.i -> gpod.i.in. it is now generated by autoconf. 2006-11-26 Jorg Schuler * src/ithumb-writer.c (ithumb_writer_write_thumbnail): handle corrupted image data in a way that does not crash libgpod nor causes the ArtworkDB or PhotoDB to be corrupted. Currently a completely red pixmap is created as a substitute. Somewhat more artistic than I am may want to create a "corrupted image data" pixmap we can imbed into the code. * src/itdb_artwork.c (itdb_thumb_get_gdk_pixbuf): fix failed assertion when image data is illegal. 2006-11-24 Jorg Schuler * src/itdb.h src/itdb_photoalbum.c (itdb_photodb_add_photo, itdb_photodb_add_photo_from_data, itdb_photodb_photoalbum_add_photo): add 'position' where photo should be inserted. * tests/test-photos.c: implemented new API (append at the end). * src/itdb.h src/itdb_itunesdb.c: removed mhodcount and libmhodcount from Itdb_Playlist as these are only used internally and reset during syncing. 2006-11-23 Jorg Schuler * When adding photos to the iPod the user may or may not want to rotate the picture shown on the iPod screen, for example deending on EXIF rotation value. This can now be achieved by passing a new parameter 'rotation' to itdb_photodb_add_photo() or itdb_photodb_add_photo_from_data(). (Valid values: 0, 90, 180, 270, rotation is counter-clockwise). These two functions now also accept a GError pointer. As a consequence Itdb_Thumb had to be extended with a field for the rotation value and itdb_artwork_add_thumbnail have been extended to accept @rotation and @error as well. The actual rotation is carried out in ithumb-writer.c/ithumb_writer_write_thumbnail() using gdk_pixbuf_rotate_simple() and require gdk-pixbuf V2.6 or higher. In contrast, itdb_track_set_thumbnails() and itdb_track_set_thumbnails_from_data have been left unchanged, even though they could be extended to accept @rotation and @error easily. Please let me know if this is wanted. * configure.ac src/itdb.h src/itdb_artwork.c src/itdb_photoalbum.c src/itdb_track.c src/ithumb-writer.c: implemented changes outlined above. * tests/test-photos.c: added @rotation and @error to the itdb_photodb_add_photo() call. 2006-11-12 Jorg Schuler * ithumb-writer.c (itdb_write_ithumb_files): ITDB_THUMB_PHOTO_TV_SCREEN type thumbnails were not "rearranged" (i.e. deleted photos were not removed). (ipod_image_get_ithmb_filename, ithmb_writer_write_thumbnail): changed "F%u04_%d.ithmb" to "F%d_%d.ithmb" as this format string is used by the iPod. NEW: start new thumbnail file F%d_2/3/4... if the size of the current thumbnail file is larger than ITHUMB_MAX_SIZE (currently 500 MB). Existing thumbnail files with a length larger than this will NOT be truncated. Patches are welcome (probably add code at the end of ithumb_rearrange_thumbnail_file()) :-) * itdb_artwork.c: added support for UYVY format for iPod Video and iPod Photo TV output. Code adapted from the GPixPod project. (itdb_thumb_get_byteorder): return the byte order for the current thumbnail (internal function). * itdb_device.[hc]: added thumbnail storage format to the Itdb_ArtworkFormat image information. Currently the following are defined: THUMB_FORMAT_UYVY THUMB_FORMAT_RGB565_LE THUMB_FORMAT_RGB565_BE THUMB_FORMAT_RGB565_BE_90 THUMB_FORMAT_RGB565_LE_90 THUMB_FORMAT_RGB565_LE_90 does not appear to be used by any iPod model. THUMB_FORMAT_RGB565_BE_90 is used for full screen iPod Photo photos but currently is handeled the same as THUMB_FORMAT_RGB565_BE pending input from iPod Photo users. * ithumb-writer.c: added support for UYVY format for iPod Video and iPod Photo TV output. Code adapted from the GPixPod project. 2006-11-11 Jorg Schuler * itdb.h: Itdb_Artwork: - added unk028, unk036 and rating - added digitized_data timestamp - changed creation_date from gint32 to guint32 * db-itunes-parser.h: db-artwork-debug.c: MhiiHeader: - renamed unknown5 to rating - renamed digitised_date to digitized_date for conformity * db-artwork-writer.c (write_mhli): sanity check to avoid access of NULL pointer. (write_mhii): write unk028, rating, unk036, digitized_data * db-artwork_parser.c (parse_mhii): - parse unk028, rating, unk036, digitized data. - unified reading of DB_TYPE_PHOTO and DB_TYPE_ITUNES, got rid of parse_mhod() and parse_mhni(). 2006-11-08 Jorg Schuler * itdb.h: itdb_itunesdb.c: itdb_track.c: renamed some formerly unknown Itdb_Track entries and added comments: - unk184->pregap - samplecount: guint32 -> guint64. - unk192->(removed) - unk200->postgap - unk208->mediatype - unk212->season_nr - unk216->episode_nr 2006-10-29 Jorg Schuler * src/itdb_photoalbum.c: fixed typo (Libarary -> Library). * configure.ac, src/Makefile.am: new soname versioning scheme. Thanks to Todd Zullinger and Frank Lichtenheld. 2006-10-29 Jorg Schuler Major rework of picture support. * src/db-artwork-parser.c, src/db-artwork-writer.c, src/itdb.h, src/db-itunes-parser.h: renamed 'master' to 'album_type' in MhbaHeader and Itdb_PhotoAlbum. * src/db-artwork-parser.c, src/db-artwork-writer.c, src/itdb_photoalbum.c: Itdb_Photoalbum->members are now pointers to the corresponding Itdb_Artwork instead of image_ids. * src/itdb_photoalbum.c: album_ids and image_ids are set just before writing the PhotoDB in itdb_photodb_write(). * src/itdb_photoalbum.c: new interface, basically use as follows: itdb_photodb_parse(): Read an existing PhotoDB. itdb_photodb_create(): Create a new Itdb_PhotoDB structure. The Photo Library Album is (first album) is created automatically. itdb_photodb_add_photo(), itdb_photodb_add_photo_from_data(): Add a photo to the PhotoDB (from file or from a chunk of memory). It is automatically added to the Photo Library Album (first album), which is created if it does not exist already. itdb_photodb_photoalbum_craete(): Create and add a new photoalbum. itdb_photodb_photoalbum_add_photo(): Add a photo (Itdb_Artwork) to an existing photoalbum. itdb_photodb_photoalbum_remove(): Remove an existing photoalbum. Pictures can be kept in the Photo Library or automatically removed as well. itdb_photodb_remove_photo(): Remove a photo either from a photoalbum or completely from the database. itdb_photodb_write(): Write out your PhotoDB. itdb_photodb_free(): Free all memory taken by the PhotoDB. itdb_photodb_photoalbum_by_name(): Find the first photoalbum with a given name. * src/itdb_playlist.c (itdb_playlist_add, itdb_playlist_add_track): src/itdb_track.c (itdb_track_add): simplify code by using g_list_insert(). * tests/test-photos.c: change to new interface, add new commands 'list' to list photo IDs in the database, 'remove' to remove IDs from an album or the iPod, or remove entire photoalbums from the iPod. * src/db-itunes-parser.h: added comments to _MhbaHeader definition. Added additional functionality for photo albums * src/db-artwork-parser.c src/db-artwork-writer.c src/db-itunes-parser.c: src/itdb.h: added additional fields to MhbaHeader and Itdb_PhotoAlbum (playmusic, repeat, random, show_titles, transition_direction, slide duration, transition_duration, unk024, unk028, unk044, unk048, song_id. These fields are read and written from the PhotoDB now. Also corrected error for "album type" which was read and written as int32 even though it was a int8. Removed num_images from Itdb_PhotoAlbum -- instead count images at time of writing. 2006-10-02 Jorg Schuler * tests/Makefile.am tests/test-init-ipod.c: fix compilation error when building with --disable-gdk-pixbuf. Thanks to David Philippi and Christophe Fergeau. 2006-09-26 Jorg Schuler * po/sv.po: updated version by Stefan Asserhall 2006-09-24 Jorg Schuler * po/es.po: updated version by Alejandro Lamas Daviña * configure.ac: bumped to 0.4.0 for release * configure.ac: bumped to 0.4.1 as new CVS version 2006-09-23 Jorg Schuler * src/itdb.h: explain 'checked' field in Itdb_Track declaration * src/itdb_playlist.c (itdb_spl_update): in SPLs with 'match checked tracks only" set, all unchecked tracks were matched. 2006-09-21 Jorg Schuler * src/itdb_itunesdb.c: time_added and time_modified where interchanged. * src/itdb_device.c: changed number of directories for 6G 8GB iPod Nano to 14 after user report. * src/ithumb-writer.c: removed re-using of thumbnail data in order to avoid incompatibility with iTunes (even though our way was more efficient...) 2006-09-18 Jorg Schuler * src/itdb.h src/itdb_artwork.c: added itdb_artwork_add_thumbnail_from_data(). * src/itdb.h src/itdb_track.c: added itdb_track_set_thumbnails_from_data(). * src/itdb.h src/itdb_photoalbum.c: added itdb_photodb_add_photo_from_data(). * src/itdb_artwork.c (itdb_thumb_get_gdk_pixbuf): added support to retreive thumbnail from raw data instead of file. * src/ithumb-writer.c (ithumb_writer_write_thumbnail): added support to write thumbnail from raw data instead of file. 2006-09-17 Jorg Schuler * src/itdb.h src/itdb_device.c: added definitions for new sixth generation iPod Videos, iPod Nanos and iPod Shuffle. 2006-08-21 Jorg Schuler * tests/test-ls.c: added option to list contents of local repository and specified playlist. Thanks to Richard Hyde for the patch. 2006-08-18 Jorg Schuler * src/db-artwork-writer.c (ipod_buffer_grow_file): printf(3) type warnings caused compile error with FreeBSD 6.0-stable/GCC 3.4.4. Thanks to Mike Heffner for the patch. 2006-07-08 Jorg Schuler * src/itdb_itunesdb.c (itdb_write): don't crash if error == NULL (SF tracker bugs item #1519048) 2006-07-02 Jorg Schuler * src/itdb_itunesdb.c (itdb_init_ipod): only write iTunesSD (shuffle database) when initializing shuffle. Thanks to James Joyce for the patch. 2006-06-28 Jorg Schuler * src/itdb_itunesdb.c (wcontents_write): added g_strerror in error messages. 2006-06-27 Jorg Schuler * src/itdb_device.c: fixed endianness autodetection for big endian mobile phones. Thanks to Rached Ben Mustapha for the patch. 2006-06-24 Jorg Schuler * src/itdb_itunesdb.c src/itdb.h: Added itdb_get_itunessd_path (). itdb_init_ipod() will no longer overwrite existing iTunesDB and iTunesSD. 2006-06-10 Jorg Schuler * src/itdb_device.c (itdb_device_get_ipod_info): compare more than 4 characters of iPod model if the stored model number is more than 4 characters long. 2006-06-07 Jorg Schuler * src/itdb.h src/itdb_device.c: Added itdb_device_write_sysinfo() and itdb_device_set_sysinfo(). * src/itdb_itunesdb.c (itdb_create_directories): Use functions introduced above. (itdb_write): Write SynsInfo file when writing the iTunesDB if SysInfo hash has been changed by application. * src/itdb_device.[ch]: mark sysinfo hash as changed/unchanged. * src/itdb_photoalbum.c (itdb_photodb_write): Write SynsInfo file when writing the iTunesDB if SysInfo hash has been changed by application. 2006-06-05 Jorg Schuler * src/db-artwork-parser.h src/db-artwork-parserc (ipod_supports_cover_art): made available G_GNUC_INTERNAL. Added ipod_supports_photos(). * src/itdb_itunesdb.c (itdb_create_directories): Create Photos directory. * src/itdb.h src/itdb_device.c Rename itdb_info_get_ipod_model_name() -> itdb_info_get_ipod_model_name_string() itdb_info_get_ipod_generation_name() -> itdb_info_get_ipod_generation_string() * src/itdb_itunesdb.c (itdb_create_directories): add space after ":" when writing SysInfo file, only write SysInfo file if model_number was given, write original model number, not abbreviated model number from info->model_number. 2006-06-04 Jorg Schuler * src/db-image-parser.c src/itdb_artwork.c src/itdb_device.c src/itdb_photoalbum.c src/itdb_track.c src/ithumb-writer.c: Phased out private IPOD_COVER_SMALL... enum in favor of identical public enum "ItdbThumbType" ITDB_THUMB_COVER_SMALL... * src/db-image-parser.c (ipod_image_new_from_mhni): Accept all thumbnail types we know about (i.e. type != -1). * src/db-artwork-debug.h src/db-artwork-parser.h src/db-image-parser.h src/db-parse-context.h src/glib-compat.h src/itdb_endianness.h: Added CVS "$Id:" line, added copyright notices where missing, added explanations to itdb_endianess.h ;-) * src/itdb_itunesdb.c src/itdb_track.c src/itdb_device.c src/itdb_device.h Made naming consistent and suitable for export: Itdb_IpodModel -> Itdb_IpodInfo ipod_model_table -> ipod_info_table itdb_device_get_model_info() -> itdb_device_get_ipod_info() MODEL_TYPE_... -> ITDB_IPOD_MODEL_... nth_GENERATION -> ITDB_IPOD_GENERATION_nth Exported Itdb_IpodModel, Itdb_IpodGeneration, Itdb_IpodInfo, itdb_device_get_ipod_info(). * src/itdb_device.c: new API: itdb_info_get_ipod_info_table(), itdb_info_get_ipod_model_name() * src/itdb.h src/itdb_artwork.c: Removed unused field ->type in Itdb_Artwork and corresponding enum ItdbArtworkType. 2006-06-03 Jorg Schuler * src/itdb_artwork.c (itdb_thumb_get_gdk_pixbuf): handle thumbnail padding correctly -- who would have thought that iTunes indicates _negative_ padding at times... Please use the test-photos program to check out whether or not your photos show up correctly without black bars or funny colors. * src/db-artwork-writer.c src/db-image-parser.c src/itdb.h src/ithumb-writer.c: Hopefully do padding right: - read padding fields from mhni header and store them with each thumbnail - calculate padding for PhotoDB only (padding for iTunesDB Artwork does not seem to be necessary) - include the padding into the total width/height It seems to work well on my iPod Nano -- feedback appreciated. * tests/test-photos.c: added possibility to dump all photos into a directory: tests/test-photos dump * src/itdb_artwork.c: changed byte order for full screen iPod Nanos. 2006-06-01 Jorg Schuler * src/db-artwork-writer.c (write_mhni): fix segfault caused by wrong access of enum inside Itdb_DB * src/itdb.h: src/itdb_private.h: moved Itdb_DB to private part. * src/itdb.h: src/itdb_private.h: src/itdb_itunesdb: New: db_get_itunesdb(), db_get_photodb() * src/db-artwork-parser.c src/db-artwork-writer.c src/db-image-parser.c src/db-image-parser.h src/db-parse-context.c src/db-parse-context.h src/itdb_endianness.h src/itdb_itunesdb.c src/ithumb-writer.c: Remove all direct access to Itdb_DB->db. enum 2006-05-31 Jorg Schuler * configure.ac: m4/python: check for eyeD3 (Todd Zullinger) 2006-05-30 Jorg Schuler * src/itdb_itunesdb.c (itdb_create_directories): applied Christophe's cleanup-patch, 'normalized' indenting. Function made 'static'. * src/itdb_itunesdb.c (itdb_init_ipod): fixed segfault. * m4/python: default configure option --with_python to 'yes' (Nicholas Piper) ***** merged photo-support branch back to MAIN. branch is tagged photo-support-merged_00 2006-05-29 Jorg Schuler * tests/test-photos.c: removed unneeded #include. * configure.ac: print configuration summary -- thanks to Todd Zullinger * itdb.h: itdb_itunesdb.c: added itdb_init_ipod() -- thanks to P.G. Richardson. * src/itdb_itunesdb.c (itdb_write_file): only write artwork if supported by the iPod -- thanks to P.G. Richardson. * src/itdb_itunesdb.c: src/itdb_photoalbum.c: src/itdb_playlist.c: fixed some comments so the doc subsystem won't complain. * tests/Makefile.am: tests/test-init-ipod.c added new test for itdb_init_ipod(). The test also demonstrates how to 'autodetect' the iPod model number. * src/itdb_photoalbum.c: src/ithumb-writer.c: src/itdb_artwork.c: src/itdb.h: src/db-itunes-parser.h: src/db-artwork-writer.c: src/db-artwork-parser.c: src/db-artwork-debug.c: Patch by Michael McLellan: Doesn't automatically make the first photoalbum the 'master'. However, if a master already exists it will remain the master. Sets the creation date of a new image to the modification time of the image file. Centers new images. Introduces itdb_photodb_remove_photo(). 2006-05-29 Jorg Schuler * src/itdb.h: src/itunesdb.c: (Itdb_Track) flag2 -> skip_when_shuffling flag3 -> remember_playback_position * src/itunesdb.c: playlist flags 1,2,3 were not read correctly. 2006-05-28 Jorg Schuler * src/db-parse-context.c (db_parse_context_new_from_file): Detect endianess if not already set. * src/itdb_device.c (itdb_device_autodetect_endianess): try reading the first for bytes of iTunesDB, ArtworkDB or Photos Database in order to reliably detect the endianess of the connected iPod. * src/itdb_photoalbum.c: (itdb_photodb_parse): will fail again if no photos dir is available. * tests/test-photos.c: takes into consideration the possibility that an iPod does not have a Photos Database and creates a new one in that case. (I think it's safer that way -- the application is forced to 'think' about the fact that no database is available and either warn the user or create one. If itdb_photodb_parse() simply returns an empty database in case none could be found, the application might not become aware of the fact.) * renamed itdb_get_mountpoint_photo to itdb_photodb_get_mountpoint. * tests/test-photos.c: added g_error_free() * src/itdb_device.c src/itdb_device.h: added number of musicdirs (Fnn dirs) to the model descriptions. The exact number seems to be version dependent. Therefore, the numbers here represent a mixture of reported values and common sense. 2006-05-27 Jorg Schuler * src/itdb_photoalbum.c: itdb_photodb_parse() would fail if no photos dir is available. Quick fix for now (I mean, why SHOULDN'T it fail if no photos dir is available??). 2006-05-26 Jorg Schuler * src/itdb.h: src/itdb_photoalbum.c: src/itdb_artwork.c: Added userdata/usertype fields to Itdb_PhotoDB, Itdb_PhotoAlbum, Itdb_Artwork. 2006-05-25 Jorg Schuler * Slight cleanup, make PhotoDB API more consistent with iTunesDB API: * src/db-artwork-parser.h: declared ipod_write_photo_db() as G_GNUC_INTERNAL * src/db-artwork-writer.c (ipod_write_photo_db for non-gdk): Itdb_iTunesDB -> Itdb_PhotoDB * src/itdb.h: Itdb_ItunesDB: removed photoalbums and photos. renamed: itdb_parse_photo -> itdb_photodb_parse itdb_add_photo_to_photoalbum -> itdb_photodb_add_photo itdb_create_new_photoalbum -> itdb_photodb_photoalbum_new itdb_free_photodb -> itdb_photodb_free itdb_write_photo_db -> itdb_photodb_write new: itdb_photodb_new() * src/itdb_itunesdb.c (itdb_parse_photo, itdb_get_photos_dir, itdb_get_photodb_path, itdb_get_photos_thumb_dir): moved to itdb_photoalbum.c * src/itdb_photoalbum.c: new: error_no_photos_dir, itdb_photodb_new, itdb_photodb_write moved: itdb_get_photos_dir, itdb_get_photodb_path, itdb_get_photos_thumb_dir rewrote: itdb_photodb_parse (itdb_photodb_free): free device struct as well. * tests/test-photos.c: change to new API. * src/itdb.h: applied Christophe's patch to fix compile time error. * po/sv.po: updated Swedish translation (thanks to Stefan Asserhall) 2006-05-20 Jorg Schuler * po/POTFILES.in: updated file list -> updated .po files. 2006-05-15 Jorg Schuler * src/db-image-parser.c * src/itdb_photoalbum.c * src/ithumb-writer.c Michael McLellan patch for photo support on iPod Videos 2006-05-11 Jorg Schuler * src/itdb.h * src/itdb_itunesdb.c * src/itdb_private.h * src/db-artwork-parser.c * src/db-artwork-parser.h * src/db-itunes-parser.h * src/db-artwork-writer.c * src/itdb_photoalbum.c Make sure Photos and Photos/Thumbs directories are created. New: itdb_get_photodb_path(). 2006-05-06 Jorg Schuler * src/db-artwork-parser.c: * src/db-itunes-parser.h: * src/db-artwork-writer.c: * src/itdb_photoalbum.c: * src/itdb.h: * src/itdb_private.h: * tests/test-photos.c: Applied Mikey's second patch for photo support. test-photos now comes with support for photo albums! 2006-05-07 Jorg Schuler * Created new branch "photo-support" for testing of photo support. Comes complete with a test program to add photos to your iPod. Works great for me -- thanks to Mikey! --- 2006-05-30: merged back to MAIN. 2006-05-06 Jorg Schuler * Applied Mikey's patch for photo support. * src/itdb_photoalbum.c: new. * tests/test-photo.c: test program to add photos to your iPod. * Created branch for this patch: 'photo-support'. 2006-05-05 Jorg Schuler * src/itdb_itunesdb.c: avoid segfault if album field of podcasts is not set (NULL). 2006-05-02 Jorg Schuler * src/itdb_itunesdb.c: smart playlists: avoid assertion when writing rules with empty strings. 2006-04-26 Jorg Schuler * tests/Makefile.am: removed 'test-rebuild-db' from 'noinst_PROGRAM' declaration (bug reported by Jens Taprogge). 'test-rebuild-db' is only added when the taglib is detected. 2006-04-12 Christophe Fergeau * tests/test-rebuild-db.cc: forgot to propagate a GError 2006-04-10 Christophe Fergeau * tests/test-ls.c: new test program reading and displaying the iPod content * tests/test-rebuild-db.cc: new test program which looks for mp3 files on the iPod in the Music dir and rebuild an iPod database from that (it uses taglib to parse the tags, so it's conditionnally built depending on taglib's availability) * configure.ac: * tests/Makefile.am: build system changes to accomodate the 2 new test programs 2006-04-10 Christophe Fergeau * src/itdb_device.h: removed dead code * src/itdb_playlist.c: make spl_update2 static, kill spl_update 2006-04-10 Christophe Fergeau * docs/Makefile.am: * docs/reference/Makefile.am: * docs/reference/libgpod-docs.xml: * docs/reference/libgpod-sections.txt: * docs/reference/tmpl/Internal.sgml: * docs/reference/tmpl/artwork.sgml: * docs/reference/tmpl/device.sgml: * docs/reference/tmpl/itunesdb-copying.sgml: * docs/reference/tmpl/itunesdb-db.sgml: * docs/reference/tmpl/itunesdb-lowlevel.sgml: * docs/reference/tmpl/itunesdb-time.sgml: * docs/reference/tmpl/libgpod-unused.sgml: * docs/reference/tmpl/playlists.sgml: * docs/reference/tmpl/smart-playlists.sgml: * docs/reference/tmpl/track.sgml: * docs/reference/version.xml.in: all the files below are new files needed for gtk-doc support * Makefile.am: * configure.ac: add gtk-doc support to build system * src/itdb_artwork.c: * src/itdb_device.c: * src/itdb_itunesdb.c: * src/itdb_playlist.c: * src/itdb_track.c: update inline comments in those files so that gtk-doc can pick them up to build documentation 2006-04-08 Christophe Fergeau * configure.ac: generate Makefile for bindings/python/examples 2006-04-03 Jorg Schuler * itdb.h: flag1 -> has_artwork * itdb_track.c: (itdb_track_set_thumbnails, itdb_remove_thumbnails) set has_artwork flag correctly. 2006-04-01 Jorg Schuler * itdb.h: unk178 -> mark_unplayed * itdb_itunesdb.c: reset the mark_unplayed flag when playcount is detected. 2006-03-31 Jorg Schuler * po/es.po: replaced with version from Alejandro Lamas who maintains the gtkpod translation as well. 2006-03-29 Jorg Schuler * itunesdb.c: set filetype identifier when transfering track to the iPod. 2006-03-24 Jorg Schuler Alpha version of reversed-endian Artwork writing. Status: iTunesDB can be written and is accepted on mobile phones, ArtworkDB can be read and be written as well, but newly added artwork will not yet display. * itdb.h: adjusted a couple of field lengths (4 byte -> 2 byte or even 1 byte) to address endian issues. 2006-03-18 Jorg Schuler * itdb_itunesdb.c (mk_mhod): fixed bug when writing podcast urls. * itdb_itunesdb.c (itdb_write_file): move endianess autodetection to a place before calling ipod_write_artwork_db(). 2006-03-17 Jorg Schuler * itdb_device.[ch]: rewrote ipod-device.c, removed all hal-code, removed all code irrelevant to writing the iTunesDB and ArtworkDB. * autodetect iControl directory now also works for ArtworkDB. * db-artwork-parser.c (ipod_db_get_artwork_db_path): create Artwork directory if not already present. * itdb.h: Itdb_iTunesDB: moved mountpoint and musicdirs into private Itdb_Device. Use itdb_set_mountpoint() and itdb_get_mountpoint() to access the mountpoint. * simplified some code by using itdb_get_path() instead of itdb_resolve_path(). * itdb_itunesdb.c (itdb_get_path): fixed bug. 2006-03-12 Jorg Schuler * itdb.h, itdb_itunesdb.c: added functions for autodetection of iControl directory (currently either /iPod_Control or /iTunes/iTunes_Control): itdb_get_control_dir() and itdb_get_itunes_dir() 2006-02-12 Jorg Schuler * itdb.h: added movie_flag and lyrics_flag to Itdb_Track * itdb.h, itdb_itunesdb.c, itdb_private.h: added support for mobile phone reversed-endian iTunesDB. Please note that you have to rename the folder iTunes_Control to iPod_Control manually. to write reversed-endian files, itdb->reversed must be set to TRUE. When reading an iTunesDB the endianess is detected automatically and itdb->reversed set appropriately. Only the inversed iTunesDBs, 'Play Counts', and OTG playlist files are read yet. The ArtworkDB and thumbnail files cannot be parsed yet. 2006-02-04 Jorg Schuler * ipod-device.c: added entries for iPod Nano 1 GB black and white (thanks to Leonhard Gruenschlos) 2006-02-04 Jorg Schuler * configure.ac: enable/disable switches for gdk and hal. Thanks to Olivier Crête 2006-02-04 Jorg Schuler * configure.ac: bumped version to 0.3.3 for new CVS version. * RELEASED libgpod 0.3.2 * configure.ac: bumped version to 0.3.2 for release. * db-artwork-writer.c: increased IPOD_MMAP_SIZE from 2 to 16 MB as a temporary workaround until a propoer solution can be implemented. * db-itunes-parser.h: replaced the #pragma pack(4) with an 'packed' attribute on _MhiiHeader only. 2006-02-28 Jorg Schuler * ipod-device.c: (ipod_device_set_property): fixed possible segfault when hald is present. 2006-02-24 Jorg Schuler * configure.ac, po/es.po: added Spanish translation catalog (thanks to Azael Avalos) 2006-02-19 Jorg Schuler * libgpod-1.0.pc: added gobject-2.0 to 'Requires:' list * src/db-itunes-parser.h: add '#pragma pack(4)' to fix 64bit issue with padding (at least as a temporary fix). * src/ipod-device.c: added HP type color photo ipod 'S492'. Thanks to David Desrosiers. 2006-02-14 Jorg Schuler * po/ja.po: updated Japanese catalog -- thanks to Kentaro Fukuchi * src/ipod-device.c: (ipod_device_set_property): fixed bug that caused ipod-detection to fail if hal daemon was not running. As a consequence cover art was not written to the iPod. 2006-02-04 Jorg Schuler * src/itdb_itunesdb.c: (itunesstats_read) Fixed error when reading the Shuffle's stat file (0x18 was used as minimal record length instead of decimal '18'). 2006-02-03 Jorg Schuler * src/itdb_itunesdb.c, src/itdb_playlist.c, src/ithumb-writer.c: removed nested-functions. Thanks to Brian Jackson for the patch (he was not the only to send patches -- please, nobody feel offended that I didn't act sooner). 2006-01-03 Jorg Schuler * src/ipod-device.c: (ipod_device_set_property) check hal_context before accessing it to avoid segfault when hald is not running. (ipod_device_hal_initialize) fixed memory leak: 'error' was not freed if libhal_ctx_init() failed. (ipod_device_get_model_index_from_table): fix warning about unused computed value (thanks to Martin Aumueller) 2005-12-18 Jorg Schuler * src/ipod-device.c: don't ignore return value of fread/fwrite/ftell because of possible compiler warnings. 2005-12-11 Jorg Schuler * src/itdb_artwork.c: (itdb_thumb_get_gdk_pixbuf) allow to get pixbuf even if no iPod is present if the thumbnail points to a local filename. This way artwork support is also possible on the 'Local' repository in gtkpod (or any other application). * README: added quick HOWTO use libgpod * bumped version to 0.3.0 for release. * bumped version to 0.3.1 for CVS version. 2005-12-10 Jorg Schuler * src/ithumb-writer.c: fixed typo leading to segfault. 2005-12-09 Jorg Schuler * src/ithumb-writer.c: create Artwork directory when attempting to write to it. * src/itdb_artwork.c: fix compilation problem when gdkpixbuf is not present. * src/hal-common.c: reverse order of include statements to fix compilation error on some systems. 2005-12-06 Jorg Schuler * src/itdb_itunesdb.c: change g_assert to g_return_if_fail (don't terminate the application just because the iTunesDB was manipulated). * src/db-artwork-parser.c: change g_assert to g_return_if_fail (don't terminate the application just because the ArtworkDB was manipulated). * src/itdb_artwork.c: change g_assert to g_return_if_fail (don't terminate the application just because the ithmb file was manipulated). 2005-12-05 Jorg Schuler * src/db-artwork-writer/parser.c: Create ArtworkDB when it does not exist. * src/db-artwork-writer.c, src/itdb_itunesdb.c, src/itdb_track.c, src/ithumb-writer.c: handle artwork size and count self-consistently. * src/itdb_track.c: take care of artwork_size/_count a little better, take care of dbid2 a little better. * src/ithumb-writer.c: new ithumb_rearrange_thumbnail_file() taking into account multiple references to the same slot. ithumb-writer now cleans up 0 Byte files. 2005-11-30 Christophe Fergeau * src/db-artwork-parser.c: (parse_mhni): don't crash if ipod_image_new_from_mhni returns NULL 2005-11-28 Christophe Fergeau * src/itdb_artwork.c: (unpack_RGB_565), (get_pixel_data): * src/itdb_itunesdb.c: (get_mhod): * src/ithumb-writer.c: (pack_RGB_565), (ithumb_rearrange_thumbnail_file): added some paranoia checks before doing some mallocs to prevent potential int overflows in some mallocs which could be triggered by using forged iTunesDB files 2005-11-28 Jorg Schuler New API for thumbnail support: see src/itdb.h for details. * src/itdb.h: Introduced Itdb_Artwork and ItdbThumbType and changed Itdb_Image to Itdb_Thumb throughout the source. * src/itdb_artwork.c: new file as backend for Itdb_Artwork support (new, free, duplicate, get_thumb_by_type, add_thumbnail, remove_thumbnail, remove_thumbnails), as well as for the Itdb_Thumb support (new, free, duplicate, get_gdk_pixbuf, get_filename) * src/itdb_track.c: new functions for artwork support (set_thumbnails, remove_thumbnails) * src/ithumb-writer.c: added support to write thumbnails in addition to existing thumbnails * src/db-artwork-parcer.c: (mhod3_get_ithmb_filename) * src/itdb_itunesdb.c: (update_artwork_info) * tests/test-covers.c: updated to new API. * tests/test-write-covers.c: updated to new API. Known issues: iTunes wipes off our thumbnails. 2005-11-24 Jorg Schuler * overall changes to support itdb_image_get_gdk_pixbuf(). Run "tests/test-thumbnails to copy all thumbnails into the current directory. * configure.ac: bumped version to 0.2.2 2005-11-23 Christophe Fergeau * src/db-artwork-debug.c: (get_utf16_string): * src/db-artwork-parser.c: (get_utf16_string), (parse_mhod_3), (parse_mhni), (ipod_supports_cover_art), (ipod_parse_artwork_db): * src/db-artwork-parser.h: * src/db-artwork-writer.c: (get_artwork_info), (write_mhod_type_3), (write_mhni), (write_mhod), (write_mhii), (write_mhif): * src/db-image-parser.c: (unpack_RGB_565), (image_type_from_corr_id), (ipod_image_new_from_mhni): * src/db-image-parser.h: * src/itdb.h: * src/ithumb-writer.c: (pack_RGB_565), (ithumb_writer_write_thumbnail), (ipod_image_get_ithmb_filename), (ithumb_writer_new), (ithumb_writer_free), (write_thumbnail), (itdb_write_ithumb_files): * tests/test-covers.c: (save_song_thumbnails): rework artwork code in an attempt to properly support artwork on all the iPod models 2005-11-23 Christophe Fergeau * src/hal-common.c: * tests/test-covers.c: (ipod_image_to_gdk_pixbuf): more glib 2.4 changes 2005-11-23 Christophe Fergeau * configure.ac: bumped version number ==== libgpod 0.2.0 ==== 2005-11-23 Christophe Fergeau * configure.ac: set version number to 0.2.0 2005-11-22 Christophe Fergeau * src/ipod-device.c: fix compilation issue when hal isn't available 2005-11-22 Christophe Fergeau * configure.ac: fix .so versioning 2005-11-22 Christophe Fergeau * src/glib-compat.h: include stdio.h in the glib 2.4 compat code 2005-11-21 Christophe Fergeau * COPYING: libgpod really is LGPL 2005-11-21 Christophe Fergeau * configure.ac: set version number to 0.2.0 * src/Makefile.am: added glib-compat.h 2005-11-21 Christophe Fergeau * configure.ac: * src/Makefile.am: 2005-11-21 Christophe Fergeau * src/glib-compat.h: added a missing helper file for glib 2.4 compilation 2005-11-21 Christophe Fergeau * src/hal-common.c: * src/ipod-device.c: marked some functions as static 2005-11-21 Christophe Fergeau * src/ipod-device.c: fix g_mkdir_with_parents use (don't use it with glib 2.8, and mark it static) 2005-11-21 Christophe Fergeau * src/db-artwork-writer.c: (write_mhod_type_3): * src/db-parse-context.c: * src/ipod-device.c: * src/itdb_private.h: * src/itdb_track.c: * src/ithumb-writer.c: (ithumb_writer_write_thumbnail): commit some changes which should help compiling with glib 2.4 2005-11-21 Christophe Fergeau * autogen.sh: * gnome-autogen.sh: use autogen.sh script from gnome-common since the custom libgpod one keep having issues (this doesn't add a dependency on gnome-common since I imported the necessary script to our CVS) 2005-11-21 Christophe Fergeau * INSTALL: * autogen.sh: * gnome-autogen.sh: 2005-11-21 Christophe Fergeau * src/hal-common.h: mark hal stubs (for when hal isn't available) as G_GNUC_INTERNAL to avoid namespace clashes * src/ipod-device.c: * src/ipod-device.h: move hal header inclusion in the .c instead of having it in the .h 2005-11-19 Jorg Schuler * itdb_playlist.c: simplified API for itdb_spl_update() and itdb_splr_eval() * itdb_playlist.c: added itdb_spl_update_live() for convenience * itdb_itunesdb.c: (itdb_rename_files) also remove "iTunesShuffle" as this file might confuse iPod Shuffles. 2005-11-17 Jorg Schuler * configure.ac: check for version 2.4 of glib -- now we need to make sure that libgpod actually works with 2.4... 2005-11-15 Christophe Fergeau * src/itdb_itunesdb.c: (itdb_new): initialise glib type system before calling ipod_device_new (which creates a gobject) 2005-11-13 Jorg Schuler * src/itdb_itunesdb.c: when new rating is set on the iPod, backup the old rating to app_rating. Not sure what it's for, but iTunes seem to do it. * src/itdb_itunesdb.c: * src/itdb.h: split unk164 into flag1, flag2, flag3, and flag4. 2005-11-12 Jorg Schuler * src/itdb_track.c: (itdb_track_set_defaults) only change unk208 (audio/video) if not already set to non-zero. 2005-11-11 Jorg Schuler * src/itdb_itunesdb.c: (itdb_set_mountpoint) do not call itdb_device_new() with NULL pointer (no mountpoint == local repository) to avoid critical warning. 2005-11-09 Jorg Schuler * src/itdb.h src/itdb_itunesdb.c: change API for itdb_shuffle_write() to be identical to itdb_itunesdb_write() 2005-11-08 Christophe Fergeau * configure.ac: fixed hal detection, stole a bit more autoconf-fu from libipoddevice so that ipod-device.c compiles when hal is detected 2005-11-08 Christophe Fergeau * src/hal-common.c: * src/hal-common.h: more #if => #ifdef changes 2005-11-08 Christophe Fergeau * src/ipod-device.c: * src/ipod-device.h: update comments to reflect the fact we are using #ifdef HAVE_LIBHAL instead of #if HAVE_LIBHAL now 2005-11-08 Christophe Fergeau * src/hal-common.c: * src/hal-common.h: * src/ipod-device.c: (ipod_device_set_property), (ipod_device_hal_initialize), (ipod_device_detect_volume_info), (ipod_device_new), (ipod_device_eject): sync with libipoddevice CVS, use #ifdef HAVE_LIBHAL instead of #if HAVE_LIBHAL 2005-11-06 Christophe Fergeau * src/ipod-device.h: * src/itdb.h: added missing G_BEGIN_DECLS and G_END_DECLS 2005-11-05 Christophe Fergeau * src/itdb_track.c: (is_video_ipod), (itdb_track_set_defaults): deal with unk208 differently on iPod video (it's used to indicate if the current track must be shown in the video or audio menu or both) 2005-11-05 Christophe Fergeau * src/ipod-device.c: (ipod_device_get_property), (ipod_device_class_init): * src/ipod-device.h: sync with libipoddevice CVS to get information about artwork formats supported by the various iPod models 2005-11-04 Christophe Fergeau * src/ipod-device.c: (ipod_device_new): * src/ipod-device.h: * src/itdb.h: * src/itdb_itunesdb.c: (itdb_free), (itdb_parse), (itdb_shuffle_write), (itdb_set_mountpoint): added an IpodDevice element to Itdb_iTunesDB. This makes it possible for libgpod to know the type (regular/nano/mini/video/...) of the iPod it's currently dealing with (which is necessary for proper cover art support for example) 2005-11-04 Christophe Fergeau * src/Makefile.am: db-itunes-parser.h was missing from the source file list, this made "make dist" generate uncompilable tarballs 2005-11-04 Christophe Fergeau * autogen.sh: add missing call to glib-gettextize, this has the nice side-effect of adding mkinstalldirs if automake didn't copy it for us. 2005-11-02 Christophe Fergeau * configure.ac: * src/db-artwork-writer.c: (ipod_buffer_grow_mapping), (ipod_buffer_maybe_grow): added fallback code for systems not having mremap (pretty much all non-linux systems actually) 2005-11-02 Christophe Fergeau * src/db-artwork-writer.c: (ipod_buffer_destroy): * src/itdb_track.c: (itdb_track_set_defaults): applied patch from Uwe Hermann to add video support to libgpod, removed spurious g_print 2005-11-01 Jorg Schuler * itdb_itunesdb.c (get16lint): fixed bug affecting big endian systems. Thanks to Martin Aumueller for spotting this. * itdb_itunesdb.c: used GUINTxx_TO/FROM_xE() instead of "#if ..." constructions. 2005-10-25 Jorg Schuler * itdb_itunesdb.c (itdb_parse): added comment, check for itdb before calling ipod_pars_artwork_db() * db-artwork_parser.c (ipod_parse_artwork_db): added assertion to avoid segfault if called NULL parameter. * itdb_itunesdb.c (get_mhip): fixed handling for iTunesDB versions 4.7 and smaller. 2005-10-24 Christophe Fergeau * (itdb_write): remove mountpoint as parameter as not used. 2005-10-20 Christophe Fergeau * tests/test-covers.c: (save_song_thumbnails): fix warning on amd64 2005-10-19 Jorg Schuler * configure.ac: print warning and hint if ./mkinstalldirs is not created (incompatibility between automake > 1.8 and all gettext at least up to 0.14.4. * TROUBLESHOOTING: added tips for missing ./mkinstalldirs and po/Makefile.in.in 2005-10-17 Christophe Fergeau * src/db-image-parser.c: (get_pixel_data), (ipod_image_new_from_mhni): * src/itdb.h: * src/itdb_itunesdb.c: (get_mhod): Changed type of the various fields in the ItdbImage structures so that they match what they are in the database on the iPod. 2005-10-15 Jorg Schuler * src/itdb_itunesdb.c,itdb_private.h: fixes for 64 bit systems * src/ipod-device.c: fixes for 64 bit systems (patch provided by Bodo Bauer) * TROUBLESHOOTING: hint for 64 bit compilation 2005-10-12 Christophe Fergeau * configure.ac: * src/Makefile.am: * tests/Makefile.am: fix compilation when hal is available, needs to be tested on systems without hal 2005-10-11 Christophe Fergeau * src/itdb_itunesdb.c: (get_mhip): added missing parameter to a g_warning call, this broke compilation on FC4 * src/itdb_track.c: (itdb_track_add/itdb_track_set_defaults): set dbid if not set (thanks to Guilherme Salgado for pointing this out) * tests/.cvsignore: updated 2005-10-09 Jorg Schuler * bindings/python/gpod.i: applied Kelvin Lawson's patch to query integers. * src/ipod-device.[ch],hal-common.[ch],Makefile.am: code ported from libipoddevice to retrieve information about the iPod without libhal dependence. * tests/test-ipod-device.c: small script to show how to to query the iPod for information. * tests/Makefile.am: initialize with better default * configure.ac: add dependency for libgobject 2005-10-02 Jorg Schuler * Makefile.am: added bindings/... to EXTRA_DIST * src/itdb.h, src/itdb_playlist.h, src/itdb_private.h: made enum ItdbPlType and enum ItdbPlFlag private and introduced itdb_playlist_set_mpl/_podcast() in addition to the existing itdb_playlist_is_mpl/_podcast() which make the public enums unecessary. * bumped to version 107 * src/ithumb-writer.c: itdb_write_ithumb_files (): commented out g_print() statement as this produced an empty line in gtkpod's warning window. * src/Makefile.am: GDKPIXPUF dependency solved inside source files -- db-artwork-writer-dummy.c no longer required. Now compiles with and without gdkpixbuf. * configure.ac: fixed error in AC_DEFINE_UNQUOTED(HAVE_GDKPIXBUF). * tests/test-covers.c: attached Flavio Stanchina size-patch 2005-09-29 Jorg Schuler * applied Chrisophe's patch to make libgdk optional 2005-09-27 Jorg Schuler * src/itdb_track.c: include thumbnails into itdb_track_duplicate() (Christophe Fergeau) * src/db-image-parser.c: support for iPod nano (Christophe Fergeau) * configure.c: make MacOS compatible (Tristan O'Tierney) 2005-09-27 Jorg Schuler * .cvsignore: added reasonable defaults in ./ ./src/ ./tests ./po * po/Makefile.in.in: removed, as it should be created by configure * itdb.h, itdb_itunesdb.c, itdb_private.h: moved next_id from Itdb_iTunesDB to FExport. * bindings/phython/examples/tag-genrr-from-audioscrobber.py: added (thanks to Nicholas Piper) 2005-09-27 Christophe Fergeau * src/itdb_itunesdb.c: (write_mhsd_tracks), (write_playlist_mhips), (write_podcast_mhips): move variable declaration before code to fix compilation * src/db-artwork-parser.c: (ipod_parse_artwork_db): * src/db-artwork-writer.c: (ipod_write_artwork_db): * src/ithumb-writer.c: (ithumb_writer_new): added some sanity checks to detect better when the iPod doesn't have any artwork data 2005-09-24 Jorg Schuler * itdb.h/itdb_playlist.c: new functions: itdb_playlist_is_mpl() and itdb_playlist_is_podcasts() * itdb_track.c: update itdb_track_duplicate() * itdb_itunesdb.c: read/write timestamp in playlists. Set timestamp if previously unset. * itdb_playlist.c: set timestamp when creating playlist, set timestamp when adding playlist and no timestamp was set. * Release of version 0.1.6 2005-09-23 Jorg Schuler * bindings/: added python bindings provided by Nicholas Piper * itdb.h: added enum ItdbPlFlag and Itdb_Playlist->podcastflag field. * itdb.h/itdb_itunesdb.c: added time_released field * itdb_itunesdb.c: rewrote write_playlist() for easier maintenance. * itdb_itunesdb.c: read/write support for podcast playlists including chapterdata (but only in raw format) 2005-09-22 Jorg Schuler * applied Christophe Fergeau's patch which adds cover art writing support to libgpod -> bump to version 104 2005-09-21 Jorg Schuler * itdb_itunesdb.c: streamline parse_fimp() for more flexibility. Please report if formerly readable iTunesDB cannot be read any more :-/ 2005-09-20 Jorg Schuler * Release of 0.1.3 2005-09-19 Jorg Schuler * added additional fields to Itdb_Track that are present since version 0x0c of the iTunesDB. Write long mhit version. * applied patch provided by Christophe Fergeau for artwork database support (read-only). * itdb_itunesdb.c: read iTunesStats file if present (corresponds to Play Counts file on the Shuffle). * itdb.h: implemented sortorder in playlists (new enum) 2005-09-17 Jorg Schuler * renamed fdesc to filetype * po/it.po: updated (thanks to Edward Matteucci) 2005-09-16 Jorg Schuler * itdb.h/itdb_itunesdb.c: changed 'static void itdb_count_musicdirs()' to 'gint itdb_musicdirs_number()' 2005-09-14 Jorg Schuler * autogen.sh: automatically call ./configure * configure.ac: added supported languages de fr he it ja sv * po/: added language files from gtkpod project 2005-09-13 Jorg Schuler * itdb_itunesdb: changed API for itdb_filename_on_ipod () * itdb.h: added 'gint musicdirs' to Itdb_iTunesDB (number of F.. dirs available) * itdb_itunesdb: itdb_cp_track_to_ipod() will now determine the number of available F.. dirs before copying by calling new function itdb_count_musicdirs() 2005-09-11 Jorg Schuler * configure.ac: changed position of AC_GNU_SOURCE (caused error strange error messages) * autogen.sh: replace so it works without gnome-common * src/itdb.h: replaced '//' by '/* ... */' to avoid strange error message during compile. * src/itdb_playlist.c: (itdb_splr_validate) Guilherme Salgado patch to make 'inthelast' SPL work. * README: added some notes. 2005-09-10 Christophe Fergeau * configure.ac: * src/itdb_itunesdb.c: (get_mhod_type), (get_mhod), (get_mhod_string), (get_playlist), (get_mhit), (itdb_shuffle_write_file): * src/itdb_playlist.c: (itdb_spl_update_all): * tests/itdb_main.c: (main): fixed compilation warnings to be able to compile with -Werror 2005-09-10 Christophe Fergeau * README: added quick description of the library purpose 2005-09-10 Christophe Fergeau * AUTHORS: * COPYING: * INSTALL: * Makefile.am: * autogen.sh: * configure.ac: * libgpod-1.0.pc.in: * po/Makefile.in.in: * po/POTFILES.in: * src/Makefile.am: * src/itdb.h: * src/itdb_itunesdb.c: * src/itdb_playlist.c: * src/itdb_private.h: * src/itdb_track.c: * tests/Makefile.am: * tests/itdb_main.c: initial import