summaryrefslogtreecommitdiffstats
path: root/src/db-artwork-parser.c
diff options
context:
space:
mode:
authorJorg Schuler <jcsjcs@users.sourceforge.net>2005-11-28 16:20:40 +0000
committerJorg Schuler <jcsjcs@users.sourceforge.net>2005-11-28 16:20:40 +0000
commitd1b17206d01ebd9c94aa20778cac4b0eed6bfa4a (patch)
tree1a6daa9453d7e9fe171fdf680c66d63a0eaabc27 /src/db-artwork-parser.c
parent93cfd1639a324a3a168b0438ad852b5d6c864e4d (diff)
downloadlibgpod-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.c24
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;