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
|