diff options
Diffstat (limited to 'src/db-artwork-writer.c')
-rw-r--r-- | src/db-artwork-writer.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/db-artwork-writer.c b/src/db-artwork-writer.c index e80657a..4ac5726 100644 --- a/src/db-artwork-writer.c +++ b/src/db-artwork-writer.c @@ -541,23 +541,26 @@ write_mhii (Itdb_DB *db, void *data, iPodBuffer *buffer) switch( buffer->db_type) { case DB_TYPE_ITUNES: song = (Itdb_Track *)data; + artwork = song->artwork; mhii->song_id = get_gint64 (song->dbid, buffer->byte_order); - mhii->image_id = get_guint32 (song->artwork->id, buffer->byte_order); - mhii->orig_img_size = get_gint32 (song->artwork->artwork_size, - buffer->byte_order); - it = song->artwork->thumbnails; break; case DB_TYPE_PHOTO: artwork = (Itdb_Artwork *)data; mhii->song_id = get_gint64 (artwork->id + 2, buffer->byte_order); - mhii->image_id = get_guint32 (artwork->id, buffer->byte_order); - mhii->orig_date = get_guint32 (itdb_time_host_to_mac( artwork->creation_date ) - , buffer->byte_order); - mhii->digitised_date = get_guint32 (itdb_time_host_to_mac( artwork->creation_date ) - , buffer->byte_order); - it = artwork->thumbnails; break; + default: + g_return_val_if_reached (-1); } + mhii->image_id = get_guint32 (artwork->id, buffer->byte_order); + mhii->unknown4 = get_gint32 (artwork->unk028, buffer->byte_order); + mhii->rating = get_gint32 (artwork->rating, buffer->byte_order); + mhii->unknown6 = get_gint32 (artwork->unk036, buffer->byte_order); + mhii->orig_date = get_guint32 (artwork->creation_date, buffer->byte_order); + mhii->digitized_date = get_guint32 (artwork->digitized_date, + buffer->byte_order); + mhii->orig_img_size = get_gint32 (artwork->artwork_size, + buffer->byte_order); + it = artwork->thumbnails; num_children = 0; while (it != NULL) { iPodBuffer *sub_buffer; @@ -628,7 +631,7 @@ write_mhli (Itdb_DB *db, iPodBuffer *buffer ) if (buffer->db_type == DB_TYPE_ITUNES) { song = (Itdb_Track*)it->data; - if (song->artwork->id == 0) { + if (!song->artwork || (song->artwork->id == 0)) { it = it->next; continue; } |