summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xautogen.sh6
-rw-r--r--src/db-artwork-parser.h3
-rw-r--r--src/db-image-parser.c13
-rw-r--r--src/itdb_track.c30
-rw-r--r--tests/test-covers.c8
5 files changed, 49 insertions, 11 deletions
diff --git a/autogen.sh b/autogen.sh
index 26bc20c..10f52fb 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -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",