| Summary: | support libtunepimp-0.4.0 | ||
|---|---|---|---|
| Product: | [Applications] amarok | Reporter: | Michel Albert <exhuma> |
| Component: | general | Assignee: | Amarok Bugs <amarok-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | wishlist | CC: | anthrem, hanno, pluto, rdieter |
| Priority: | NOR | ||
| Version First Reported In: | 1.3.6 | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | quick-n-dirty (untested) build fix | ||
|
Description
Michel Albert
2004-12-12 15:50:51 UTC
Did you use --enable-final? amaroK does not support that. Invalid, because --enable-final is unsupported. It should be. For those looking at this bug and getting a similar error, it's probably caused by using tunepimp CVS, which is not supported. Please use tunepimp 0.3.x I used the latest release tunepimp-0.4.0 , apparently that is not supported either than? Verified against libtunepimp-0.4.0. See also bug #116575 (kdemultimedia/juk) Created attachment 13516 [details]
quick-n-dirty (untested) build fix
*** Bug 116566 has been marked as a duplicate of this bug. *** *** Bug 119505 has been marked as a duplicate of this bug. *** It appears the quick-n-dirty patch included here has at least one big problem: amarok hangs when trying to use "Fill in the tag with Musicbrainz" feature on unsupported filetypes (ie, on mp3's, but when using a libtunepimp built without mp3 support). SVN commit 499350 by mueller:
support musicbrainz 0.4.x
BUG:94988
M +3 -1 configure.in.in
M +26 -3 src/ktrm.cpp
--- branches/stable/extragear/multimedia/amarok/configure.in.in #499349:499350
@@ -591,7 +591,9 @@
fi
if test "$build_musicbrainz" = "yes"; then
- AC_DEFINE(HAVE_TUNEPIMP, 1, [have TunePimp])
+ AC_CHECK_LIB(tunepimp, tp_SetFileNameEncoding,
+ AC_DEFINE(HAVE_TUNEPIMP, 4, [have MusicBrainz 0.4.x]),
+ AC_DEFINE(HAVE_TUNEPIMP, 1, [have MusicBrainz]))
LIB_TUNEPIMP="-ltunepimp"
have_tunepimp=yes
else
--- branches/stable/extragear/multimedia/amarok/src/ktrm.cpp #499349:499350
@@ -42,7 +42,11 @@
extern "C"
{
+#if HAVE_TUNEPIMP >= 4
+ static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId, TPFileStatus status);
+#else
static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId);
+#endif
}
/**
@@ -66,7 +70,11 @@
int id;
if(!m_fileMap.contains(lookup->file())) {
+#if HAVE_TUNEPIMP >= 4
+ id = tp_AddFile(m_pimp, QFile::encodeName(lookup->file()), 0);
+#else
id = tp_AddFile(m_pimp, QFile::encodeName(lookup->file()));
+#endif
m_fileMap.insert(lookup->file(), id);
}
else {
@@ -121,7 +129,11 @@
tp_SetAutoSaveThreshold(m_pimp, -1);
tp_SetMoveFiles(m_pimp, false);
tp_SetRenameFiles(m_pimp, false);
+#if HAVE_TUNEPIMP >= 4
+ tp_SetFileNameEncoding(m_pimp, "UTF-8");
+#else
tp_SetUseUTF8(m_pimp, true);
+#endif
tp_SetNotifyCallback(m_pimp, TRMNotifyCallback, 0);
if(KProtocolManager::useProxy()) {
@@ -244,14 +256,19 @@
/**
* Callback fuction for TunePimp lookup events.
*/
-
-static void TRMNotifyCallback(tunepimp_t pimp, void *, TPCallbackEnum type, int fileId)
+#if HAVE_TUNEPIMP >= 4
+static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId, TPFileStatus status)
+#else
+static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId)
+#endif
{
if(type != tpFileChanged)
return;
track_t track = tp_GetTrack(pimp, fileId);
+#if HAVE_TUNEPIMP < 4
TPFileStatus status = tr_GetStatus(track);
+#endif
switch(status) {
case eRecognized:
@@ -556,10 +573,16 @@
KTRMResult result;
result.d->title = QString::fromUtf8(tracks[i]->name);
+#if HAVE_TUNEPIMP >= 4
+ result.d->artist = QString::fromUtf8(tracks[i]->artist.name);
+ result.d->album = QString::fromUtf8(tracks[i]->album.name);
+ result.d->year = tracks[i]->album.releaseYear;
+#else
result.d->artist = QString::fromUtf8(tracks[i]->artist->name);
result.d->album = QString::fromUtf8(tracks[i]->album->name);
+ result.d->year = tracks[i]->album->releaseYear;
+#endif
result.d->track = tracks[i]->trackNum;
- result.d->year = tracks[i]->album->releaseYear;
result.d->relevance =
4 * stringSimilarity(strList,result.d->title) +
2 * stringSimilarity(strList,result.d->artist) +
SVN commit 499352 by mueller:
musicbrainz 0.4.x support
CCBUG:94988
M +3 -1 configure.in.in
M +26 -3 src/ktrm.cpp
--- trunk/extragear/multimedia/amarok/configure.in.in #499351:499352
@@ -694,7 +694,9 @@
fi
if test "$build_musicbrainz" = "yes"; then
- AC_DEFINE(HAVE_TUNEPIMP, 1, [have TunePimp])
+ AC_CHECK_LIB(tunepimp, tp_SetFileNameEncoding,
+ AC_DEFINE(HAVE_TUNEPIMP, 4, [have MusicBrainz 0.4.x]),
+ AC_DEFINE(HAVE_TUNEPIMP, 1, [have MusicBrainz]))
LIB_TUNEPIMP="-ltunepimp"
have_tunepimp=yes
else
--- trunk/extragear/multimedia/amarok/src/ktrm.cpp #499351:499352
@@ -42,7 +42,11 @@
extern "C"
{
+#if HAVE_TUNEPIMP >= 4
+ static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId, TPFileStatus status);
+#else
static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId);
+#endif
}
/**
@@ -66,7 +70,11 @@
int id;
if(!m_fileMap.contains(lookup->file())) {
+#if HAVE_TUNEPIMP >= 4
+ id = tp_AddFile(m_pimp, QFile::encodeName(lookup->file()), 0);
+#else
id = tp_AddFile(m_pimp, QFile::encodeName(lookup->file()));
+#endif
m_fileMap.insert(lookup->file(), id);
}
else {
@@ -121,7 +129,11 @@
tp_SetAutoSaveThreshold(m_pimp, -1);
tp_SetMoveFiles(m_pimp, false);
tp_SetRenameFiles(m_pimp, false);
+#if HAVE_TUNEPIMP >= 4
+ tp_SetFileNameEncoding(m_pimp, "UTF-8");
+#else
tp_SetUseUTF8(m_pimp, true);
+#endif
tp_SetNotifyCallback(m_pimp, TRMNotifyCallback, 0);
if(KProtocolManager::useProxy()) {
@@ -244,14 +256,19 @@
/**
* Callback fuction for TunePimp lookup events.
*/
-
-static void TRMNotifyCallback(tunepimp_t pimp, void *, TPCallbackEnum type, int fileId)
+#if HAVE_TUNEPIMP >= 4
+static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId, TPFileStatus status)
+#else
+static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId)
+#endif
{
if(type != tpFileChanged)
return;
track_t track = tp_GetTrack(pimp, fileId);
+#if HAVE_TUNEPIMP < 4
TPFileStatus status = tr_GetStatus(track);
+#endif
switch(status) {
case eRecognized:
@@ -556,10 +573,16 @@
KTRMResult result;
result.d->title = QString::fromUtf8(tracks[i]->name);
+#if HAVE_TUNEPIMP >= 4
+ result.d->artist = QString::fromUtf8(tracks[i]->artist.name);
+ result.d->album = QString::fromUtf8(tracks[i]->album.name);
+ result.d->year = tracks[i]->album.releaseYear;
+#else
result.d->artist = QString::fromUtf8(tracks[i]->artist->name);
result.d->album = QString::fromUtf8(tracks[i]->album->name);
+ result.d->year = tracks[i]->album->releaseYear;
+#endif
result.d->track = tracks[i]->trackNum;
- result.d->year = tracks[i]->album->releaseYear;
result.d->relevance =
4 * stringSimilarity(strList,result.d->title) +
2 * stringSimilarity(strList,result.d->artist) +
|