From b20d0d87fd3dd1cefa172d893448094bc8f20348 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Tue, 29 Mar 2016 21:12:54 +0100 Subject: [PATCH] Revert "Adding support for subsonic cover art download" --- src/covers/albumcoverloader.cpp | 34 +---------------------- src/covers/albumcoverloader.h | 3 -- src/internet/subsonic/subsonicservice.cpp | 33 ++-------------------- src/internet/subsonic/subsonicservice.h | 9 +----- 4 files changed, 4 insertions(+), 75 deletions(-) diff --git a/src/covers/albumcoverloader.cpp b/src/covers/albumcoverloader.cpp index 1f7ca563b..8ebf51cce 100644 --- a/src/covers/albumcoverloader.cpp +++ b/src/covers/albumcoverloader.cpp @@ -35,15 +35,13 @@ #include "core/utilities.h" #include "internet/core/internetmodel.h" #include "internet/spotify/spotifyservice.h" -#include "internet/subsonic/subsonicservice.h" AlbumCoverLoader::AlbumCoverLoader(QObject* parent) : QObject(parent), stop_requested_(false), next_id_(1), network_(new NetworkAccessManager(this)), - connected_spotify_(false), - connected_subsonic_(false) {} + connected_spotify_(false) {} QString AlbumCoverLoader::ImageCacheDir() { return Utilities::GetConfigPath(Utilities::Path_AlbumCovers); @@ -198,26 +196,6 @@ AlbumCoverLoader::TryLoadResult AlbumCoverLoader::TryLoadImage( QMetaObject::invokeMethod(spotify, "LoadImage", Qt::QueuedConnection, Q_ARG(QString, id)); return TryLoadResult(true, false, QImage()); - } else if (filename.toLower().startsWith("subsonic://image/")) { - // HACK: we should add generic image URL handlers - SubsonicService* subsonic = InternetModel::Service(); - - if (!connected_subsonic_) { - connect(subsonic, SIGNAL(ImageLoaded(QString, QImage)), - SLOT(SubsonicImageLoaded(QString, QImage))); - connected_subsonic_ = true; - } - - QString id = QUrl(filename).path(); - if (id.startsWith('/')) { - id.remove(0, 1); - } - remote_subsonic_tasks_.insert(id, task); - - // Need to schedule this in the subsonic service's thread - QMetaObject::invokeMethod(subsonic, "LoadImage", Qt::QueuedConnection, - Q_ARG(QString, id)); - return TryLoadResult(true, false, QImage()); } QImage image(filename); @@ -236,16 +214,6 @@ void AlbumCoverLoader::SpotifyImageLoaded(const QString& id, emit ImageLoaded(task.id, scaled, image); } -void AlbumCoverLoader::SubsonicImageLoaded(const QString& id, - const QImage& image) { - if (!remote_subsonic_tasks_.contains(id)) return; - - Task task = remote_subsonic_tasks_.take(id); - QImage scaled = ScaleAndPad(task.options, image); - emit ImageLoaded(task.id, scaled); - emit ImageLoaded(task.id, scaled, image); -} - void AlbumCoverLoader::RemoteFetchFinished(QNetworkReply* reply) { reply->deleteLater(); diff --git a/src/covers/albumcoverloader.h b/src/covers/albumcoverloader.h index 6eeb09486..4d3e4d571 100644 --- a/src/covers/albumcoverloader.h +++ b/src/covers/albumcoverloader.h @@ -67,7 +67,6 @@ class AlbumCoverLoader : public QObject { void ProcessTasks(); void RemoteFetchFinished(QNetworkReply* reply); void SpotifyImageLoaded(const QString& url, const QImage& image); - void SubsonicImageLoaded(const QString& url, const QImage& image); protected: enum State { State_TryingManual, State_TryingAuto, }; @@ -105,13 +104,11 @@ class AlbumCoverLoader : public QObject { QQueue tasks_; QMap remote_tasks_; QMap remote_spotify_tasks_; - QMap remote_subsonic_tasks_; quint64 next_id_; NetworkAccessManager* network_; bool connected_spotify_; - bool connected_subsonic_; static const int kMaxRedirects = 3; }; diff --git a/src/internet/subsonic/subsonicservice.cpp b/src/internet/subsonic/subsonicservice.cpp index 27eed3ebc..798bd0004 100644 --- a/src/internet/subsonic/subsonicservice.cpp +++ b/src/internet/subsonic/subsonicservice.cpp @@ -59,7 +59,6 @@ const char* SubsonicService::kSongsTable = "subsonic_songs"; const char* SubsonicService::kFtsTable = "subsonic_songs_fts"; const int SubsonicService::kMaxRedirects = 10; -const int SubsonicService::kCoverArtSize = 1024; SubsonicService::SubsonicService(Application* app, InternetModel* parent) : InternetService(kServiceName, app, parent, parent), @@ -491,7 +490,7 @@ void SubsonicLibraryScanner::OnGetAlbumListFinished(QNetworkReply* reply, } } -void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply, QString albumid) { +void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply) { reply->deleteLater(); pending_requests_.remove(reply); @@ -535,7 +534,6 @@ void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply, QString al song.set_bitrate(reader.attributes().value("bitRate").toString().toInt()); song.set_year(reader.attributes().value("year").toString().toInt()); song.set_genre(reader.attributes().value("genre").toString()); - song.set_art_automatic(QString("subsonic://image/%1").arg(albumid)); qint64 length = reader.attributes().value("duration").toString().toInt(); length *= kNsecPerSec; song.set_length_nanosec(length); @@ -568,15 +566,6 @@ void SubsonicLibraryScanner::OnGetAlbumFinished(QNetworkReply* reply, QString al } } -void SubsonicLibraryScanner::OnGetAlbumCoverFinished(QNetworkReply* reply, QString albumid) { - reply->deleteLater(); - pending_requests_.remove(reply); - - QByteArray image = reply->readAll(); - - service_->EmitImageLoaded(albumid, QImage::fromData(image)); -} - void SubsonicLibraryScanner::GetAlbumList(int offset) { QUrl url = service_->BuildRequestUrl("getAlbumList2"); url.addQueryItem("type", "alphabeticalByName"); @@ -587,24 +576,6 @@ void SubsonicLibraryScanner::GetAlbumList(int offset) { SLOT(OnGetAlbumListFinished(QNetworkReply*, int)), reply, offset); } -void SubsonicLibraryScanner::GetAlbumCover(const QString& id) { - QUrl url = service_->BuildRequestUrl("getCoverArt"); - url.addQueryItem("id", id); - url.addQueryItem("size", QString::number(kCoverArtSize)); - QNetworkReply* reply = service_->Send(url); - NewClosure(reply, SIGNAL(finished()), this, - SLOT(OnGetAlbumCoverFinished(QNetworkReply*,QString)), reply, id); - pending_requests_.insert(reply); -} - -void SubsonicService::LoadImage(const QString& id) { - scanner_->GetAlbumCover(id); -} - -void SubsonicService::EmitImageLoaded(const QString& id, const QImage& image) { - emit ImageLoaded(id, image); -} - void SubsonicLibraryScanner::GetAlbum(const QString& id) { QUrl url = service_->BuildRequestUrl("getAlbum"); url.addQueryItem("id", id); @@ -613,7 +584,7 @@ void SubsonicLibraryScanner::GetAlbum(const QString& id) { } QNetworkReply* reply = service_->Send(url); NewClosure(reply, SIGNAL(finished()), this, - SLOT(OnGetAlbumFinished(QNetworkReply*, QString)), reply, id); + SLOT(OnGetAlbumFinished(QNetworkReply*)), reply); pending_requests_.insert(reply); } diff --git a/src/internet/subsonic/subsonicservice.h b/src/internet/subsonic/subsonicservice.h index 8aada17a9..85df53e24 100644 --- a/src/internet/subsonic/subsonicservice.h +++ b/src/internet/subsonic/subsonicservice.h @@ -101,9 +101,6 @@ class SubsonicService : public InternetService { LoginState login_state() const { return login_state_; } - Q_INVOKABLE void LoadImage(const QString& id); - void EmitImageLoaded(const QString& id, const QImage& image); - // Subsonic API methods void Ping(); @@ -128,7 +125,6 @@ class SubsonicService : public InternetService { signals: void LoginStateChanged(SubsonicService::LoginState newstate); - void ImageLoaded(const QString& id, const QImage& image); private: void EnsureMenuCreated(); @@ -186,8 +182,6 @@ class SubsonicLibraryScanner : public QObject { static const int kAlbumChunkSize; static const int kConcurrentRequests; - void GetAlbumCover(const QString& id); - signals: void ScanFinished(); @@ -195,8 +189,7 @@ signals: // Step 1: use getAlbumList2 type=alphabeticalByName to list all albums void OnGetAlbumListFinished(QNetworkReply* reply, int offset); // Step 2: use getAlbum id=? to list all songs for each album - void OnGetAlbumFinished(QNetworkReply* reply, QString albumid); - void OnGetAlbumCoverFinished(QNetworkReply* reply, QString albumid); + void OnGetAlbumFinished(QNetworkReply* reply); private: void GetAlbumList(int offset);