summaryrefslogtreecommitdiff
blob: 4109649f693415b8ae451eca058ec70c0b3a45ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Index: src/mediadevice/ipod/ipodmediadevice.cpp
===================================================================
--- amarok-svn/amarok/src/mediadevice/ipod/ipodmediadevice.cpp	(revision 605590)
+++ amarok-svn/amarok/src/mediadevice/ipod/ipodmediadevice.cpp	(revision 605591)
@@ -302,7 +302,11 @@
     track->genre = g_strdup( metaBundle.genre()->utf8() );
 
 
+#ifdef HAVE_ITDB_MEDIATYPE
+    track->mediatype = 0x01; // for audio
+#else
     track->unk208 = 0x01; // for audio
+#endif
     if(type=="wav")
     {
         track->filetype = g_strdup( "wav" );
@@ -323,7 +327,11 @@
 #else
         track->flag3 |= 0x01; // remember current position in track
 #endif
+#ifdef HAVE_ITDB_MEDIATYPE
+        track->mediatype = 0x08; // for audiobooks
+#else
         track->unk208 = 0x08; // for audiobooks
+#endif
     }
     else if(type=="m4v" || type=="mp4v" || type=="mov" || type=="mpg" || type=="mp4")
     {
@@ -331,7 +339,11 @@
 #ifdef HAVE_ITDB_SKIP_SHUFFLE_FLAG
         track->movie_flag = 0x01; // for videos
 #endif
+#ifdef HAVE_ITDB_MEDIATYPE
+        track->mediatype = 0x02; // for videos
+#else
         track->unk208 = 0x02; // for videos
+#endif
     }
     else if(type=="aa")
     {
@@ -341,7 +353,11 @@
 #else
         track->flag3 |= 0x01; // remember current position in track
 #endif
+#ifdef HAVE_ITDB_MEDIATYPE
+        track->mediatype = 0x08; // for audiobooks
+#else
         track->unk208 = 0x08; // for audiobooks
+#endif
 
         TagLib::Audible::File f( QFile::encodeName( propertiesBundle.url().path() ) );
         TagLib::Audible::Tag *t = f.getAudibleTag();
@@ -384,7 +400,11 @@
 #ifdef HAVE_ITDB_MARK_UNPLAYED
         track->mark_unplayed = podcastInfo->listened ? 0x01 : 0x02;
 #endif
+#ifdef HAVE_ITDB_MEDIATYPE
+        track->mediatype = track->mediatype==0x02 ? 0x06 : 0x04; // video or audio podcast
+#else
         track->unk208 = track->unk208==0x02 ? 0x06 : 0x04; // video or audio podcast
+#endif
         track->flag4 = 0x01; // also show description on iPod
         QString plaindesc = podcastInfo->description;
         plaindesc.replace( QRegExp("<[^>]*>"), "" );
Index: configure.in.in
===================================================================
--- amarok-svn/amarok/configure.in.in	(revision 605590)
+++ amarok-svn/amarok/configure.in.in	(revision 605591)
@@ -910,6 +910,11 @@
                   ,
                   [#include <gpod/itdb.h>])
 
+            AC_CHECK_MEMBER(struct _Itdb_Track.mediatype,
+                  [AC_DEFINE(HAVE_ITDB_MEDIATYPE, 1, [have libgpod mediatype flag])],
+                  ,
+                  [#include <gpod/itdb.h>])
+
             CPPFLAGS=$ac_cppflags_save
             CFLAGS=$ac_cflags_save
             LDFLAGS=$ac_ldflags_save