Summary: | support libtunepimp-0.4.0 | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Michel Albert <exhuma> |
Component: | general | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | CC: | anthrem, hanno, pluto, rdieter |
Priority: | NOR | ||
Version: | 1.3.6 | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed 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) + |