1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-13 17:43:59 +02:00

q&d fix: hide stations in UI because they no longer work (#562)

Echonest API is dead :( remove libechonest dependency & hide stations in UI
This commit is contained in:
Stefan Derkits
2016-10-28 23:21:13 +02:00
committed by GitHub
parent 3e2d74128d
commit ed9a027644
17 changed files with 76 additions and 122 deletions

View File

@@ -315,9 +315,6 @@ if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR APPLE) AND LIBCPP_FOUND)
tomahawk_add_cxx_flags( "-stdlib=libc++" ) tomahawk_add_cxx_flags( "-stdlib=libc++" )
endif() endif()
macro_optional_find_package(Echonest 2.3.0)
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.3.0 is needed for dynamic playlists and the infosystem")
find_package(Boost REQUIRED COMPONENTS filesystem system) find_package(Boost REQUIRED COMPONENTS filesystem system)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation

View File

@@ -1,42 +0,0 @@
# - Find libechonest
# Find the libechonest includes and the libechonest libraries
# This module defines
# ECHONEST_INCLUDE_DIR, root echonest include dir. Include echonest includes with echonest/foo.h
# ECHONEST_LIBRARIES, the path to libechonest
# ECHONEST_FOUND, whether libechonest was found
FIND_PACKAGE(PkgConfig QUIET)
if( TOMAHAWK_QT5 )
set(LIBECHONEST_SUFFIX "5")
endif()
PKG_CHECK_MODULES(PC_ECHONEST QUIET libechonest${LIBECHONEST_SUFFIX})
FIND_PATH(ECHONEST_INCLUDE_DIR NAMES echonest${LIBECHONEST_SUFFIX}/Track.h
HINTS
${PC_ECHONEST_INCLUDEDIR}
${PC_ECHONEST_INCLUDE_DIRS}
${CMAKE_INSTALL_INCLUDEDIR}
${KDE4_INCLUDE_DIR}
)
FIND_LIBRARY(ECHONEST_LIBRARIES NAMES echonest${LIBECHONEST_SUFFIX}
HINTS
${PC_ECHONEST_LIBDIR}
${PC_ECHONEST_LIBRARY_DIRS}
${CMAKE_INSTALL_LIBDIR}
${KDE4_LIB_DIR}
)
IF(ECHONEST_LIBRARIES AND ECHONEST_INCLUDE_DIR AND NOT PC_ECHONEST_VERSION)
MESSAGE(WARNING "You don't have pkg-config and so the libechonest version check does not work!")
set(PC_ECHONEST_VERSION "999.9.9")
ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Echonest
REQUIRED_VARS ECHONEST_LIBRARIES ECHONEST_INCLUDE_DIR
VERSION_VAR PC_ECHONEST_VERSION)
MARK_AS_ADVANCED(ECHONEST_INCLUDE_DIR ECHONEST_LIBRARIES)

View File

@@ -79,7 +79,6 @@ Required dependencies:
* [TagLib 1.8](https://taglib.github.io/) * [TagLib 1.8](https://taglib.github.io/)
* [Boost 1.3](http://www.boost.org/) * [Boost 1.3](http://www.boost.org/)
* [Lucene++ 3.0.6](https://github.com/luceneplusplus/LucenePlusPlus/) * [Lucene++ 3.0.6](https://github.com/luceneplusplus/LucenePlusPlus/)
* [libechonest 2.3.1](http://projects.kde.org/projects/playground/libs/libechonest/)
* [Attica 5.6.0](http://ftp.kde.org/stable/attica/) * [Attica 5.6.0](http://ftp.kde.org/stable/attica/)
* [QuaZip 0.4.3](http://quazip.sourceforge.net/) * [QuaZip 0.4.3](http://quazip.sourceforge.net/)
* [liblastfm 1.0.9](https://github.com/lastfm/liblastfm/) * [liblastfm 1.0.9](https://github.com/lastfm/liblastfm/)

View File

@@ -1,5 +1,4 @@
include_directories( include_directories(
${ECHONEST_INCLUDE_DIR}
${Boost_INCLUDE_DIR} ${Boost_INCLUDE_DIR}
) )
if(WIN32 OR APPLE) if(WIN32 OR APPLE)
@@ -15,7 +14,6 @@ endif()
endif(WIN32 OR APPLE) endif(WIN32 OR APPLE)
list(APPEND simple_plugins list(APPEND simple_plugins
Echonest
Charts Charts
NewReleases NewReleases
Spotify Spotify

View File

@@ -120,9 +120,12 @@ ActionCollection::initActions()
m_actionCollection[ "createPlaylist" ] = new QAction( tr( "Create Playlist" ), this ); m_actionCollection[ "createPlaylist" ] = new QAction( tr( "Create Playlist" ), this );
m_actionCollection[ "createPlaylist" ]->setShortcut( QKeySequence( "Ctrl+N" ) ); m_actionCollection[ "createPlaylist" ]->setShortcut( QKeySequence( "Ctrl+N" ) );
m_actionCollection[ "createPlaylist" ]->setShortcutContext( Qt::ApplicationShortcut ); m_actionCollection[ "createPlaylist" ]->setShortcutContext( Qt::ApplicationShortcut );
// echonest is dead, disable stations
/*
m_actionCollection[ "createStation" ] = new QAction( tr( "Create Station" ), this ); m_actionCollection[ "createStation" ] = new QAction( tr( "Create Station" ), this );
m_actionCollection[ "createStation" ]->setShortcut( QKeySequence( "Ctrl+S" ) ); m_actionCollection[ "createStation" ]->setShortcut( QKeySequence( "Ctrl+S" ) );
m_actionCollection[ "createStation" ]->setShortcutContext( Qt::ApplicationShortcut ); m_actionCollection[ "createStation" ]->setShortcutContext( Qt::ApplicationShortcut );
*/
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
m_actionCollection[ "minimize" ] = new QAction( tr( "Minimize" ), this ); m_actionCollection[ "minimize" ] = new QAction( tr( "Minimize" ), this );
m_actionCollection[ "minimize" ]->setShortcut( QKeySequence( "Ctrl+M" ) ); m_actionCollection[ "minimize" ]->setShortcut( QKeySequence( "Ctrl+M" ) );
@@ -171,7 +174,8 @@ ActionCollection::createMenuBar( QWidget *parent )
controlsMenu->addAction( m_actionCollection[ "showOfflineSources" ] ); controlsMenu->addAction( m_actionCollection[ "showOfflineSources" ] );
controlsMenu->addSeparator(); controlsMenu->addSeparator();
controlsMenu->addAction( m_actionCollection[ "createPlaylist" ] ); controlsMenu->addAction( m_actionCollection[ "createPlaylist" ] );
controlsMenu->addAction( m_actionCollection[ "createStation" ] ); // echonest is dead, disable stations
// controlsMenu->addAction( m_actionCollection[ "createStation" ] );
controlsMenu->addAction( m_actionCollection[ "importPlaylist" ] ); controlsMenu->addAction( m_actionCollection[ "importPlaylist" ] );
controlsMenu->addAction( m_actionCollection[ "updateCollection" ] ); controlsMenu->addAction( m_actionCollection[ "updateCollection" ] );
controlsMenu->addAction( m_actionCollection[ "rescanCollection" ] ); controlsMenu->addAction( m_actionCollection[ "rescanCollection" ] );

View File

@@ -74,9 +74,6 @@ set( libGuiSources
playlist/dynamic/DynamicPlaylist.cpp playlist/dynamic/DynamicPlaylist.cpp
playlist/dynamic/DynamicView.cpp playlist/dynamic/DynamicView.cpp
playlist/dynamic/DynamicModel.cpp playlist/dynamic/DynamicModel.cpp
playlist/dynamic/echonest/EchonestGenerator.cpp
playlist/dynamic/echonest/EchonestControl.cpp
playlist/dynamic/echonest/EchonestSteerer.cpp
playlist/dynamic/widgets/DynamicWidget.cpp playlist/dynamic/widgets/DynamicWidget.cpp
playlist/dynamic/widgets/DynamicControlWrapper.cpp playlist/dynamic/widgets/DynamicControlWrapper.cpp
playlist/dynamic/widgets/DynamicControlList.cpp playlist/dynamic/widgets/DynamicControlList.cpp
@@ -208,7 +205,6 @@ list(APPEND libSources
PlaylistInterface.cpp PlaylistInterface.cpp
UrlHandler.cpp UrlHandler.cpp
EchonestCatalogSynchronizer.cpp
accounts/AccountManager.cpp accounts/AccountManager.cpp
accounts/Account.cpp accounts/Account.cpp
@@ -413,7 +409,6 @@ include_directories(
${QT_INCLUDE_DIR} ${QT_INCLUDE_DIR}
${QJSON_INCLUDE_DIR} ${QJSON_INCLUDE_DIR}
${ECHONEST_INCLUDE_DIR}
${LUCENEPP_INCLUDE_DIRS} ${LUCENEPP_INCLUDE_DIRS}
${LIBVLC_INCLUDE_DIR} ${LIBVLC_INCLUDE_DIR}
${Boost_INCLUDE_DIR} ${Boost_INCLUDE_DIR}
@@ -535,7 +530,6 @@ TARGET_LINK_LIBRARIES( ${TOMAHAWK_LIBRARY}
# External deps # External deps
${QJSON_LIBRARIES} ${QJSON_LIBRARIES}
${LUCENEPP_LIBRARIES} ${LUCENEPP_LIBRARIES}
${ECHONEST_LIBRARIES}
${QT_QTSQL_LIBRARY} ${QT_QTSQL_LIBRARY}
${QT_QTUITOOLS_LIBRARY} ${QT_QTUITOOLS_LIBRARY}
${QT_QTGUI_LIBRARY} ${QT_QTGUI_LIBRARY}
@@ -579,7 +573,7 @@ file( GLOB networkHeaders "network/*.h" )
file( GLOB playlistHeaders "playlist/*.h" ) file( GLOB playlistHeaders "playlist/*.h" )
file( GLOB playlistDynamicHeaders "playlist/dynamic/*.h" ) file( GLOB playlistDynamicHeaders "playlist/dynamic/*.h" )
file( GLOB playlistDynamicDatabaseHeaders "playlist/dynamic/database/*.h" ) file( GLOB playlistDynamicDatabaseHeaders "playlist/dynamic/database/*.h" )
file( GLOB playlistDynamicEchonestHeaders "playlist/dynamic/echonest/*.h" ) # file( GLOB playlistDynamicEchonestHeaders "playlist/dynamic/echonest/*.h" )
file( GLOB playlistDynamicWidgetsHeaders "playlist/dynamic/widgets/*.h" ) file( GLOB playlistDynamicWidgetsHeaders "playlist/dynamic/widgets/*.h" )
file( GLOB resolversHeaders "resolvers/*.h" ) file( GLOB resolversHeaders "resolvers/*.h" )
file( GLOB sipHeaders "sip/*.h" ) file( GLOB sipHeaders "sip/*.h" )
@@ -608,7 +602,7 @@ install( FILES ${networkHeaders} DESTINATION include/libtomahawk/network )
install( FILES ${playlistHeaders} DESTINATION include/libtomahawk/playlist ) install( FILES ${playlistHeaders} DESTINATION include/libtomahawk/playlist )
install( FILES ${playlistDynamicHeaders} DESTINATION include/libtomahawk/playlist/dynamic ) install( FILES ${playlistDynamicHeaders} DESTINATION include/libtomahawk/playlist/dynamic )
install( FILES ${playlistDynamicDatabaseHeaders} DESTINATION include/libtomahawk/playlist/dynamic/database ) install( FILES ${playlistDynamicDatabaseHeaders} DESTINATION include/libtomahawk/playlist/dynamic/database )
install( FILES ${playlistDynamicEchonestHeaders} DESTINATION include/libtomahawk/playlist/dynamic/echonest ) # install( FILES ${playlistDynamicEchonestHeaders} DESTINATION include/libtomahawk/playlist/dynamic/echonest )
install( FILES ${playlistDynamicWidgetsHeaders} DESTINATION include/libtomahawk/playlist/dynamic/widgets ) install( FILES ${playlistDynamicWidgetsHeaders} DESTINATION include/libtomahawk/playlist/dynamic/widgets )
install( FILES ${resolversHeaders} DESTINATION include/libtomahawk/resolvers ) install( FILES ${resolversHeaders} DESTINATION include/libtomahawk/resolvers )
install( FILES ${sipHeaders} DESTINATION include/libtomahawk/sip ) install( FILES ${sipHeaders} DESTINATION include/libtomahawk/sip )

View File

@@ -46,12 +46,6 @@
#include "TomahawkSettings.h" #include "TomahawkSettings.h"
#include "ViewManager.h" #include "ViewManager.h"
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
#include <echonest5/Playlist.h>
#else
#include <echonest/Playlist.h>
#endif
#include <QMessageBox> #include <QMessageBox>
#include <QFileInfo> #include <QFileInfo>
@@ -912,144 +906,144 @@ GlobalActionManager::loadDynamicPlaylist( const QUrl& url, bool station )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Artist" ); dyncontrol_ptr c = pl->generator()->createControl( "Artist" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistRadioType ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistRadioType ) );
controls << c; // controls << c;
} }
else if ( param.first == "artist_limitto" ) else if ( param.first == "artist_limitto" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Artist" ); dyncontrol_ptr c = pl->generator()->createControl( "Artist" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistType ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistType ) );
controls << c; // controls << c;
} }
else if ( param.first == "description" ) else if ( param.first == "description" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Artist Description" ); dyncontrol_ptr c = pl->generator()->createControl( "Artist Description" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistDescriptionType ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistDescriptionType ) );
controls << c; // controls << c;
} }
else if ( param.first == "variety" ) else if ( param.first == "variety" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Variety" ); dyncontrol_ptr c = pl->generator()->createControl( "Variety" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Variety ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Variety ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "tempo" ) ) else if ( param.first.startsWith( "tempo" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Tempo" ); dyncontrol_ptr c = pl->generator()->createControl( "Tempo" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinTempo + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinTempo + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "duration" ) ) else if ( param.first.startsWith( "duration" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Duration" ); dyncontrol_ptr c = pl->generator()->createControl( "Duration" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinDuration + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinDuration + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "loudness" ) ) else if ( param.first.startsWith( "loudness" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Loudness" ); dyncontrol_ptr c = pl->generator()->createControl( "Loudness" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinLoudness + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinLoudness + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "danceability" ) ) else if ( param.first.startsWith( "danceability" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Danceability" ); dyncontrol_ptr c = pl->generator()->createControl( "Danceability" );
int extra = param.first.endsWith( "_max" ) ? 1 : 0; int extra = param.first.endsWith( "_max" ) ? 1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinDanceability + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinDanceability + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "energy" ) ) else if ( param.first.startsWith( "energy" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Energy" ); dyncontrol_ptr c = pl->generator()->createControl( "Energy" );
int extra = param.first.endsWith( "_max" ) ? 1 : 0; int extra = param.first.endsWith( "_max" ) ? 1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinEnergy + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::MinEnergy + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "artist_familiarity" ) ) else if ( param.first.startsWith( "artist_familiarity" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Artist Familiarity" ); dyncontrol_ptr c = pl->generator()->createControl( "Artist Familiarity" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinFamiliarity + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinFamiliarity + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "artist_hotttnesss" ) ) else if ( param.first.startsWith( "artist_hotttnesss" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Artist Hotttnesss" ); dyncontrol_ptr c = pl->generator()->createControl( "Artist Hotttnesss" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinHotttnesss + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinHotttnesss + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "song_hotttnesss" ) ) else if ( param.first.startsWith( "song_hotttnesss" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Song Hotttnesss" ); dyncontrol_ptr c = pl->generator()->createControl( "Song Hotttnesss" );
int extra = param.first.endsWith( "_max" ) ? -1 : 0; int extra = param.first.endsWith( "_max" ) ? -1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::SongMinHotttnesss + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::SongMinHotttnesss + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "longitude" ) ) else if ( param.first.startsWith( "longitude" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Longitude" ); dyncontrol_ptr c = pl->generator()->createControl( "Longitude" );
int extra = param.first.endsWith( "_max" ) ? 1 : 0; int extra = param.first.endsWith( "_max" ) ? 1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinLongitude + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinLongitude + extra ) );
controls << c; // controls << c;
} }
else if ( param.first.startsWith( "latitude" ) ) else if ( param.first.startsWith( "latitude" ) )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Latitude" ); dyncontrol_ptr c = pl->generator()->createControl( "Latitude" );
int extra = param.first.endsWith( "_max" ) ? 1 : 0; int extra = param.first.endsWith( "_max" ) ? 1 : 0;
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinLatitude + extra ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::ArtistMinLatitude + extra ) );
controls << c; // controls << c;
} }
else if ( param.first == "key" ) else if ( param.first == "key" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Key" ); dyncontrol_ptr c = pl->generator()->createControl( "Key" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Key ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Key ) );
controls << c; // controls << c;
} }
else if ( param.first == "mode" ) else if ( param.first == "mode" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Mode" ); dyncontrol_ptr c = pl->generator()->createControl( "Mode" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Mode ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Mode ) );
controls << c; // controls << c;
} }
else if ( param.first == "mood" ) else if ( param.first == "mood" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Mood" ); dyncontrol_ptr c = pl->generator()->createControl( "Mood" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Mood ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Mood ) );
controls << c; // controls << c;
} }
else if ( param.first == "style" ) else if ( param.first == "style" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Style" ); dyncontrol_ptr c = pl->generator()->createControl( "Style" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Style ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::Style ) );
controls << c; // controls << c;
} }
else if ( param.first == "song" ) else if ( param.first == "song" )
{ {
dyncontrol_ptr c = pl->generator()->createControl( "Song" ); dyncontrol_ptr c = pl->generator()->createControl( "Song" );
c->setInput( param.second ); c->setInput( param.second );
c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::SongRadioType ) ); // c->setMatch( QString::number( (int)Echonest::DynamicPlaylist::SongRadioType ) );
controls << c; // controls << c;
} }
} }

View File

@@ -128,10 +128,13 @@ DatabaseCollection::playlists()
QList< dynplaylist_ptr > QList< dynplaylist_ptr >
DatabaseCollection::autoPlaylists() DatabaseCollection::autoPlaylists()
{ {
// echonest is dead, disable all echonest code
/*
if ( Collection::autoPlaylists().isEmpty() ) if ( Collection::autoPlaylists().isEmpty() )
{ {
loadAutoPlaylists(); loadAutoPlaylists();
} }
*/
return Collection::autoPlaylists(); return Collection::autoPlaylists();
} }
@@ -140,10 +143,13 @@ DatabaseCollection::autoPlaylists()
QList< dynplaylist_ptr > QList< dynplaylist_ptr >
DatabaseCollection::stations() DatabaseCollection::stations()
{ {
// echonest is dead, disable all echonest code
/*
if ( Collection::stations().isEmpty() ) if ( Collection::stations().isEmpty() )
{ {
loadStations(); loadStations();
} }
*/
return Collection::stations(); return Collection::stations();
} }

View File

@@ -21,7 +21,6 @@
#include "Source.h" #include "Source.h"
#include "network/Servent.h" #include "network/Servent.h"
#include "SourceList.h" #include "SourceList.h"
#include "EchonestCatalogSynchronizer.h"
namespace Tomahawk namespace Tomahawk
{ {
@@ -76,9 +75,11 @@ DatabaseCommand_SetCollectionAttributes::exec( DatabaseImpl *lib )
void void
DatabaseCommand_SetCollectionAttributes::postCommitHook() DatabaseCommand_SetCollectionAttributes::postCommitHook()
{ {
/*
if ( m_type == EchonestSongCatalog || if ( m_type == EchonestSongCatalog ||
m_type == EchonestArtistCatalog ) m_type == EchonestArtistCatalog )
Tomahawk::EchonestCatalogSynchronizer::instance()->knownCatalogsChanged(); Tomahawk::EchonestCatalogSynchronizer::instance()->knownCatalogsChanged();
*/
if ( source()->isLocal() ) if ( source()->isLocal() )
Servent::instance()->triggerDBSync(); Servent::instance()->triggerDBSync();

View File

@@ -31,12 +31,6 @@
#include "../resolvers/SyncScriptJob.h" #include "../resolvers/SyncScriptJob.h"
#include "../utils/Logger.h" #include "../utils/Logger.h"
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
#include <echonest5/Playlist.h>
#else
#include <echonest/Playlist.h>
#endif
QString QString
Tomahawk::Utils::TomaHkLinkGeneratorPlugin::hostname() const Tomahawk::Utils::TomaHkLinkGeneratorPlugin::hostname() const
{ {
@@ -83,6 +77,7 @@ Tomahawk::Utils::TomaHkLinkGeneratorPlugin::openLink( const Tomahawk::album_ptr&
} }
/*
Tomahawk::ScriptJob* Tomahawk::ScriptJob*
Tomahawk::Utils::TomaHkLinkGeneratorPlugin::openLink( const Tomahawk::dynplaylist_ptr& playlist ) const Tomahawk::Utils::TomaHkLinkGeneratorPlugin::openLink( const Tomahawk::dynplaylist_ptr& playlist ) const
{ {
@@ -131,3 +126,4 @@ Tomahawk::Utils::TomaHkLinkGeneratorPlugin::openLink( const Tomahawk::dynplaylis
return new SyncScriptJob( data ); return new SyncScriptJob( data );
} }
*/

View File

@@ -37,7 +37,8 @@ public:
ScriptJob* openLink( const QString& title, const QString& artist, const QString& album ) const override; ScriptJob* openLink( const QString& title, const QString& artist, const QString& album ) const override;
ScriptJob* openLink( const Tomahawk::artist_ptr& artist ) const override; ScriptJob* openLink( const Tomahawk::artist_ptr& artist ) const override;
ScriptJob* openLink( const Tomahawk::album_ptr& album ) const override; ScriptJob* openLink( const Tomahawk::album_ptr& album ) const override;
ScriptJob* openLink( const Tomahawk::dynplaylist_ptr& playlist ) const override; // echonest is dead, disable all echonest code
// ScriptJob* openLink( const Tomahawk::dynplaylist_ptr& playlist ) const override;
private: private:
QString hostname() const; QString hostname() const;

View File

@@ -100,7 +100,6 @@ INCLUDE_DIRECTORIES(
${THIRDPARTY_DIR}/kdsingleapplicationguard/ ${THIRDPARTY_DIR}/kdsingleapplicationguard/
${LIBATTICA_INCLUDE_DIR} ${LIBATTICA_INCLUDE_DIR}
${ECHONEST_INCLUDE_DIR}
${LIBLASTFM_INCLUDE_DIRS} ${LIBLASTFM_INCLUDE_DIRS}
${Boost_INCLUDE_DIR} ${Boost_INCLUDE_DIR}
) )
@@ -202,7 +201,6 @@ TARGET_LINK_LIBRARIES( ${TOMAHAWK_APPLICATION_TARGET}
${OS_SPECIFIC_LINK_LIBRARIES} ${OS_SPECIFIC_LINK_LIBRARIES}
${QT_LIBRARIES} ${QT_LIBRARIES}
${MAC_EXTRA_LIBS} ${MAC_EXTRA_LIBS}
${ECHONEST_LIBRARIES}
${Boost_LIBRARIES} ${Boost_LIBRARIES}
) )

View File

@@ -30,7 +30,6 @@
#include "infosystem/InfoSystem.h" #include "infosystem/InfoSystem.h"
#include "infosystem/InfoSystemCache.h" #include "infosystem/InfoSystemCache.h"
#include "playlist/dynamic/GeneratorFactory.h" #include "playlist/dynamic/GeneratorFactory.h"
#include "playlist/dynamic/echonest/EchonestGenerator.h"
#include "playlist/dynamic/database/DatabaseGenerator.h" #include "playlist/dynamic/database/DatabaseGenerator.h"
#include "playlist/XspfUpdater.h" #include "playlist/XspfUpdater.h"
#include "network/Servent.h" #include "network/Servent.h"
@@ -45,7 +44,6 @@
#include "Pipeline.h" #include "Pipeline.h"
#include "DropJob.h" #include "DropJob.h"
#include "DownloadManager.h" #include "DownloadManager.h"
#include "EchonestCatalogSynchronizer.h"
#include "database/DatabaseImpl.h" #include "database/DatabaseImpl.h"
#include "network/Msg.h" #include "network/Msg.h"
#include "utils/NetworkAccessManager.h" #include "utils/NetworkAccessManager.h"
@@ -243,10 +241,13 @@ TomahawkApp::init()
QByteArray wand = QByteArray::fromBase64( QCoreApplication::applicationName().toLatin1() ); QByteArray wand = QByteArray::fromBase64( QCoreApplication::applicationName().toLatin1() );
int length = magic.length(), n2 = wand.length(); int length = magic.length(), n2 = wand.length();
for ( int i = 0; i < length; i++ ) magic[i] = magic[i] ^ wand[i%n2]; for ( int i = 0; i < length; i++ ) magic[i] = magic[i] ^ wand[i%n2];
// echonest is dead, disable all echonest code
/*
Echonest::Config::instance()->setAPIKey( magic ); Echonest::Config::instance()->setAPIKey( magic );
tDebug() << "Init Echonest Factory."; tDebug() << "Init Echonest Factory.";
GeneratorFactory::registerFactory( "echonest", new EchonestFactory ); GeneratorFactory::registerFactory( "echonest", new EchonestFactory );
*/
tDebug() << "Init Database Factory."; tDebug() << "Init Database Factory.";
GeneratorFactory::registerFactory( "database", new DatabaseFactory ); GeneratorFactory::registerFactory( "database", new DatabaseFactory );
@@ -634,8 +635,11 @@ TomahawkApp::onInfoSystemReady()
TomahawkSettings* s = TomahawkSettings::instance(); TomahawkSettings* s = TomahawkSettings::instance();
// echonest is dead, disable all echonest code
/*
Echonest::Config::instance()->setNetworkAccessManager( Tomahawk::Utils::nam() ); Echonest::Config::instance()->setNetworkAccessManager( Tomahawk::Utils::nam() );
EchonestGenerator::setupCatalogs(); EchonestGenerator::setupCatalogs();
*/
m_scanManager = QPointer<ScanManager>( new ScanManager( this ) ); m_scanManager = QPointer<ScanManager>( new ScanManager( this ) );
if ( !m_headless ) if ( !m_headless )
@@ -681,8 +685,11 @@ TomahawkApp::onInfoSystemReady()
m_scrobbler = new Scrobbler( this ); m_scrobbler = new Scrobbler( this );
#endif #endif
// echonest is dead, disable all echonest code
/*
// Set up echonest catalog synchronizer // Set up echonest catalog synchronizer
Tomahawk::EchonestCatalogSynchronizer::instance(); Tomahawk::EchonestCatalogSynchronizer::instance();
*/
PlaylistUpdaterInterface::registerUpdaterFactory( new XspfUpdaterFactory ); PlaylistUpdaterInterface::registerUpdaterFactory( new XspfUpdaterFactory );
// PlaylistUpdaterInterface::registerUpdaterFactory( new SpotifyUpdaterFactory ); // PlaylistUpdaterInterface::registerUpdaterFactory( new SpotifyUpdaterFactory );

View File

@@ -683,7 +683,8 @@ TomahawkWindow::setupSignals()
connect( ac->getAction( "quit" ), SIGNAL( triggered() ), qApp, SLOT( quit() ) ); connect( ac->getAction( "quit" ), SIGNAL( triggered() ), qApp, SLOT( quit() ) );
connect( ac->getAction( "showOfflineSources" ), SIGNAL( triggered() ), SLOT( showOfflineSources() ) ); connect( ac->getAction( "showOfflineSources" ), SIGNAL( triggered() ), SLOT( showOfflineSources() ) );
connect( ac->getAction( "createPlaylist" ), SIGNAL( triggered() ), SLOT( createPlaylist() ) ); connect( ac->getAction( "createPlaylist" ), SIGNAL( triggered() ), SLOT( createPlaylist() ) );
connect( ac->getAction( "createStation" ), SIGNAL( triggered() ), SLOT( createStation() ) ); // echonest is dead, disable stations
// connect( ac->getAction( "createStation" ), SIGNAL( triggered() ), SLOT( createStation() ) );
#if defined( Q_OS_MAC ) #if defined( Q_OS_MAC )
connect( ac->getAction( "minimize" ), SIGNAL( triggered() ), SLOT( minimize() ) ); connect( ac->getAction( "minimize" ), SIGNAL( triggered() ), SLOT( minimize() ) );
@@ -851,7 +852,7 @@ TomahawkWindow::audioStateChanged( AudioState newState, AudioState oldState )
Q_UNUSED(newState); Q_UNUSED(newState);
#else #else
updatePreview(); updatePreview();
QWinThumbnailToolButton *play = m_taskbarList->buttons()[ TP_PLAY_PAUSE ]; QWinThumbnailToolButton *play = m_taskbarList->buttons()[ TP_PLAY_PAUSE ];
switch ( newState ) switch ( newState )
{ {

View File

@@ -297,6 +297,9 @@ SettingsDialog::SettingsDialog(QObject *parent )
connect( m_dialog, SIGNAL( accepted() ), SLOT( saveSettings() ) ); connect( m_dialog, SIGNAL( accepted() ), SLOT( saveSettings() ) );
connect( m_dialog, SIGNAL( rejected() ), SLOT( onRejected() ) ); connect( m_dialog, SIGNAL( rejected() ), SLOT( onRejected() ) );
// Echonest is dead, make catalog upload checkbox invisible
m_collectionWidgetUi->enableEchonestCatalog->setVisible( false );
} }

View File

@@ -33,12 +33,6 @@
#include "utils/ImageRegistry.h" #include "utils/ImageRegistry.h"
#include "utils/Logger.h" #include "utils/Logger.h"
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
#include <echonest5/Playlist.h>
#else
#include <echonest/Playlist.h>
#endif
using namespace Tomahawk; using namespace Tomahawk;

View File

@@ -96,7 +96,7 @@ SourceItem::SourceItem( SourcesModel* mdl, SourceTreeItem* parent, const Tomahaw
// create category items if there are playlists to show, or stations to show // create category items if there are playlists to show, or stations to show
QList< playlist_ptr > playlists = source->dbCollection()->playlists(); QList< playlist_ptr > playlists = source->dbCollection()->playlists();
QList< dynplaylist_ptr > autoplaylists = source->dbCollection()->autoPlaylists(); QList< dynplaylist_ptr > autoplaylists = source->dbCollection()->autoPlaylists();
QList< dynplaylist_ptr > stations = source->dbCollection()->stations(); //QList< dynplaylist_ptr > stations = source->dbCollection()->stations(); // echonest is dead, disable stations
if ( !playlists.isEmpty() || !autoplaylists.isEmpty() || source->isLocal() ) if ( !playlists.isEmpty() || !autoplaylists.isEmpty() || source->isLocal() )
{ {
@@ -104,11 +104,14 @@ SourceItem::SourceItem( SourcesModel* mdl, SourceTreeItem* parent, const Tomahaw
onPlaylistsAdded( playlists ); onPlaylistsAdded( playlists );
onAutoPlaylistsAdded( autoplaylists ); onAutoPlaylistsAdded( autoplaylists );
} }
// echonest is dead, disable stations
/*
if ( !stations.isEmpty() || source->isLocal() ) if ( !stations.isEmpty() || source->isLocal() )
{ {
m_stations = new CategoryItem( model(), this, SourcesModel::StationsCategory, source->isLocal() ); m_stations = new CategoryItem( model(), this, SourcesModel::StationsCategory, source->isLocal() );
onStationsAdded( stations ); onStationsAdded( stations );
} }
*/
/* if ( ViewManager::instance()->pageForCollection( source->collection() ) ) /* if ( ViewManager::instance()->pageForCollection( source->collection() ) )
model()->linkSourceItemToPage( this, ViewManager::instance()->pageForCollection( source->collection() ) );*/ model()->linkSourceItemToPage( this, ViewManager::instance()->pageForCollection( source->collection() ) );*/