diff options
-rwxr-xr-x | autogen.sh | 6 | ||||
-rw-r--r-- | src/db-artwork-parser.h | 3 | ||||
-rw-r--r-- | src/db-image-parser.c | 13 | ||||
-rw-r--r-- | src/itdb_track.c | 30 | ||||
-rw-r--r-- | tests/test-covers.c | 8 |
5 files changed, 49 insertions, 11 deletions
@@ -15,8 +15,8 @@ set -e # Refresh GNU autotools toolchain. echo Cleaning autotools files... -find -type d -name autom4te.cache -print0 | xargs -0 rm -rf \; -find -type f \( -name missing -o -name install-sh -o -name mkinstalldirs \ +find . -type d -name autom4te.cache -print0 | xargs -0 rm -rf \; +find . -type f \( -name missing -o -name install-sh -o -name mkinstalldirs \ -o -name depcomp -o -name ltmain.sh -o -name configure \ -o -name config.sub -o -name config.guess \ -o -name Makefile.in \) -print0 | xargs -0 rm -f @@ -40,7 +40,7 @@ test -d debian && { [ "$1" == "updateexec" ] && { echo Generating list of executable files... rm -f debian/executable.files - find -type f -perm +111 ! -name '.*' -fprint debian/executable.files + find . -type f -perm +111 ! -name '.*' -fprint debian/executable.files } # Remove any files in upstream tarball that we don't have in the Debian diff --git a/src/db-artwork-parser.h b/src/db-artwork-parser.h index aaeabff..550f9c0 100644 --- a/src/db-artwork-parser.h +++ b/src/db-artwork-parser.h @@ -32,6 +32,9 @@ #define IPOD_THUMBNAIL_FULL_SIZE_CORRELATION_ID 1016 #define IPOD_THUMBNAIL_NOW_PLAYING_CORRELATION_ID 1017 +#define IPOD_NANO_THUMBNAIL_FULL_SIZE_CORRELATION_ID 1027 +#define IPOD_NANO_THUMBNAIL_NOW_PLAYING_CORRELATION_ID 1031 + G_GNUC_INTERNAL int ipod_parse_photo_db (const char *filename); G_GNUC_INTERNAL int ipod_parse_artwork_db (Itdb_iTunesDB *db); diff --git a/src/db-image-parser.c b/src/db-image-parser.c index b04cec6..3842135 100644 --- a/src/db-image-parser.c +++ b/src/db-image-parser.c @@ -159,13 +159,16 @@ ipod_image_new_from_mhni (MhniHeader *mhni, const char *mount_point) img->width = (GINT_FROM_LE (mhni->image_dimensions) & 0xffff0000) >> 16; img->height = (GINT_FROM_LE (mhni->image_dimensions) & 0x0000ffff); - if (mhni->correlation_id == IPOD_THUMBNAIL_FULL_SIZE_CORRELATION_ID) { + switch (mhni->correlation_id) { + case IPOD_THUMBNAIL_FULL_SIZE_CORRELATION_ID: + case IPOD_NANO_THUMBNAIL_FULL_SIZE_CORRELATION_ID: img->type = ITDB_IMAGE_FULL_SCREEN; - } else if (mhni->correlation_id == IPOD_THUMBNAIL_NOW_PLAYING_CORRELATION_ID) - { + break; + case IPOD_THUMBNAIL_NOW_PLAYING_CORRELATION_ID: + case IPOD_NANO_THUMBNAIL_NOW_PLAYING_CORRELATION_ID: img->type = ITDB_IMAGE_NOW_PLAYING; - - } else { + break; + default: g_print ("Unrecognized image size: %08x\n", GINT_FROM_LE (mhni->image_dimensions)); g_free (img); diff --git a/src/itdb_track.c b/src/itdb_track.c index 773d0e2..34495b3 100644 --- a/src/itdb_track.c +++ b/src/itdb_track.c @@ -1,4 +1,4 @@ -/* Time-stamp: <2005-09-24 12:21:06 jcs> +/* Time-stamp: <2005-09-29 00:01:38 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -215,6 +215,30 @@ void itdb_track_unlink (Itdb_Track *track) track->itdb = NULL; } +static GList *dup_thumbnails (GList *thumbnails) +{ + GList *it; + GList *result; + + result = NULL; + for (it = thumbnails; it != NULL; it = it->next) + { + Itdb_Image *new_image; + Itdb_Image *image; + + image = (Itdb_Image *)it->data; + g_return_val_if_fail (image, NULL); + + new_image = g_new0 (Itdb_Image, 1); + memcpy (new_image, image, sizeof (Itdb_Image)); + new_image->filename = g_strdup (image->filename); + + result = g_list_prepend (result, new_image); + } + + return g_list_reverse (result); +} + /* Duplicate an existing track */ Itdb_Track *itdb_track_duplicate (Itdb_Track *tr) { @@ -252,6 +276,10 @@ Itdb_Track *itdb_track_duplicate (Itdb_Track *tr) tr->chapterdata_raw_length); } + /* Copy thumbnail data */ + tr_dup->orig_image_filename = g_strdup (tr->orig_image_filename); + tr_dup->thumbnails = dup_thumbnails (tr->thumbnails); + /* Copy userdata */ if (tr->userdata && tr->userdata_duplicate) tr_dup->userdata = tr->userdata_duplicate (tr->userdata); diff --git a/tests/test-covers.c b/tests/test-covers.c index a119cc9..7c886b2 100644 --- a/tests/test-covers.c +++ b/tests/test-covers.c @@ -38,10 +38,12 @@ ipod_image_to_gdk_pixbuf (Itdb_Image *image) guchar *pixels; int row_stride; + printf ("width: %d height: %d\n", image->width, image->height); + if (image->type == ITDB_IMAGE_FULL_SCREEN) { - row_stride = 140; + row_stride = 100; } else if (image->type == ITDB_IMAGE_NOW_PLAYING) { - row_stride = 56; + row_stride = 42; } else { return NULL; } @@ -83,6 +85,8 @@ save_song_thumbnails (Itdb_Track *song) gchar *filename; image = (Itdb_Image *)it->data; + g_return_if_fail (image); + filename = NULL; if (image->type == ITDB_IMAGE_FULL_SCREEN) { filename = g_strdup_printf ("/tmp/fullsize%016llx.png", |