123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864 |
- 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 @@
- <file>Equifax_Secure_Certificate_Authority.pem</file>
- <file>blank.ttf</file>
- <file>clementine_remote_qr.png</file>
- - <file>clementine-spotify-public.pem</file>
- <file>currenttrack_bar_left.png</file>
- <file>currenttrack_bar_mid.png</file>
- <file>currenttrack_bar_right.png</file>
- @@ -284,7 +284,7 @@
- <file>mainwindow.css</file>
- <file>nocover.png</file>
- <file>nomusic.png</file>
- - <file>nyancat.png</file>
- + <file>moognu.png</file>
- <file>oauthsuccess.html</file>
- <file>osd_background.png</file>
- <file>osd_shadow_corner.png</file>
- @@ -350,7 +349,6 @@
- <file>providers/22x22/intergalacticfm.png</file>
- <file>providers/22x22/songkick.png</file>
- <file>providers/22x22/soundcloud.png</file>
- - <file>providers/22x22/spotify.png</file>
- <file>providers/22x22/subsonic.png</file>
- <file>providers/22x22/vk.png</file>
- <file>providers/22x22/wikipedia.png</file>
- @@ -382,7 +380,6 @@
- <file>providers/32x32/intergalacticfm.png</file>
- <file>providers/32x32/songkick.png</file>
- <file>providers/32x32/soundcloud.png</file>
- - <file>providers/32x32/spotify.png</file>
- <file>providers/32x32/subsonic.png</file>
- <file>providers/32x32/vk.png</file>
- <file>providers/32x32/wikipedia.png</file>
- @@ -414,7 +411,6 @@
- <file>providers/48x48/intergalacticfm.png</file>
- <file>providers/48x48/songkick.png</file>
- <file>providers/48x48/soundcloud.png</file>
- - <file>providers/48x48/spotify.png</file>
- <file>providers/48x48/subsonic.png</file>
- <file>providers/48x48/vk.png</file>
- <file>providers/48x48/wikipedia.png</file>
- @@ -479,7 +475,6 @@
- <file>songinfo.css</file>
- <file>soundcloud-ca.pem</file>
- <file>spinner.gif</file>
- - <file>spotify-attribution.png</file>
- <file>star-off.png</file>
- <file>star-on.png</file>
- <file>tiny-pause.png</file>
- 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 c60ad07..b4aa8e5 100755
- --- a/dist/macdeploy.py
- +++ b/dist/macdeploy.py
- @@ -482,10 +482,7 @@ def main():
- FixPlugin(FindGioModule('libgiognutls.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 90c5dfb..0969e4c 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"
- @@ -302,7 +299,6 @@ Section "Clementine" Clementine
-
- File "clementine.exe"
- File "clementine-tagreader.exe"
- - File "clementine-spotifyblob.exe"
- File "clementine.ico"
- File "glew32.dll"
- File "libcdio-19.dll"
- @@ -355,7 +351,6 @@ Section "Clementine" Clementine
- File "libpsl-5.dll"
- File "libsoup-2.4-1.dll"
- File "libspeex-1.dll"
- - File "libspotify.dll"
- File "libssl-1_1.dll"
- File "libsqlite3-0.dll"
- File "libstdc++-6.dll"
- @@ -1137,7 +1132,6 @@ Section "Uninstall"
- ; Delete all the files
- Delete "$INSTDIR\clementine.exe"
- Delete "$INSTDIR\clementine-tagreader.exe"
- - Delete "$INSTDIR\clementine-spotifyblob.exe"
- Delete "$INSTDIR\clementine.ico"
- Delete "$INSTDIR\glew32.dll"
- Delete "$INSTDIR\libcdio-19.dll"
- @@ -1190,7 +1184,6 @@ Section "Uninstall"
- Delete "$INSTDIR\libpsl-5.dll"
- Delete "$INSTDIR\libsoup-2.4-1.dll"
- Delete "$INSTDIR\libspeex-1.dll"
- - Delete "$INSTDIR\libspotify.dll"
- Delete "$INSTDIR\libssl-1_1.dll"
- Delete "$INSTDIR\libsqlite3-0.dll"
- Delete "$INSTDIR\libstdc++-6.dll"
- diff --git a/ext/libclementine-common/core/logging.cpp b/ext/libclementine-common/core/logging.cpp
- index 8012c0c..872f19c 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 <cxxabi.h>
-
- #include <QtGlobal>
- 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,18 +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) {
- - setObjectName("Album cover loader");
- -}
- + 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<SpotifyService>();
- -
- - 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<Task> tasks_;
- QMap<QNetworkReply*, Task> remote_tasks_;
- - QMap<QString, Task> 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 56cabd1..807d4a9 100644
- --- a/src/engines/gstenginepipeline.cpp
- +++ b/src/engines/gstenginepipeline.cpp
- @@ -36,10 +36,6 @@
- #include "devices/cddadevice.h"
- #endif
- #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;
- @@ -168,45 +164,6 @@ QByteArray GstEnginePipeline::GstUriFromUrl(const QUrl& url) {
-
- 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<SpotifyService>()->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 = GstUriFromUrl(url);
- new_bin = engine_->CreateElement("uridecodebin");
- if (!new_bin) return nullptr;
- @@ -216,9 +173,6 @@ GstElement* GstEnginePipeline::CreateDecodeBinFromUrl(const QUrl& url) {
- 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;
- }
- @@ -1064,14 +1018,7 @@ void GstEnginePipeline::SourceDrainedCallback(GstURIDecodeBin* bin,
- gpointer self) {
- GstEnginePipeline* instance = reinterpret_cast<GstEnginePipeline*>(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->current_.url_.scheme() != "spotify" &&
- - instance->next_.url_.scheme() == "spotify")) {
- + if (instance->has_next_valid_url()) {
- instance->TransitionToNext();
- }
- }
- @@ -1189,26 +1136,6 @@ GstState GstEnginePipeline::state() const {
- }
-
- QFuture<GstStateChangeReturn> GstEnginePipeline::SetState(GstState state) {
- -#ifdef HAVE_SPOTIFY
- - if (current_.url_.scheme() == "spotify" && !buffering_) {
- - const GstState current_state = this->state();
- -
- - if (state == GST_STATE_PAUSED && current_state == GST_STATE_PLAYING) {
- - SpotifyService* spotify = InternetModel::Service<SpotifyService>();
- -
- - // 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<SpotifyService>();
- -
- - // Need to schedule this in the spotify service's thread
- - QMetaObject::invokeMethod(spotify, "SetPaused", Qt::QueuedConnection,
- - Q_ARG(bool, false));
- - }
- - }
- -#endif
- return ConcurrentRun::Run<GstStateChangeReturn, GstElement*, GstState>(
- &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<Playlist> 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 8a1f775..eda16d4 100644
- --- a/src/songinfo/artistinfoview.cpp
- +++ b/src/songinfo/artistinfoview.cpp
- @@ -20,12 +20,10 @@
- #include "songinfo/artistbiography.h"
- #include "songinfo/songinfofetcher.h"
- #include "songinfo/songkickconcerts.h"
- -#include "songinfo/spotifyimages.h"
- #include "widgets/prettyimageview.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("<br />%1</p>").arg(tr("...and all the Amarok contributors"));
- ret += QString("<p><b>%1</b>").arg(tr("And:"));
- - ret += QString("<br /><a href=\"http://rainymood.com\">Rainy Mood</a>");
- ret += QString(
- "<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott "
- "Smitelli</a>");
- @@ -96,11 +95,6 @@ QString About::MakeHtml() const {
- "<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie "
- "Brosh</a></p>");
-
- - ret +=
- - "<p>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.</p>";
- -
- 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 <QAbstractButton>
- #include <QDesktopWidget>
- #include <QPainter>
- @@ -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,
|