Improve URL handler, return error for encrypted Tidal streams

This commit is contained in:
Jonas Kvinge
2021-11-08 20:25:22 +01:00
parent fd85763fb4
commit 01f8129ed0
13 changed files with 218 additions and 108 deletions

View File

@@ -102,7 +102,7 @@ class TidalService : public InternetService {
bool login_sent() { return login_sent_; }
bool login_attempts() { return login_attempts_; }
void GetStreamURL(const QUrl &url);
uint GetStreamURL(const QUrl &url, QString &error);
CollectionBackend *artists_collection_backend() override { return artists_collection_backend_; }
CollectionBackend *albums_collection_backend() override { return albums_collection_backend_; }
@@ -151,7 +151,8 @@ class TidalService : public InternetService {
void ArtistsUpdateProgressReceived(const int id, const int progress);
void AlbumsUpdateProgressReceived(const int id, const int progress);
void SongsUpdateProgressReceived(const int id, const int progress);
void HandleStreamURLFinished(const int id, const QUrl &original_url, const QUrl &stream_url, const Song::FileType filetype, const int samplerate, const int bit_depth, const qint64 duration, const QString &error = QString());
void HandleStreamURLFailure(const uint id, const QUrl &original_url, const QString &error);
void HandleStreamURLSuccess(const uint id, const QUrl &original_url, const QUrl &stream_url, const Song::FileType filetype, const int samplerate, const int bit_depth, const qint64 duration);
private:
typedef QPair<QString, QString> Param;
@@ -241,8 +242,8 @@ class TidalService : public InternetService {
QString code_verifier_;
QString code_challenge_;
int next_stream_url_request_id_;
QMap<int, std::shared_ptr<TidalStreamURLRequest>> stream_url_requests_;
uint next_stream_url_request_id_;
QMap<uint, std::shared_ptr<TidalStreamURLRequest>> stream_url_requests_;
QStringList login_errors_;