summaryrefslogtreecommitdiffstats
path: root/src/db-artwork-writer.c
Commit message (Collapse)AuthorAgeFilesLines
* Don't try to write ArtworkDB/PhotoDB when we fail to write ithmb filesChristophe Fergeau2008-07-101-2/+10
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2047 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Properly set padding to 0 in mhod type 3Christophe Fergeau2008-07-051-0/+2
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2033 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* patch by: Mike Heffner <mikeh@fesnel.com>Christophe Fergeau2008-06-281-0/+4
| | | | | | | * src/Makefile.am: * src/db-artwork-writer.c: fix compilation with older glib (without GChecksum) git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2021 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c:Christophe Fergeau2008-06-091-10/+2
| | | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2012 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c:Christophe Fergeau2008-06-091-25/+0
| | | | | | | | | | | * 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2010 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-parser.c: remove duplicated artwork/photo supportChristophe Fergeau2008-06-091-9/+19
| | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2009 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c:Christophe Fergeau2008-06-091-0/+1
| | | | | | | * src/itdb_artwork.c: * src/itdb_thumb.c: * src/itdb_thumb.h: fix compilation when gdk-pixbuf isn't present git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2007 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/gchecksum.cJorg Schuler2008-06-021-17/+230
| | | | | | | | | | | | | | | | | | | | | | 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). git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2005 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/Makefile.am:Christophe Fergeau2008-05-301-91/+33
| | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1991 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/itdb_track.c (itdb_track_set_thumbnails_internal): setJorg Schuler2008-05-281-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1985 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-debug.c:Christophe Fergeau2008-05-251-16/+11
| | | | | | | | | | * 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) git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1981 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/itdb_photoalbum.cJorg Schuler2008-05-111-2/+2
| | | | | | | | | | 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) git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1971 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Factorize mhod_type_3 and mhod_type_1 handlingChristophe Fergeau2008-02-031-2/+2
| | | | | | | | MHOD in an ArtworkDB can only have 2 types, either they contain a string or they are some kind of container. The code had an arbitrary separation between mhod type 3 and mhod type 1 which both contained strings. This consolidates that code in a parse_mhod_string function git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1947 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Add comment about fields that aren't byteswapped, remove hardcoded intChristophe Fergeau2008-02-031-4/+7
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1946 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Merge ArtworkDB_MhodHeaderArtworkType3 and MhodHeaderArtworkType1 into ↵Christophe Fergeau2008-02-031-15/+14
| | | | | ArtworkDB_MhodHeaderString git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1945 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Add and use itdb_file_set_contents to workaround a rename issue on sshfsChristophe Fergeau2008-01-291-6/+8
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1941 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Portability fix: only include unistd.h when it's availableChristophe Fergeau2008-01-291-0/+2
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1940 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Added support for video output of photos for iPod Nano Videos andJorg Schuler2007-11-041-23/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1753 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * configure.ac: remove mremap checkChristophe Fergeau2007-10-291-168/+69
| | | | | * src/db-artwork-writer.c: get rid mmap/mremap use git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1743 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c: reread the pointer for memory mappedChristophe Fergeau2007-10-291-2/+16
| | | | | | | | | 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1742 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c: (write_mhif), (should_write),Christophe Fergeau2007-10-241-77/+58
| | | | | | | (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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1736 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c: (write_mhla): yet another missing endiannessChristophe Fergeau2007-10-241-2/+4
| | | | | conversion git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1735 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c: (itdb_track_filter_thumbnails),Christophe Fergeau2007-10-051-53/+123
| | | | | | | | | | | | | | | (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) git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1718 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/itdb_itunesdb.c (mk_mhit): write extended mhit header forJorg Schuler2007-10-011-6/+8
| | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1711 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c (write_mhod_type_3): don't assume thatJorg Schuler2007-08-181-14/+20
| | | | | | | | | | 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). (write_mhod_type_1), (write_mhod_type_3): Don't pad by 4 bytes as this achieves nothing. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1679 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-parser.c (parse_mhba): non-zero terminatedJorg Schuler2007-06-011-3/+3
| | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1514 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-parser.cJorg Schuler2007-05-271-3/+3
| | | | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1439 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * docs/reference/tmpl/device.sgmlJorg Schuler2007-04-271-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1417 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-itunes-parser.hJorg Schuler2007-02-241-1/+1
| | | | | | src/artwork-writer.c: Set unknown2 of mhfd header to 2 instead of 1, otherwise iTunes7 wipes the ArtworkDB. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1395 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * itdb.h: Itdb_Artwork:Jorg Schuler2006-11-111-11/+14
| | | | | | | | | | | | | | | | | | | | | - 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(). git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1335 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Added additional functionality for photo albumsJorg Schuler2006-10-291-9/+26
| | | | | | | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1330 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Major rework of picture support.Jorg Schuler2006-10-291-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1329 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c (ipod_buffer_grow_file): printf(3) typeJorg Schuler2006-08-181-2/+2
| | | | | | warnings caused compile error with FreeBSD 6.0-stable/GCC 3.4.4. Thanks to Mike Heffner for the patch. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1309 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* 2006-06-05 Jorg Schuler <jcsjcs at users.sourceforge.net>Jorg Schuler2006-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. 2006-06-04 Jorg Schuler <jcsjcs at users.sourceforge.net> * 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 <jcsjcs at users.sourceforge.net> * 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 <mountpoint> <output_dir> * src/itdb_artwork.c: changed byte order for full screen iPod Nanos. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1299 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.cJorg Schuler2006-06-021-12/+4
| | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1298 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/itdb.h:Jorg Schuler2006-06-011-18/+26
| | | | | | | | | | | | | | | | | | | | | | 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1296 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c (write_mhni): fix segfault caused byJorg Schuler2006-06-011-1/+2
| | | | | wrong access of enum inside Itdb_DB git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1295 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* ***** merged photo-support branch back to MAIN. branch is taggedJorg Schuler2006-05-301-80/+351
| | | | | | | photo-support-merged_00 ipod.py will need minor patching (flag2, flag3). git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1292 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* Alpha version of reversed-endian Artwork writing. Status: iTunesDBJorg Schuler2006-03-231-79/+122
| | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1225 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * itdb_device.[ch]: rewrote ipod-device.c, removed all hal-code,Jorg Schuler2006-03-161-5/+5
| | | | | | | | | | | | | | | 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1220 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * configure.ac: bumped version to 0.3.2 for release.Jorg Schuler2006-03-041-1/+5
| | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1211 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer.c, src/itdb_itunesdb.c,Jorg Schuler2005-12-041-5/+1
| | | | | | src/itdb_track.c, src/ithumb-writer.c: handle artwork size and count self-consistently. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1184 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * src/db-artwork-writer/parser.c: Create ArtworkDB when it doesJorg Schuler2005-12-041-6/+3
| | | | | not exist. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1183 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* New API for thumbnail support: see src/itdb.h for details.Jorg Schuler2005-11-281-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1180 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * overall changes to support itdb_image_get_gdk_pixbuf(). RunJorg Schuler2005-11-241-27/+3
| | | | | | "tests/test-thumbnails <ipod_mount> to copy all thumbnails into the current directory. git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1172 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* 2005-11-23 Christophe Fergeau <teuf@gnome.org>Christophe Fergeau2005-11-231-48/+58
| | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1171 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* 2005-11-21 Christophe Fergeau <teuf@gnome.org>Christophe Fergeau2005-11-211-0/+4
| | | | | | | | | | | * 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 git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1158 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* 2005-11-02 Christophe Fergeau <teuf@gnome.org>Christophe Fergeau2005-11-021-6/+30
| | | | | | | | * 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) git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1136 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* 2005-11-02 Christophe Fergeau <teuf@gnome.org>Christophe Fergeau2005-11-021-1/+0
| | | | | | | | * src/db-artwork-writer.c: (ipod_buffer_destroy): * src/itdb_track.c: (itdb_track_set_defaults): applied patch from Uwe Hermann <uwe@hermann-uwe.de> to add video support to libgpod, removed spurious g_print git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1135 f01d2545-417e-4e96-918e-98f8d0dbbcb6
* * (itdb_write): remove mountpoint as parameter as not used.Jorg Schuler2005-10-231-4/+4
| | | git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1128 f01d2545-417e-4e96-918e-98f8d0dbbcb6