diff --git a/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m b/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
index a349f5922..c418e0bca 100644
--- a/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
+++ b/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
@@ -98,7 +98,6 @@ static CGEventRef tapEventCallback(CGEventTapProxy proxy, CGEventType type, CGEv
{
return [NSArray arrayWithObjects:
[[NSBundle mainBundle] bundleIdentifier], // your app
- @"com.spotify.client",
@"com.apple.iTunes",
@"com.apple.QuickTimePlayerX",
@"com.apple.quicktimeplayer",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 657efdbac..cd2484e47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,6 @@ include(cmake/C++11Compat.cmake)
include(cmake/Summary.cmake)
include(cmake/Version.cmake)
include(cmake/Deb.cmake)
-include(cmake/SpotifyVersion.cmake)
include(cmake/OptionalSource.cmake)
include(cmake/Format.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
@@ -72,7 +71,6 @@ pkg_check_modules(LIBMTP libmtp>=1.0)
pkg_check_modules(LIBMYGPO_QT5 libmygpo-qt5>=1.0.9)
pkg_check_modules(LIBPULSE libpulse)
pkg_check_modules(LIBXML libxml-2.0)
-pkg_check_modules(LIBSPOTIFY libspotify>=12.1.45)
pkg_check_modules(TAGLIB taglib)
if (WIN32)
@@ -164,12 +162,6 @@ endif()
if (APPLE)
find_library(SPARKLE Sparkle)
- find_library(LIBSPOTIFY libspotify)
-
- if(LIBSPOTIFY_FOUND)
- set(LIBSPOTIFY_INCLUDE_DIRS ${LIBSPOTIFY})
- set(LIBSPOTIFY_LIBRARIES ${LIBSPOTIFY})
- endif(LIBSPOTIFY_FOUND)
add_subdirectory(3rdparty/SPMediaKeyTap)
set(SPMEDIAKEYTAP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SPMediaKeyTap)
@@ -293,19 +285,6 @@ optional_component(UDISKS2 ON "Devices:
DEPENDS "D-Bus support" Qt5DBus_FOUND
)
-optional_component(SPOTIFY_BLOB ON "Spotify support: non-GPL binary helper"
- DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE
- DEPENDS "libspotify" LIBSPOTIFY_FOUND
-)
-
-if (CRYPTOPP_FOUND OR HAVE_SPOTIFY_BLOB)
- set(CRYPTOPP_OR_HAVE_SPOTIFY_BLOB ON)
-endif()
-
-optional_component(SPOTIFY ON "Spotify support"
- DEPENDS "cryptopp or spotify blob" CRYPTOPP_OR_HAVE_SPOTIFY_BLOB
-)
-
optional_component(MOODBAR ON "Moodbar support"
DEPENDS "fftw3" FFTW3_FOUND
)
@@ -339,9 +318,6 @@ endif()
if(CRYPTOPP_FOUND)
set(HAVE_CRYPTOPP ON)
- if(HAVE_SPOTIFY)
- set(HAVE_SPOTIFY_DOWNLOADER ON)
- endif(HAVE_SPOTIFY)
endif(CRYPTOPP_FOUND)
# Remove GLU and GL from the link line - they're not really required
@@ -451,9 +427,6 @@ add_subdirectory(ext/libclementine-commo
add_subdirectory(ext/libclementine-tagreader)
add_subdirectory(ext/clementine-tagreader)
add_subdirectory(ext/libclementine-remote)
-if(HAVE_SPOTIFY)
- add_subdirectory(ext/libclementine-spotifyblob)
-endif(HAVE_SPOTIFY)
option(WITH_DEBIAN OFF)
if(WITH_DEBIAN)
@@ -464,10 +437,6 @@ if(HAVE_BREAKPAD)
add_subdirectory(3rdparty/google-breakpad)
endif(HAVE_BREAKPAD)
-if(HAVE_SPOTIFY_BLOB)
- add_subdirectory(ext/clementine-spotifyblob)
-endif(HAVE_SPOTIFY_BLOB)
-
if(HAVE_MOODBAR)
add_subdirectory(gst/moodbar)
endif()
diff --git a/data/data.qrc b/data/data.qrc
index f7fff7c07..36b0c0927 100644
--- a/data/data.qrc
+++ b/data/data.qrc
@@ -3,7 +3,6 @@
Equifax_Secure_Certificate_Authority.pem
blank.ttf
clementine_remote_qr.png
- clementine-spotify-public.pem
currenttrack_bar_left.png
currenttrack_bar_mid.png
currenttrack_bar_right.png
@@ -283,7 +282,7 @@
nocover.png
nomusic.png
now_playing_tooltip.txt
- nyancat.png
+ moognu.png
oauthsuccess.html
osd_background.png
osd_shadow_corner.png
@@ -350,7 +349,6 @@
providers/22x22/intergalacticfm.png
providers/22x22/songkick.png
providers/22x22/soundcloud.png
- providers/22x22/spotify.png
providers/22x22/subsonic.png
providers/22x22/vk.png
providers/22x22/wikipedia.png
@@ -382,7 +380,6 @@
providers/32x32/intergalacticfm.png
providers/32x32/songkick.png
providers/32x32/soundcloud.png
- providers/32x32/spotify.png
providers/32x32/subsonic.png
providers/32x32/vk.png
providers/32x32/wikipedia.png
@@ -414,7 +411,6 @@
providers/48x48/intergalacticfm.png
providers/48x48/songkick.png
providers/48x48/soundcloud.png
- providers/48x48/spotify.png
providers/48x48/subsonic.png
providers/48x48/vk.png
providers/48x48/wikipedia.png
@@ -479,7 +475,6 @@
songinfo.css
soundcloud-ca.pem
spinner.gif
- spotify-attribution.png
star-off.png
star-on.png
tiny-pause.png
diff --git a/dist/codesign.py b/dist/codesign.py
index 5a682c5af..348ed6640 100755
--- a/dist/codesign.py
+++ b/dist/codesign.py
@@ -33,7 +33,7 @@ def main():
for file in files:
if re.search(r'\.(dylib|so)$', file):
SignPath(os.path.join(root, file), developer_id)
- elif re.match(r'(clementine-spotifyblob|clementine-tagreader|gst-plugin-scanner)', file):
+ elif re.match(r'(clementine-tagreader|gst-plugin-scanner)', file):
SignPath(os.path.join(root, file), developer_id)
SignPath(app_bundle, developer_id, deep=False)
diff --git a/dist/macdeploy.py b/dist/macdeploy.py
index 08fa5ca7e..a9cf2b923 100755
--- a/dist/macdeploy.py
+++ b/dist/macdeploy.py
@@ -472,10 +472,7 @@ def main():
FixPlugin(FindGioModule('libgiolibproxy.so'), 'gio-modules')
try:
- FixPlugin('clementine-spotifyblob', '.')
FixPlugin('clementine-tagreader', '.')
- except:
- print 'Failed to find blob: %s' % traceback.format_exc()
for plugin in QT_PLUGINS:
FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
diff --git a/dist/windows/clementine.nsi.in b/dist/windows/clementine.nsi.in
index d46eb43dd..56448c3de 100644
--- a/dist/windows/clementine.nsi.in
+++ b/dist/windows/clementine.nsi.in
@@ -187,9 +187,6 @@ Section "Delete old files" oldfiles
Delete "$INSTDIR\gstreamer-plugins\libgstqueue2.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
- ; 1.0 prerelease
- Delete "$INSTDIR\spotify.dll"
-
; 1.0
Delete "$INSTDIR\libofa.dll"
Delete "$INSTDIR\gstreamer-plugins\libgstofa.dll"
@@ -268,7 +265,6 @@ Section "Clementine" Clementine
File "clementine.exe"
File "clementine-tagreader.exe"
- File "clementine-spotifyblob.exe"
File "clementine.ico"
File "glew32.dll"
File "libcdio-16.dll"
@@ -324,7 +320,6 @@ Section "Clementine" Clementine
File "libqjson.dll"
File "libsoup-2.4-1.dll"
File "libspeex-1.dll"
- File "libspotify.dll"
File "libsqlite3-0.dll"
File "libstdc++-6.dll"
File "libtag.dll"
@@ -1083,7 +1078,6 @@ Section "Uninstall"
Delete "$INSTDIR\clementine.ico"
Delete "$INSTDIR\clementine.exe"
Delete "$INSTDIR\clementine-tagreader.exe"
- Delete "$INSTDIR\clementine-spotifyblob.exe"
Delete "$INSTDIR\glew32.dll"
Delete "$INSTDIR\libcdio-16.dll"
Delete "$INSTDIR\libchromaprint.dll"
@@ -1139,7 +1133,6 @@ Section "Uninstall"
Delete "$INSTDIR\libqjson.dll"
Delete "$INSTDIR\libsoup-2-4-1.dll"
Delete "$INSTDIR\libspeex-1.dll"
- Delete "$INSTDIR\libspotify.dll"
Delete "$INSTDIR\libstdc++-6.dll"
Delete "$INSTDIR\libtag.dll"
Delete "$INSTDIR\libtasn1-6.dll"
diff --git a/ext/libclementine-common/core/logging.cpp b/ext/libclementine-common/core/logging.cpp
index 9aa131935..0ec43d709 100644
--- a/ext/libclementine-common/core/logging.cpp
+++ b/ext/libclementine-common/core/logging.cpp
@@ -14,10 +14,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#include
#include
diff --git a/ext/libclementine-common/core/logging.h b/ext/libclementine-common/core/logging.h
index 0433da5aa..8f6efe561 100644
--- a/ext/libclementine-common/core/logging.h
+++ b/ext/libclementine-common/core/logging.h
@@ -14,10 +14,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#ifndef LOGGING_H
#define LOGGING_H
diff --git a/ext/libclementine-common/core/messagehandler.cpp b/ext/libclementine-common/core/messagehandler.cpp
index 065964d5f..8a8381b46 100644
--- a/ext/libclementine-common/core/messagehandler.cpp
+++ b/ext/libclementine-common/core/messagehandler.cpp
@@ -14,10 +14,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#include "messagehandler.h"
#include "core/logging.h"
diff --git a/ext/libclementine-common/core/messagehandler.h b/ext/libclementine-common/core/messagehandler.h
index 5a7f8f2c8..7df58df05 100644
--- a/ext/libclementine-common/core/messagehandler.h
+++ b/ext/libclementine-common/core/messagehandler.h
@@ -14,10 +14,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#ifndef MESSAGEHANDLER_H
#define MESSAGEHANDLER_H
diff --git a/ext/libclementine-common/core/override.h b/ext/libclementine-common/core/override.h
index 98c2764d5..ca3713700 100644
--- a/ext/libclementine-common/core/override.h
+++ b/ext/libclementine-common/core/override.h
@@ -14,10 +14,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#ifndef OVERRIDE_H
#define OVERRIDE_H
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d635aee7c..56e01c09d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -47,10 +47,6 @@ include_directories(${CMAKE_SOURCE_DIR}/
include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-tagreader)
include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-remote)
include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-remote)
-if(HAVE_SPOTIFY)
- include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-spotifyblob)
- include_directories(${CMAKE_BINARY_DIR}/ext/libclementine-spotifyblob)
-endif(HAVE_SPOTIFY)
cmake_policy(SET CMP0011 NEW)
include(../cmake/ParseArguments.cmake)
@@ -303,7 +299,6 @@ set(SOURCES
songinfo/songkickconcerts.cpp
songinfo/songkickconcertwidget.cpp
songinfo/songplaystats.cpp
- songinfo/spotifyimages.cpp
songinfo/streamdiscoverer.cpp
songinfo/taglyricsinfoprovider.cpp
songinfo/ultimatelyricslyric.cpp
@@ -593,7 +588,6 @@ set(HEADERS
songinfo/songkickconcerts.h
songinfo/songkickconcertwidget.h
songinfo/songplaystats.h
- songinfo/spotifyimages.h
songinfo/streamdiscoverer.h
songinfo/taglyricsinfoprovider.h
songinfo/ultimatelyricslyric.h
@@ -837,33 +831,6 @@ optional_source(HAVE_LIBLASTFM
internet/lastfm/lastfmsettingspage.ui
)
-# Spotify support
-optional_source(HAVE_SPOTIFY
- SOURCES
- internet/spotify/spotifyserver.cpp
- internet/spotify/spotifyservice.cpp
- internet/spotify/spotifysettingspage.cpp
- globalsearch/spotifysearchprovider.cpp
- HEADERS
- globalsearch/spotifysearchprovider.h
- internet/spotify/spotifyserver.h
- internet/spotify/spotifyservice.h
- internet/spotify/spotifysettingspage.h
- UI
- internet/spotify/spotifysettingspage.ui
-)
-
-if(HAVE_SPOTIFY)
- optional_source(HAVE_SPOTIFY_DOWNLOADER
- SOURCES
- internet/spotify/spotifyblobdownloader.cpp
- HEADERS
- internet/spotify/spotifyblobdownloader.h
- INCLUDE_DIRECTORIES
- ${CRYPTOPP_INCLUDE_DIRS}
- )
-endif(HAVE_SPOTIFY)
-
# Platform specific - OS X
optional_source(APPLE
INCLUDE_DIRECTORIES
@@ -1306,17 +1273,6 @@ if(HAVE_BREAKPAD)
endif (LINUX)
endif(HAVE_BREAKPAD)
-if(HAVE_SPOTIFY)
- target_link_libraries(clementine_lib clementine-spotifyblob-messages)
-endif(HAVE_SPOTIFY)
-
-if(HAVE_SPOTIFY_DOWNLOADER)
- target_link_libraries(clementine_lib
- ${CRYPTOPP_LIBRARIES}
- )
- link_directories(${CRYPTOPP_LIBRARY_DIRS})
-endif(HAVE_SPOTIFY_DOWNLOADER)
-
if(HAVE_LIBPULSE)
target_link_libraries(clementine_lib ${LIBPULSE_LIBRARIES})
endif()
@@ -1404,10 +1360,6 @@ target_link_libraries(clementine
clementine_lib
)
-# macdeploy.py relies on the blob being built first.
-if(HAVE_SPOTIFY_BLOB)
- add_dependencies(clementine clementine-spotifyblob)
-endif(HAVE_SPOTIFY_BLOB)
add_dependencies(clementine clementine-tagreader)
set_target_properties(clementine PROPERTIES
diff --git a/src/analyzers/rainbowanalyzer.cpp b/src/analyzers/rainbowanalyzer.cpp
index 7cb0b44c2..25bfb843d 100644
--- a/src/analyzers/rainbowanalyzer.cpp
+++ b/src/analyzers/rainbowanalyzer.cpp
@@ -42,7 +42,7 @@ const int Rainbow::RainbowAnalyzer::kRai
const int Rainbow::RainbowAnalyzer::kRainbowOverlap[] = {13, 15};
const int Rainbow::RainbowAnalyzer::kSleepingHeight[] = {24, 33};
-const char* Rainbow::NyanCatAnalyzer::kName = "Nyanalyzer Cat";
+const char* Rainbow::NyanCatAnalyzer::kName = "MooGNU";
const char* Rainbow::RainbowDashAnalyzer::kName = "Rainbow Dash";
const float Rainbow::RainbowAnalyzer::kPixelScale = 0.02f;
@@ -59,7 +59,7 @@ Rainbow::RainbowAnalyzer::RainbowAnalyze
x_offset_(0),
background_brush_(QColor(0x0f, 0x43, 0x73)) {
rainbowtype = rbtype;
- cat_dash_[0] = QPixmap(":/nyancat.png");
+ cat_dash_[0] = QPixmap(":/moognu.png");
cat_dash_[1] = QPixmap(":/rainbowdash.png");
memset(history_, 0, sizeof(history_));
@@ -193,8 +193,8 @@ void Rainbow::RainbowAnalyzer::analyze(Q
// Draw the buffer on to the widget
p.drawPixmap(0, 0, buffer_[current_buffer_], x_offset_, 0, 0, 0);
- // Draw rainbow analyzer (nyan cat or rainbowdash)
- // Nyan nyan nyan nyan dash dash dash dash.
+ // Draw rainbow analyzer (moo gnu or rainbowdash)
+ // Moo moo moo moo dash dash dash dash.
if (!is_playing_) {
// Ssshhh!
p.drawPixmap(SleepingDestRect(rainbowtype), cat_dash_[rainbowtype],
diff --git a/src/config.h.in b/src/config.h.in
index 20427754b..4dbd44405 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -42,12 +42,10 @@
#cmakedefine HAVE_SEAFILE
#cmakedefine HAVE_SKYDRIVE
#cmakedefine HAVE_SPARKLE
-#cmakedefine HAVE_SPOTIFY_DOWNLOADER
#cmakedefine HAVE_UDISKS2
#cmakedefine HAVE_WIIMOTEDEV
#cmakedefine HAVE_OPENGL
#cmakedefine HAVE_TRANSLATIONS
-#cmakedefine HAVE_SPOTIFY
#cmakedefine TAGLIB_HAS_OPUS
#cmakedefine USE_INSTALL_PREFIX
#cmakedefine USE_SYSTEM_PROJECTM
diff --git a/src/core/backgroundstreams.cpp b/src/core/backgroundstreams.cpp
index 2e6ac60e2..e62504c70 100644
--- a/src/core/backgroundstreams.cpp
+++ b/src/core/backgroundstreams.cpp
@@ -28,8 +28,6 @@
const char* BackgroundStreams::kSettingsGroup = "BackgroundStreams";
const char* BackgroundStreams::kHypnotoadUrl = "hypnotoad:///";
-const char* BackgroundStreams::kRainUrl =
- "http://data.clementine-player.org/rainymood";
const char* BackgroundStreams::kEnterpriseUrl = "enterprise:///";
BackgroundStreams::BackgroundStreams(EngineBase* engine, QObject* parent)
@@ -44,7 +42,6 @@ void BackgroundStreams::LoadStreams() {
int version = s.value("version", 0).toInt();
if (version < 1) {
AddStream(QT_TR_NOOP("Hypnotoad"), QUrl(kHypnotoadUrl));
- AddStream(QT_TR_NOOP("Rain"), QUrl(kRainUrl));
}
if (version < kVersion) {
diff --git a/src/core/timeconstants.h b/src/core/timeconstants.h
index 67d022794..49020d809 100644
--- a/src/core/timeconstants.h
+++ b/src/core/timeconstants.h
@@ -16,10 +16,6 @@
limitations under the License.
*/
-// Note: this file is licensed under the Apache License instead of GPL because
-// it is used by the Spotify blob which links against libspotify and is not GPL
-// compatible.
-
#ifndef CORE_TIMECONSTANTS_H_
#define CORE_TIMECONSTANTS_H_
diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp
index fe106e2b7..54defd7fd 100644
--- a/src/core/utilities.cpp
+++ b/src/core/utilities.cpp
@@ -391,9 +391,6 @@ QString GetConfigPath(ConfigPath config)
return QDir::homePath();
#endif
- case Path_LocalSpotifyBlob:
- return GetConfigPath(Path_Root) + "/spotifyblob";
-
default:
qFatal("%s", Q_FUNC_INFO);
return QString::null;
diff --git a/src/core/utilities.h b/src/core/utilities.h
index 021ded6cf..841ec4061 100644
--- a/src/core/utilities.h
+++ b/src/core/utilities.h
@@ -130,7 +130,6 @@ enum ConfigPath {
Path_NetworkCache,
Path_GstreamerRegistry,
Path_DefaultMusicLibrary,
- Path_LocalSpotifyBlob,
Path_MoodbarCache,
Path_CacheRoot,
};
diff --git a/src/covers/albumcoverloader.cpp b/src/covers/albumcoverloader.cpp
index a04cd923a..c982fd8f4 100644
--- a/src/covers/albumcoverloader.cpp
+++ b/src/covers/albumcoverloader.cpp
@@ -34,16 +34,12 @@
#include "core/tagreaderclient.h"
#include "core/utilities.h"
#include "internet/core/internetmodel.h"
-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifyservice.h"
-#endif
AlbumCoverLoader::AlbumCoverLoader(QObject* parent)
: QObject(parent),
stop_requested_(false),
next_id_(1),
- network_(new NetworkAccessManager(this)),
- connected_spotify_(false) {}
+ network_(new NetworkAccessManager(this)) {}
QString AlbumCoverLoader::ImageCacheDir() {
return Utilities::GetConfigPath(Utilities::Path_AlbumCovers);
@@ -179,29 +175,6 @@ AlbumCoverLoader::TryLoadResult AlbumCov
remote_tasks_.insert(reply, task);
return TryLoadResult(true, false, QImage());
}
-#ifdef HAVE_SPOTIFY
- else if (filename.toLower().startsWith("spotify://image/")) {
- // HACK: we should add generic image URL handlers
- SpotifyService* spotify = InternetModel::Service();
-
- if (!connected_spotify_) {
- connect(spotify, SIGNAL(ImageLoaded(QString, QImage)),
- SLOT(SpotifyImageLoaded(QString, QImage)));
- connected_spotify_ = true;
- }
-
- QString id = QUrl(filename).path();
- if (id.startsWith('/')) {
- id.remove(0, 1);
- }
- remote_spotify_tasks_.insert(id, task);
-
- // Need to schedule this in the spotify service's thread
- QMetaObject::invokeMethod(spotify, "LoadImage", Qt::QueuedConnection,
- Q_ARG(QString, id));
- return TryLoadResult(true, false, QImage());
- }
-#endif
else if (filename.isEmpty()) {
// Avoid "QFSFileEngine::open: No file name specified" messages if we know that the filename is empty
return TryLoadResult(false, false, task.options.default_output_image_);
@@ -213,18 +186,6 @@ AlbumCoverLoader::TryLoadResult AlbumCov
image.isNull() ? task.options.default_output_image_ : image);
}
-#ifdef HAVE_SPOTIFY
-void AlbumCoverLoader::SpotifyImageLoaded(const QString& id,
- const QImage& image) {
- if (!remote_spotify_tasks_.contains(id)) return;
-
- Task task = remote_spotify_tasks_.take(id);
- QImage scaled = ScaleAndPad(task.options, image);
- emit ImageLoaded(task.id, scaled);
- emit ImageLoaded(task.id, scaled, image);
-}
-#endif
-
void AlbumCoverLoader::RemoteFetchFinished(QNetworkReply* reply) {
reply->deleteLater();
diff --git a/src/covers/albumcoverloader.h b/src/covers/albumcoverloader.h
index c5fae6b4c..ff68c6cf1 100644
--- a/src/covers/albumcoverloader.h
+++ b/src/covers/albumcoverloader.h
@@ -67,9 +67,6 @@ class AlbumCoverLoader : public QObject
protected slots:
void ProcessTasks();
void RemoteFetchFinished(QNetworkReply* reply);
-#ifdef HAVE_SPOTIFY
- void SpotifyImageLoaded(const QString& url, const QImage& image);
-#endif
protected:
enum State { State_TryingManual, State_TryingAuto, };
@@ -106,13 +103,10 @@ class AlbumCoverLoader : public QObject
QMutex mutex_;
QQueue tasks_;
QMap remote_tasks_;
- QMap remote_spotify_tasks_;
quint64 next_id_;
NetworkAccessManager* network_;
- bool connected_spotify_;
-
static const int kMaxRedirects = 3;
};
diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp
index f6094c41f..c838ab6dc 100644
--- a/src/engines/gstenginepipeline.cpp
+++ b/src/engines/gstenginepipeline.cpp
@@ -35,10 +35,6 @@
#include "core/signalchecker.h"
#include "core/utilities.h"
#include "internet/core/internetmodel.h"
-#ifdef HAVE_SPOTIFY
-# include "internet/spotify/spotifyserver.h"
-# include "internet/spotify/spotifyservice.h"
-#endif
const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000;
const int GstEnginePipeline::kFaderFudgeMsec = 2000;
@@ -159,45 +155,6 @@ bool GstEnginePipeline::ReplaceDecodeBin
GstElement* GstEnginePipeline::CreateDecodeBinFromUrl(const QUrl& url) {
GstElement* new_bin = nullptr;
-#ifdef HAVE_SPOTIFY
- if (url.scheme() == "spotify") {
- new_bin = gst_bin_new("spotify_bin");
- if (!new_bin) return nullptr;
-
- // Create elements
- GstElement* src = engine_->CreateElement("tcpserversrc", new_bin);
- if (!src) {
- gst_object_unref(GST_OBJECT(new_bin));
- return nullptr;
- }
- GstElement* gdp = engine_->CreateElement("gdpdepay", new_bin);
- if (!gdp) {
- gst_object_unref(GST_OBJECT(new_bin));
- return nullptr;
- }
-
- // Pick a port number
- const int port = Utilities::PickUnusedPort();
- g_object_set(G_OBJECT(src), "host", "127.0.0.1", nullptr);
- g_object_set(G_OBJECT(src), "port", port, nullptr);
-
- // Link the elements
- gst_element_link(src, gdp);
-
- // Add a ghost pad
- GstPad* pad = gst_element_get_static_pad(gdp, "src");
- gst_element_add_pad(GST_ELEMENT(new_bin), gst_ghost_pad_new("src", pad));
- gst_object_unref(GST_OBJECT(pad));
-
- // Tell spotify to start sending data to us.
- SpotifyServer* spotify_server =
- InternetModel::Service()->server();
- // Need to schedule this in the spotify server's thread
- QMetaObject::invokeMethod(
- spotify_server, "StartPlayback", Qt::QueuedConnection,
- Q_ARG(QString, url.toString()), Q_ARG(quint16, port));
- } else {
-#endif
QByteArray uri;
if (url.scheme() == "cdda") {
QString str = url.toString();
@@ -214,9 +171,6 @@ GstElement* GstEnginePipeline::CreateDec
CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this);
CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback,
this);
-#ifdef HAVE_SPOTIFY
- }
-#endif
return new_bin;
}
@@ -980,14 +934,7 @@ void GstEnginePipeline::SourceDrainedCal
gpointer self) {
GstEnginePipeline* instance = reinterpret_cast(self);
- if (instance->has_next_valid_url() &&
- // I'm not sure why, but calling this when previous track is a local song
- // and the next track is a Spotify song is buggy: the Spotify song will
- // not start or with some offset. So just do nothing here: when the song
- // finished, EndOfStreamReached/TrackEnded will be emitted anyway so
- // NextItem will be called.
- !(instance->url_.scheme() != "spotify" &&
- instance->next_url_.scheme() == "spotify")) {
+ if (instance->has_next_valid_url()) {
instance->TransitionToNext();
}
}
@@ -1083,26 +1030,6 @@ GstState GstEnginePipeline::state() cons
}
QFuture GstEnginePipeline::SetState(GstState state) {
-#ifdef HAVE_SPOTIFY
- if (url_.scheme() == "spotify" && !buffering_) {
- const GstState current_state = this->state();
-
- if (state == GST_STATE_PAUSED && current_state == GST_STATE_PLAYING) {
- SpotifyService* spotify = InternetModel::Service();
-
- // Need to schedule this in the spotify service's thread
- QMetaObject::invokeMethod(spotify, "SetPaused", Qt::QueuedConnection,
- Q_ARG(bool, true));
- } else if (state == GST_STATE_PLAYING &&
- current_state == GST_STATE_PAUSED) {
- SpotifyService* spotify = InternetModel::Service();
-
- // Need to schedule this in the spotify service's thread
- QMetaObject::invokeMethod(spotify, "SetPaused", Qt::QueuedConnection,
- Q_ARG(bool, false));
- }
- }
-#endif
return ConcurrentRun::Run(
&set_state_threadpool_, &gst_element_set_state, pipeline_, state);
}
diff --git a/src/internet/core/internetmodel.cpp b/src/internet/core/internetmodel.cpp
index 756d48073..ab3f8e4fe 100644
--- a/src/internet/core/internetmodel.cpp
+++ b/src/internet/core/internetmodel.cpp
@@ -59,9 +59,6 @@
#ifdef HAVE_SEAFILE
#include "internet/seafile/seafileservice.h"
#endif
-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifyservice.h"
-#endif
using smart_playlists::Generator;
using smart_playlists::GeneratorMimeData;
@@ -94,9 +91,6 @@ InternetModel::InternetModel(Application
AddService(new RadioTunesService(app, this));
AddService(new SomaFMService(app, this));
AddService(new IntergalacticFMService(app, this));
-#ifdef HAVE_SPOTIFY
- AddService(new SpotifyService(app, this));
-#endif
AddService(new SubsonicService(app, this));
#ifdef HAVE_BOX
AddService(new BoxService(app, this));
diff --git a/src/main.cpp b/src/main.cpp
index ecf47b9d4..8b8143f4a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -145,8 +145,6 @@ void SetEnv(const char* key, const QStri
#endif
}
-// This must be done early so that the spotify blob process also picks up
-// these environment variables.
void SetGstreamerEnvironment() {
QString scanner_path;
QString plugin_path;
diff --git a/src/playlist/playlistbackend.h b/src/playlist/playlistbackend.h
index f9d347c4e..320c0fb9b 100644
--- a/src/playlist/playlistbackend.h
+++ b/src/playlist/playlistbackend.h
@@ -47,8 +47,6 @@ class PlaylistBackend : public QObject {
QString dynamic_backend;
QByteArray dynamic_data;
- // Special playlists have different behaviour, eg. the "spotify-search"
- // type has a spotify search box at the top, replacing the ordinary filter.
QString special_type;
};
typedef QList PlaylistList;
diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp
index daf896e73..d74b74a56 100644
--- a/src/playlist/playlistdelegates.cpp
+++ b/src/playlist/playlistdelegates.cpp
@@ -458,9 +458,7 @@ QPixmap SongSourceDelegate::LookupPixmap
if (handler) {
icon = handler->icon();
} else {
- if (url.scheme() == "spotify") {
- icon = IconLoader::Load("spotify", IconLoader::Provider);
- } else if (url.scheme() == "file") {
+ if (url.scheme() == "file") {
icon = IconLoader::Load("folder-sound", IconLoader::Base);
} else if (url.host() == "api.jamendo.com") {
icon = IconLoader::Load("jamendo", IconLoader::Provider);
diff --git a/src/songinfo/artistinfoview.cpp b/src/songinfo/artistinfoview.cpp
index af1f5d0c4..eda16d44b 100644
--- a/src/songinfo/artistinfoview.cpp
+++ b/src/songinfo/artistinfoview.cpp
@@ -21,11 +21,9 @@
#include "songinfo/songinfofetcher.h"
#include "songinfo/songkickconcerts.h"
#include "widgets/prettyimageview.h"
-#include "songinfo/spotifyimages.h"
ArtistInfoView::ArtistInfoView(QWidget* parent) : SongInfoBase(parent) {
fetcher_->AddProvider(new SongkickConcerts);
- fetcher_->AddProvider(new SpotifyImages);
fetcher_->AddProvider(new ArtistBiography);
}
diff --git a/src/ui/about.cpp b/src/ui/about.cpp
index 0314a380f..f3d9c6944 100644
--- a/src/ui/about.cpp
+++ b/src/ui/about.cpp
@@ -88,7 +88,6 @@ QString About::MakeHtml() const {
ret += QString("
%1
").arg(tr("...and all the Amarok contributors"));
ret += QString("%1").arg(tr("And:"));
- ret += QString("
Rainy Mood");
ret += QString(
"
Scott "
"Smitelli");
@@ -96,11 +95,6 @@ QString About::MakeHtml() const {
"
Allie "
"Brosh
");
- ret +=
- "This product uses Music by Spotify but is not endorsed, certified "
- "or otherwise approved in any way by Spotify. Spotify is the registered "
- "trade mark of the Spotify Group.
";
-
return ret;
}
diff --git a/src/ui/settingsdialog.cpp b/src/ui/settingsdialog.cpp
index 354187ade..80f2820e7 100644
--- a/src/ui/settingsdialog.cpp
+++ b/src/ui/settingsdialog.cpp
@@ -77,10 +77,6 @@
#include "internet/seafile/seafilesettingspage.h"
#endif
-#ifdef HAVE_SPOTIFY
-#include "internet/spotify/spotifysettingspage.h"
-#endif
-
#include
#include
#include
@@ -177,10 +173,6 @@ SettingsDialog::SettingsDialog(Applicati
AddPage(Page_Skydrive, new SkydriveSettingsPage(this), providers);
#endif
-#ifdef HAVE_SPOTIFY
- AddPage(Page_Spotify, new SpotifySettingsPage(this), providers);
-#endif
-
#ifdef HAVE_SEAFILE
AddPage(Page_Seafile, new SeafileSettingsPage(this), providers);
#endif
diff --git a/src/ui/settingsdialog.h b/src/ui/settingsdialog.h
index f45f72983..dc4eeb6c4 100644
--- a/src/ui/settingsdialog.h
+++ b/src/ui/settingsdialog.h
@@ -69,7 +69,6 @@ class SettingsDialog : public QDialog {
Page_Library,
Page_Lastfm,
Page_SoundCloud,
- Page_Spotify,
Page_Magnatune,
Page_DigitallyImported,
Page_BackgroundStreams,