Blob Blame History Raw
diff -ur amarok-2.0.96/CMakeLists.txt amarok-2.0.96-old-libgpod/CMakeLists.txt
--- amarok-2.0.96/CMakeLists.txt	2009-05-26 23:22:01.000000000 +0200
+++ amarok-2.0.96-old-libgpod/CMakeLists.txt	2009-05-26 23:22:54.000000000 +0200
@@ -54,10 +54,7 @@
     macro_log_feature( STRIGI_FOUND "strigi" "Index metadata of files" "http://strigi.sourceforge.net" TRUE "" "" )
 
     macro_optional_find_package(Ipod)
-    if(IPOD_FOUND)
-        macro_ensure_version("0.7.0" ${IPOD_VERSION} IPOD_0_7)
-    endif(IPOD_FOUND)
-    macro_log_feature( IPOD_0_7 "libgpod" "Support Apple iPod audio devices" "http://sourceforge.net/projects/gtkpod/" FALSE "0.7.0" "" )
+    macro_log_feature( IPOD_FOUND "libgpod" "Support Apple iPod audio devices" "http://sourceforge.net/projects/gtkpod/" FALSE "0.6.0" "" )
  
     if( WITH_Ipod )
         macro_optional_find_package(Gdk)
diff -ur amarok-2.0.96/src/collection/ipodcollection/CMakeLists.txt amarok-2.0.96-old-libgpod/src/collection/ipodcollection/CMakeLists.txt
--- amarok-2.0.96/src/collection/ipodcollection/CMakeLists.txt	2009-05-26 23:22:01.000000000 +0200
+++ amarok-2.0.96-old-libgpod/src/collection/ipodcollection/CMakeLists.txt	2009-05-26 23:23:35.000000000 +0200
@@ -7,7 +7,7 @@
    SET(GDK_LIBRARIES "")
 endif(NOT GDK_FOUND)
 
-if (IPOD_FOUND AND IPOD_0_7 AND WITH_Ipod)
+if (IPOD_FOUND AND WITH_Ipod)
    include_directories( ../..
    ../../plugin
    ../../meta
@@ -66,4 +66,4 @@
         amarok_collection-ipodcollection.desktop 
         DESTINATION 
         ${SERVICES_INSTALL_DIR})
-endif (IPOD_FOUND AND IPOD_0_7 AND WITH_Ipod)
+endif (IPOD_FOUND AND WITH_Ipod)
diff -ur amarok-2.0.96/src/collection/ipodcollection/handler/IpodHandler.cpp amarok-2.0.96-old-libgpod/src/collection/ipodcollection/handler/IpodHandler.cpp
--- amarok-2.0.96/src/collection/ipodcollection/handler/IpodHandler.cpp	2009-05-26 23:22:01.000000000 +0200
+++ amarok-2.0.96-old-libgpod/src/collection/ipodcollection/handler/IpodHandler.cpp	2009-05-27 00:21:50.000000000 +0200
@@ -1299,7 +1299,68 @@
     if( ipodtrack->has_artwork == 0x02 )
         return;
 
-    GdkPixbuf *pixbuf = (GdkPixbuf*) itdb_artwork_get_pixbuf( ipodtrack->itdb->device, ipodtrack->artwork, -1, -1 );
+    Itdb_Thumb *thumb = NULL;
+    GdkPixbuf *pixbuf = NULL;
+    QString thumbPath;
+
+    // try small first
+    thumb = itdb_artwork_get_thumb_by_type ( ipodtrack->artwork, ITDB_THUMB_COVER_SMALL );
+
+    // then large if needed
+    if( thumb == NULL)
+    {
+        thumb = itdb_artwork_get_thumb_by_type ( ipodtrack->artwork, ITDB_THUMB_COVER_LARGE );
+    }
+
+    if( thumb != NULL)
+    {
+        pixbuf = (GdkPixbuf*) itdb_thumb_get_gdk_pixbuf( ipodtrack->itdb->device, thumb );
+    }
+    else
+    {
+        GList *thumbs = ipodtrack->artwork->thumbnails;
+
+        for(; thumbs; thumbs = thumbs->next)
+        {
+            Itdb_Thumb *curThumb = ( Itdb_Thumb * )thumbs->data;
+            if( curThumb == NULL)
+                continue;
+
+            switch( curThumb->type )
+            {
+                case ITDB_THUMB_PHOTO_SMALL:
+                    break;
+                case ITDB_THUMB_PHOTO_LARGE:
+                    break;
+                case ITDB_THUMB_PHOTO_FULL_SCREEN:
+                    break;
+                case ITDB_THUMB_PHOTO_TV_SCREEN:
+                    break;
+                case ITDB_THUMB_COVER_XLARGE:
+                    break;
+                case ITDB_THUMB_COVER_MEDIUM:
+                    break;
+                case ITDB_THUMB_COVER_SMEDIUM:
+                    break;
+                case ITDB_THUMB_COVER_XSMALL:
+                    break;
+
+                default:
+                    break;
+            }
+
+            thumb = curThumb;
+            break;
+
+        }
+
+        if( thumb != NULL)
+        {
+            thumbPath = QString::fromUtf8( itdb_thumb_get_filename( ipodtrack->itdb->device, thumb ) );
+            pixbuf = (GdkPixbuf*) itdb_thumb_get_gdk_pixbuf( ipodtrack->itdb->device, thumb );
+        }
+    }
+
     if( !pixbuf )
         return;