summaryrefslogtreecommitdiffstats
path: root/src/itdb_itunesdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/itdb_itunesdb.c')
-rw-r--r--src/itdb_itunesdb.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
index 195321e..a74cf9c 100644
--- a/src/itdb_itunesdb.c
+++ b/src/itdb_itunesdb.c
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-20 16:06:58 jcs>
+/* Time-stamp: <2005-11-27 18:31:02 jcs>
|
| Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
| Part of the gtkpod project.
@@ -2667,6 +2667,25 @@ static void mk_mhlt (FExport *fexp, guint32 num)
}
+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)
{
@@ -2711,6 +2730,7 @@ static void mk_mhit (WContents *cts, Itdb_Track *track)
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);
@@ -3578,6 +3598,10 @@ gboolean itdb_write_file (Itdb_iTunesDB *itdb, const gchar *filename,
if (!filename) filename = itdb->filename;
+#if HAVE_GDKPIXBUF
+ ipod_write_artwork_db (itdb);
+#endif
+
fexp = g_new0 (FExport, 1);
fexp->itdb = itdb;
fexp->itunesdb = wcontents_new (filename);
@@ -3650,9 +3674,6 @@ gboolean itdb_write (Itdb_iTunesDB *itdb, GError **error)
* Errors happening during that operation are considered non fatal since
* they shouldn't corrupt the main database.
*/
-#if HAVE_GDKPIXBUF
- ipod_write_artwork_db (itdb);
-#endif
itunes_path = itdb_resolve_path (itdb->mountpoint, db);