Use common classes for Tidal and Deezer

This commit is contained in:
Jonas Kvinge
2018-10-17 21:18:39 +02:00
parent 9349ad9383
commit a8a714c820
37 changed files with 266 additions and 2405 deletions

View File

@@ -31,6 +31,7 @@
#include "core/closure.h"
#include "core/lazy.h"
#include "core/tagreaderclient.h"
#include "core/song.h"
#include "database.h"
#include "taskmanager.h"
@@ -59,8 +60,7 @@
#include "lyrics/apiseedslyricsprovider.h"
#include "internet/internetmodel.h"
#include "tidal/tidalsearch.h"
#include "deezer/deezersearch.h"
#include "internet/internetsearch.h"
bool Application::kIsPortable = false;
@@ -116,8 +116,8 @@ class ApplicationImpl {
return lyrics_providers;
}),
internet_model_([=]() { return new InternetModel(app, app); }),
tidal_search_([=]() { return new TidalSearch(app, app); }),
deezer_search_([=]() { return new DeezerSearch(app, app); })
tidal_search_([=]() { return new InternetSearch(app, Song::Source_Tidal, app); }),
deezer_search_([=]() { return new InternetSearch(app, Song::Source_Deezer, app); })
{}
Lazy<TagReaderClient> tag_reader_client_;
@@ -137,8 +137,8 @@ class ApplicationImpl {
Lazy<CurrentArtLoader> current_art_loader_;
Lazy<LyricsProviders> lyrics_providers_;
Lazy<InternetModel> internet_model_;
Lazy<TidalSearch> tidal_search_;
Lazy<DeezerSearch> deezer_search_;
Lazy<InternetSearch> tidal_search_;
Lazy<InternetSearch> deezer_search_;
};
@@ -206,5 +206,5 @@ LyricsProviders *Application::lyrics_providers() const { return p_->lyrics_provi
PlaylistBackend *Application::playlist_backend() const { return p_->playlist_backend_.get(); }
PlaylistManager *Application::playlist_manager() const { return p_->playlist_manager_.get(); }
InternetModel *Application::internet_model() const { return p_->internet_model_.get(); }
TidalSearch *Application::tidal_search() const { return p_->tidal_search_.get(); }
DeezerSearch *Application::deezer_search() const { return p_->deezer_search_.get(); }
InternetSearch *Application::tidal_search() const { return p_->tidal_search_.get(); }
InternetSearch *Application::deezer_search() const { return p_->deezer_search_.get(); }

View File

@@ -53,8 +53,7 @@ class AlbumCoverLoader;
class CurrentArtLoader;
class LyricsProviders;
class InternetModel;
class TidalSearch;
class DeezerSearch;
class InternetSearch;
class Application : public QObject {
Q_OBJECT
@@ -89,8 +88,8 @@ class Application : public QObject {
LyricsProviders *lyrics_providers() const;
InternetModel *internet_model() const;
TidalSearch *tidal_search() const;
DeezerSearch *deezer_search() const;
InternetSearch *tidal_search() const;
InternetSearch *deezer_search() const;
void MoveToNewThread(QObject *object);
void MoveToThread(QObject *object, QThread *thread);

View File

@@ -129,16 +129,16 @@
# include "device/deviceviewcontainer.h"
#endif
#include "transcoder/transcodedialog.h"
#include "settings/settingsdialog.h"
#include "settings/behavioursettingspage.h"
#include "settings/playbacksettingspage.h"
#include "settings/playlistsettingspage.h"
#include "settings/settingsdialog.h"
#include "settings/tidalsettingspage.h"
#include "settings/deezersettingspage.h"
#include "internet/internetmodel.h"
#include "internet/internetservice.h"
#include "tidal/tidalsearchview.h"
#include "deezer/deezersearchview.h"
#include "internet/internetsearchview.h"
#if defined(HAVE_GSTREAMER) && defined(HAVE_CHROMAPRINT)
# include "musicbrainz/tagfetcher.h"
@@ -203,8 +203,8 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
manager->SetPlaylistManager(app->playlist_manager());
return manager;
}),
tidal_search_view_(new TidalSearchView(app_, this)),
deezer_search_view_(new DeezerSearchView(app_, this)),
tidal_search_view_(new InternetSearchView(app_, app_->tidal_search(), TidalSettingsPage::kSettingsGroup, SettingsDialog::Page_Tidal, this)),
deezer_search_view_(new InternetSearchView(app_, app_->deezer_search(), DeezerSettingsPage::kSettingsGroup, SettingsDialog::Page_Deezer, this)),
playlist_menu_(new QMenu(this)),
playlist_add_to_another_(nullptr),
playlistitem_actions_separator_(nullptr),

View File

@@ -88,8 +88,7 @@ class TranscodeDialog;
#endif
class Ui_MainWindow;
class Windows7ThumbBar;
class TidalSearchView;
class DeezerSearchView;
class InternetSearchView;
class MainWindow : public QMainWindow, public PlatformInterface {
Q_OBJECT
@@ -337,8 +336,8 @@ signals:
PlaylistItemList autocomplete_tag_items_;
#endif
TidalSearchView *tidal_search_view_;
DeezerSearchView *deezer_search_view_;
InternetSearchView *tidal_search_view_;
InternetSearchView *deezer_search_view_;
QAction *collection_show_all_;
QAction *collection_show_duplicates_;

View File

@@ -60,8 +60,7 @@
# include "dbus/metatypes.h"
#endif
#include "tidal/tidalsearch.h"
#include "deezer/deezersearch.h"
#include "internet/internetsearch.h"
void RegisterMetaTypes() {
@@ -116,10 +115,7 @@ void RegisterMetaTypes() {
#endif
#endif
qRegisterMetaType<TidalSearch::ResultList>("TidalSearch::ResultList");
qRegisterMetaType<TidalSearch::Result>("TidalSearch::Result");
qRegisterMetaType<DeezerSearch::ResultList>("DeezerSearch::ResultList");
qRegisterMetaType<DeezerSearch::Result>("DeezerSearch::Result");
qRegisterMetaType<InternetSearch::ResultList>("InternetSearch::ResultList");
qRegisterMetaType<InternetSearch::Result>("InternetSearch::Result");
}