diff options
| author | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2005-11-28 16:20:40 +0000 |
|---|---|---|
| committer | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2005-11-28 16:20:40 +0000 |
| commit | d1b17206d01ebd9c94aa20778cac4b0eed6bfa4a (patch) | |
| tree | 1a6daa9453d7e9fe171fdf680c66d63a0eaabc27 /src/db-artwork-parser.c | |
| parent | 93cfd1639a324a3a168b0438ad852b5d6c864e4d (diff) | |
| download | libgpod-d1b17206d01ebd9c94aa20778cac4b0eed6bfa4a.tar.gz libgpod-d1b17206d01ebd9c94aa20778cac4b0eed6bfa4a.tar.xz libgpod-d1b17206d01ebd9c94aa20778cac4b0eed6bfa4a.zip | |
New API for thumbnail support: see src/itdb.h for details.
* src/itdb.h: Introduced Itdb_Artwork and ItdbThumbType and
changed Itdb_Image to Itdb_Thumb throughout the source.
* src/itdb_artwork.c: new file as backend for Itdb_Artwork support
(new, free, duplicate, get_thumb_by_type, add_thumbnail,
remove_thumbnail, remove_thumbnails), as well as for the
Itdb_Thumb support (new, free, duplicate, get_gdk_pixbuf,
get_filename)
* src/itdb_track.c: new functions for artwork support
(set_thumbnails, remove_thumbnails)
* src/ithumb-writer.c: added support to write thumbnails in
addition to existing thumbnails
* src/db-artwork-parcer.c: (mhod3_get_ithmb_filename)
* src/itdb_itunesdb.c: (update_artwork_info)
* tests/test-covers.c: updated to new API.
* tests/test-write-covers.c: updated to new API.
Known issues: iTunes wipes off our thumbnails.
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1180 f01d2545-417e-4e96-918e-98f8d0dbbcb6
Diffstat (limited to 'src/db-artwork-parser.c')
| -rw-r--r-- | src/db-artwork-parser.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/db-artwork-parser.c b/src/db-artwork-parser.c index 8be8be7..fe88b7e 100644 --- a/src/db-artwork-parser.c +++ b/src/db-artwork-parser.c @@ -108,28 +108,19 @@ static char * mhod3_get_ithmb_filename (MhodHeaderArtworkType3 *mhod3, Itdb_iTunesDB *db) { - char *paths[] = {"iPod_Control", "Artwork", NULL, NULL}; char *filename; - char *result; g_assert (mhod3 != NULL); g_assert (db != NULL); filename = get_utf16_string (mhod3->string, mhod3->string_len); - if ((filename == NULL) || (strlen (filename) < 2)) { - return NULL; - } - - paths[2] = filename+1; - result = itdb_resolve_path (db->mountpoint, (const char **)paths); - g_free (filename); - return result; + return filename; } static int parse_mhod_3 (DBParseContext *ctx, Itdb_iTunesDB *db, - Itdb_Image *image, GError *error) + Itdb_Thumb *thumb, GError *error) { MhodHeader *mhod; MhodHeaderArtworkType3 *mhod3; @@ -147,7 +138,7 @@ parse_mhod_3 (DBParseContext *ctx, Itdb_iTunesDB *db, if ((GINT_FROM_LE (mhod3->type) & 0x00FFFFFF) != MHOD_ARTWORK_TYPE_FILE_NAME) { return -1; } - image->filename = mhod3_get_ithmb_filename (mhod3, db); + thumb->filename = mhod3_get_ithmb_filename (mhod3, db); dump_mhod_type_3 (mhod3); return 0; } @@ -157,7 +148,7 @@ parse_mhni (DBParseContext *ctx, iPodSong *song, GError *error) { MhniHeader *mhni; DBParseContext *mhod_ctx; - Itdb_Image *thumb; + Itdb_Thumb *thumb; mhni = db_parse_context_get_m_header (ctx, MhniHeader, "mhni"); if (mhni == NULL) { @@ -168,7 +159,8 @@ parse_mhni (DBParseContext *ctx, iPodSong *song, GError *error) thumb = ipod_image_new_from_mhni (mhni, song->itdb); if (thumb != NULL) { - song->thumbnails = g_list_append (song->thumbnails, thumb); + song->artwork->thumbnails = + g_list_append (song->artwork->thumbnails, thumb); } mhod_ctx = db_parse_context_get_sub_context (ctx, ctx->header_len); @@ -249,8 +241,8 @@ parse_mhii (DBParseContext *ctx, Itdb_iTunesDB *db, GError *error) g_warning ("iTunesDB and ArtworkDB artwork sizes don't match (%d %d)", song->artwork_size , GINT_FROM_LE (mhii->orig_img_size)); } - song->artwork_size = GINT_FROM_LE (mhii->orig_img_size)-1; - song->image_id = GINT_FROM_LE (mhii->image_id); + song->artwork->artwork_size = GINT_FROM_LE (mhii->orig_img_size)-1; + song->artwork->id = GINT_FROM_LE (mhii->image_id); #endif cur_offset = ctx->header_len; |
