Update of /cvsroot/gtkpod/libgpod/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28938/src

Modified Files:
        db-artwork-parser.c db-artwork-writer.c itdb_artwork.c 
        itdb_itunesdb.c itdb_track.c ithumb-writer.c 
Log Message:
        * src/db-artwork-writer.c, src/itdb_itunesdb.c,
          src/itdb_track.c, src/ithumb-writer.c: handle artwork size and
          count self-consistently.



Index: db-artwork-parser.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/db-artwork-parser.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- db-artwork-parser.c 4 Dec 2005 05:27:13 -0000       1.11
+++ db-artwork-parser.c 4 Dec 2005 07:01:27 -0000       1.12
@@ -34,6 +34,7 @@
 #include "db-image-parser.h"
 #include "db-itunes-parser.h"
 #include "db-parse-context.h"
+#include <glib/gi18n-lib.h>
 
 typedef int (*ParseListItem)(DBParseContext *ctx, Itdb_iTunesDB *db, GError 
*error);
 
@@ -239,8 +240,9 @@
                return -1;
        }
 
-       if (song->artwork_size != GINT_FROM_LE (mhii->orig_img_size)-1) {
-               g_warning ("iTunesDB and ArtworkDB artwork sizes don't match 
(%d %d)", song->artwork_size , GINT_FROM_LE (mhii->orig_img_size));
+       if ((song->artwork_size+song->artwork_count) !=
+           GINT_FROM_LE (mhii->orig_img_size)-1) {
+               g_warning (_("iTunesDB and ArtworkDB artwork sizes inconsistent 
(%d+%d != %d)"), song->artwork_size, song->artwork_count, GINT_FROM_LE 
(mhii->orig_img_size));
        }
 
        song->artwork->artwork_size = GINT_FROM_LE (mhii->orig_img_size)-1;
@@ -376,7 +378,7 @@
                break;
        }
        default:
-               g_warning ("Unexpected mhsd index: %d\n", 
+               g_warning (_("Unexpected mhsd index: %d\n"), 
                           GINT_FROM_LE (mhsd->index));
                return -1;
                break;

Index: db-artwork-writer.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/db-artwork-writer.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- db-artwork-writer.c 4 Dec 2005 05:27:13 -0000       1.12
+++ db-artwork-writer.c 4 Dec 2005 07:01:27 -0000       1.13
@@ -435,11 +435,7 @@
        total_bytes = GINT_FROM_LE (mhii->header_len);
        mhii->song_id = GINT64_TO_LE (song->dbid);
        mhii->image_id = GUINT_TO_LE (song->artwork->id);
-       /* Adding 1 to artwork_size since this is what iTunes 4.9 does (there
-        * is a 1 difference between the artwork size in iTunesDB and the 
-        * artwork size in ArtworkDB)
-        */
-       mhii->orig_img_size = GINT_TO_LE (song->artwork_size)+1;
+       mhii->orig_img_size = GINT_TO_LE (song->artwork->artwork_size);
        num_children = 0;
        for (it = song->artwork->thumbnails; it != NULL; it = it->next) {
                iPodBuffer *sub_buffer;

Index: itdb_artwork.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/itdb_artwork.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- itdb_artwork.c      28 Nov 2005 19:44:33 -0000      1.2
+++ itdb_artwork.c      4 Dec 2005 07:01:27 -0000       1.3
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-29 00:56:32 jcs>
+/* Time-stamp: <2005-12-04 15:56:23 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -83,9 +83,11 @@
     g_return_val_if_fail (artwork, NULL);
 
     dup = itdb_artwork_new ();
+
+    memcpy (dup, artwork, sizeof (Itdb_Artwork));
+
     dup->thumbnails = dup_thumbnails (artwork->thumbnails);
-    dup->artwork_size = artwork->artwork_size;
-    dup->id = artwork->id;
+
     return dup;
 }
 

Index: itdb_itunesdb.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/itdb_itunesdb.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- itdb_itunesdb.c     28 Nov 2005 19:44:33 -0000      1.35
+++ itdb_itunesdb.c     4 Dec 2005 07:01:27 -0000       1.36
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-27 18:31:02 jcs>
+/* Time-stamp: <2005-12-01 22:11:33 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -2670,25 +2670,6 @@
 }
 
 
-static void update_artwork_info (Itdb_Track *track)
-{
-    GList *gl;
-
-    track->artwork_count = 0;
-    /* count the number of valid thumbnails */
-    for (gl=track->artwork->thumbnails; gl; gl=gl->next)
-    {
-       Itdb_Thumb *thumb = gl->data;
-       g_return_if_fail (thumb);
-       if (thumb->size != 0)  ++track->artwork_count;
-    }
-    if (track->artwork_count != 0)
-       track->artwork_size = track->artwork->artwork_size;
-    else
-       track->artwork_size = 0;
-}
-
-
 /* Write out the mhit header. Size will be written later */
 static void mk_mhit (WContents *cts, Itdb_Track *track)
 {
@@ -2733,7 +2714,6 @@
   else                  put8int (cts, 0);
   put8int (cts, track->app_rating);
   put16lint (cts, track->BPM);
-  update_artwork_info (track);
   put16lint (cts, track->artwork_count);
   put16lint (cts, track->unk126);
   put32lint (cts, track->artwork_size);

Index: itdb_track.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/itdb_track.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- itdb_track.c        28 Nov 2005 16:20:40 -0000      1.13
+++ itdb_track.c        4 Dec 2005 07:01:27 -0000       1.14
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-28 22:31:30 jcs>
+/* Time-stamp: <2005-12-04 15:48:57 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -329,6 +329,17 @@
     if (result == FALSE)
        itdb_artwork_remove_thumbnails (track->artwork);
 
+    /* some black magic :-( */
+    /* track->artwork_size should actually be the total size of
+       artwork packed into MP3 tags. We don't write mp3 tags... */
+    track->artwork_size = track->artwork->artwork_size;
+    /* track->artwork_count should actually be the number of images
+       packed into MP3 tags. */
+    track->artwork_count = 1;
+    /* for some reason artwork->artwork_size is always
+       track->artwork_size + track->artwork_count */
+    track->artwork->artwork_size += track->artwork_count;
+
     return result;
 }
 
@@ -337,6 +348,8 @@
 {
     g_return_if_fail (track);
     itdb_artwork_remove_thumbnails (track->artwork);
+    track->artwork_size = 0;
+    track->artwork_count = 0;
 }
 
 

Index: ithumb-writer.c
===================================================================
RCS file: /cvsroot/gtkpod/libgpod/src/ithumb-writer.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ithumb-writer.c     28 Nov 2005 19:44:33 -0000      1.7
+++ ithumb-writer.c     4 Dec 2005 07:01:27 -0000       1.8
@@ -535,7 +535,6 @@
 
                track = it->data;
                g_return_val_if_fail (track, -1);
-               track->artwork_count = 0;
 
                g_list_foreach (writers, write_thumbnail, track->artwork);
        }



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to