Add Subsonic support (#180)
This commit is contained in:
@@ -24,11 +24,11 @@
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
#include <QIcon>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
#include "core/song.h"
|
||||
#include "internetsearch.h"
|
||||
|
||||
class QSortFilterProxyModel;
|
||||
class Application;
|
||||
class CollectionBackend;
|
||||
class CollectionModel;
|
||||
@@ -38,6 +38,7 @@ class InternetService : public QObject {
|
||||
|
||||
public:
|
||||
InternetService(Song::Source source, const QString &name, const QString &url_scheme, Application *app, QObject *parent = nullptr);
|
||||
|
||||
virtual ~InternetService() {}
|
||||
|
||||
virtual Song::Source source() const { return source_; }
|
||||
@@ -47,40 +48,45 @@ class InternetService : public QObject {
|
||||
virtual void InitialLoadSettings() {}
|
||||
virtual void ReloadSettings() {}
|
||||
virtual QIcon Icon() { return Song::IconForSource(source_); }
|
||||
virtual const bool oauth() = 0;
|
||||
virtual const bool authenticated() = 0;
|
||||
virtual int Search(const QString &query, InternetSearch::SearchType type) = 0;
|
||||
virtual void CancelSearch() = 0;
|
||||
virtual const bool oauth() { return false; }
|
||||
virtual const bool authenticated() { return false; }
|
||||
virtual int Search(const QString &query, InternetSearch::SearchType type) { return 0; }
|
||||
virtual void CancelSearch() {}
|
||||
|
||||
virtual CollectionBackend *artists_collection_backend() = 0;
|
||||
virtual CollectionBackend *albums_collection_backend() = 0;
|
||||
virtual CollectionBackend *songs_collection_backend() = 0;
|
||||
virtual CollectionBackend *artists_collection_backend() { return nullptr; }
|
||||
virtual CollectionBackend *albums_collection_backend() { return nullptr; }
|
||||
virtual CollectionBackend *songs_collection_backend() { return nullptr; }
|
||||
|
||||
virtual CollectionModel *artists_collection_model() = 0;
|
||||
virtual CollectionModel *albums_collection_model() = 0;
|
||||
virtual CollectionModel *songs_collection_model() = 0;
|
||||
virtual CollectionModel *artists_collection_model() { return nullptr; }
|
||||
virtual CollectionModel *albums_collection_model() { return nullptr; }
|
||||
virtual CollectionModel *songs_collection_model() { return nullptr; }
|
||||
|
||||
virtual QSortFilterProxyModel *artists_collection_sort_model() = 0;
|
||||
virtual QSortFilterProxyModel *albums_collection_sort_model() = 0;
|
||||
virtual QSortFilterProxyModel *songs_collection_sort_model() = 0;
|
||||
virtual QSortFilterProxyModel *artists_collection_sort_model() { return nullptr; }
|
||||
virtual QSortFilterProxyModel *albums_collection_sort_model() { return nullptr; }
|
||||
virtual QSortFilterProxyModel *songs_collection_sort_model() { return nullptr; }
|
||||
|
||||
public slots:
|
||||
virtual void ShowConfig() {}
|
||||
virtual void GetArtists() = 0;
|
||||
virtual void GetAlbums() = 0;
|
||||
virtual void GetSongs() = 0;
|
||||
virtual void ResetArtistsRequest() = 0;
|
||||
virtual void ResetAlbumsRequest() = 0;
|
||||
virtual void ResetSongsRequest() = 0;
|
||||
virtual void GetArtists() {}
|
||||
virtual void GetAlbums() {}
|
||||
virtual void GetSongs() {}
|
||||
virtual void ResetArtistsRequest() {}
|
||||
virtual void ResetAlbumsRequest() {}
|
||||
virtual void ResetSongsRequest() {}
|
||||
|
||||
signals:
|
||||
void Login();
|
||||
void Logout();
|
||||
void Login(const QString &username, const QString &password, const QString &token);
|
||||
void Login(const QString &hostname, const int, const QString &username, const QString &password);
|
||||
void LoginSuccess();
|
||||
void LoginFailure(QString failure_reason);
|
||||
void LoginComplete(bool success, QString error = QString());
|
||||
|
||||
void TestSuccess();
|
||||
void TestFailure(QString failure_reason);
|
||||
void TestComplete(bool success, QString error = QString());
|
||||
|
||||
void Error(QString message);
|
||||
void Results(SongList songs);
|
||||
void UpdateStatus(QString text);
|
||||
|
||||
Reference in New Issue
Block a user