diff --git a/src/core/song.cpp b/src/core/song.cpp index c8ea4fd0f..0c18f0b1f 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -176,9 +176,9 @@ struct Song::Private : public QSharedData { QString comment_; QString lyrics_; - int artist_id_; - int album_id_; - int song_id_; + qint64 artist_id_; + qint64 album_id_; + qint64 song_id_; qint64 beginning_; qint64 end_; @@ -274,9 +274,9 @@ bool Song::is_valid() const { return d->valid_; } bool Song::is_unavailable() const { return d->unavailable_; } int Song::id() const { return d->id_; } -int Song::artist_id() const { return d->artist_id_; } -int Song::album_id() const { return d->album_id_; } -int Song::song_id() const { return d->song_id_; } +qint64 Song::artist_id() const { return d->artist_id_; } +qint64 Song::album_id() const { return d->album_id_; } +qint64 Song::song_id() const { return d->song_id_; } const QString &Song::title() const { return d->title_; } const QString &Song::album() const { return d->album_; } @@ -341,9 +341,9 @@ const QString &Song::error() const { return d->error_; } void Song::set_id(int id) { d->id_ = id; } void Song::set_valid(bool v) { d->valid_ = v; } -void Song::set_artist_id(int v) { d->artist_id_ = v; } -void Song::set_album_id(int v) { d->album_id_ = v; } -void Song::set_song_id(int v) { d->song_id_ = v; } +void Song::set_artist_id(qint64 v) { d->artist_id_ = v; } +void Song::set_album_id(qint64 v) { d->album_id_ = v; } +void Song::set_song_id(qint64 v) { d->song_id_ = v; } void Song::set_title(const QString &v) { d->title_ = v; } void Song::set_album(const QString &v) { d->album_ = v; } @@ -771,13 +771,13 @@ void Song::InitFromQuery(const SqlRow &q, bool reliable_metadata, int col) { } else if (Song::kColumns.value(i) == "artist_id") { - d->artist_id_ = toint(x); + d->artist_id_ = tolonglong(x); } else if (Song::kColumns.value(i) == "album_id") { - d->album_id_ = toint(x); + d->album_id_ = tolonglong(x); } else if (Song::kColumns.value(i) == "song_id") { - d->song_id_ = toint(x); + d->song_id_ = tolonglong(x); } else if (Song::kColumns.value(i) == "beginning") { diff --git a/src/core/song.h b/src/core/song.h index 7958c3cdd..0f5a35a67 100644 --- a/src/core/song.h +++ b/src/core/song.h @@ -199,9 +199,9 @@ class Song { const QString &comment() const; const QString &lyrics() const; - int artist_id() const; - int album_id() const; - int song_id() const; + qint64 artist_id() const; + qint64 album_id() const; + qint64 song_id() const; qint64 beginning_nanosec() const; qint64 end_nanosec() const; @@ -289,9 +289,9 @@ class Song { void set_comment(const QString &v); void set_lyrics(const QString &v); - void set_artist_id(int v); - void set_album_id(int v); - void set_song_id(int v); + void set_artist_id(qint64 v); + void set_album_id(qint64 v); + void set_song_id(qint64 v); void set_beginning_nanosec(qint64 v); void set_end_nanosec(qint64 v); diff --git a/src/qobuz/qobuzrequest.cpp b/src/qobuz/qobuzrequest.cpp index 7bc801669..79d2de513 100644 --- a/src/qobuz/qobuzrequest.cpp +++ b/src/qobuz/qobuzrequest.cpp @@ -401,7 +401,7 @@ void QobuzRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re continue; } - int artist_id = json_obj["id"].toInt(); + qint64 artist_id = json_obj["id"].toInt(); if (artist_albums_requests_pending_.contains(artist_id)) continue; artist_albums_requests_pending_.append(artist_id); @@ -431,7 +431,7 @@ void QobuzRequest::ArtistsFinishCheck(const int limit, const int offset, const i if (artists_requests_queue_.isEmpty() && artists_requests_active_ <= 0) { // Artist query is finished, get all albums for all artists. // Get artist albums - for (int artist_id : artist_albums_requests_pending_) { + for (qint64 artist_id : artist_albums_requests_pending_) { AddArtistAlbumsRequest(artist_id); ++artist_albums_requested_; } @@ -456,7 +456,7 @@ void QobuzRequest::AlbumsReplyReceived(QNetworkReply *reply, const int limit_req if (!albums_requests_queue_.isEmpty() && albums_requests_active_ < kMaxConcurrentAlbumsRequests) FlushAlbumsRequests(); } -void QobuzRequest::AddArtistAlbumsRequest(const int artist_id, const int offset) { +void QobuzRequest::AddArtistAlbumsRequest(const qint64 artist_id, const int offset) { Request request; request.artist_id = artist_id; @@ -478,13 +478,13 @@ void QobuzRequest::FlushArtistAlbumsRequests() { if (request.offset > 0) params << Param("offset", QString::number(request.offset)); QNetworkReply *reply = CreateRequest(QString("artist/get"), params); - NewClosure(reply, SIGNAL(finished()), this, SLOT(ArtistAlbumsReplyReceived(QNetworkReply*, int, int)), reply, request.artist_id, request.offset); + NewClosure(reply, SIGNAL(finished()), this, SLOT(ArtistAlbumsReplyReceived(QNetworkReply*, const qint64, int)), reply, request.artist_id, request.offset); } } -void QobuzRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const int artist_id, const int offset_requested) { +void QobuzRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const int offset_requested) { --artist_albums_requests_active_; ++artist_albums_received_; @@ -494,7 +494,7 @@ void QobuzRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const int art } -void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested) { +void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const int limit_requested, const int offset_requested) { QString error; QByteArray data = GetReplyData(reply, error); @@ -512,7 +512,7 @@ void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requ return; } - int artist_id = 0; + qint64 artist_id = 0; if (json_obj.contains("id")) { artist_id = json_obj["id"].toInt(); } @@ -614,7 +614,7 @@ void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requ } -void QobuzRequest::AlbumsFinishCheck(const int artist_id, const int limit, const int offset, const int albums_total, const int albums_received) { +void QobuzRequest::AlbumsFinishCheck(const qint64 artist_id, const int limit, const int offset, const int albums_total, const int albums_received) { if (finished_) return; @@ -673,7 +673,7 @@ void QobuzRequest::SongsReplyReceived(QNetworkReply *reply, const int limit_requ } -void QobuzRequest::AddAlbumSongsRequest(const int artist_id, const QString &album_id, const QString &album_artist, const int offset) { +void QobuzRequest::AddAlbumSongsRequest(const qint64 artist_id, const QString &album_id, const QString &album_artist, const int offset) { Request request; request.artist_id = artist_id; @@ -695,13 +695,13 @@ void QobuzRequest::FlushAlbumSongsRequests() { ParamList params = ParamList() << Param("album_id", request.album_id); if (request.offset > 0) params << Param("offset", QString::number(request.offset)); QNetworkReply *reply = CreateRequest(QString("album/get"), params); - NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, int, const QString&, int, const QString&)), reply, request.artist_id, request.album_id, request.offset, request.album_artist); + NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, const qint64, const QString&, int, const QString&)), reply, request.artist_id, request.album_id, request.offset, request.album_artist); } } -void QobuzRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const QString &album_id, const int offset_requested, const QString &album_artist) { +void QobuzRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const QString &album_id, const int offset_requested, const QString &album_artist) { --album_songs_requests_active_; ++album_songs_received_; @@ -712,7 +712,7 @@ void QobuzRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const int artis } -void QobuzRequest::SongsReceived(QNetworkReply *reply, const int artist_id_requested, const QString &album_id_requested, const int limit_requested, const int offset_requested, const QString &album_artist_requested) { +void QobuzRequest::SongsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const QString &album_id_requested, const int limit_requested, const int offset_requested, const QString &album_artist_requested) { QString error; QByteArray data = GetReplyData(reply, error); @@ -738,7 +738,7 @@ void QobuzRequest::SongsReceived(QNetworkReply *reply, const int artist_id_reque return; } - int artist_id = 0; + qint64 artist_id = 0; QString album_artist; QString album_id; QString album; @@ -862,7 +862,7 @@ void QobuzRequest::SongsReceived(QNetworkReply *reply, const int artist_id_reque } -void QobuzRequest::SongsFinishCheck(const int artist_id, const QString &album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist) { +void QobuzRequest::SongsFinishCheck(const qint64 artist_id, const QString &album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist) { if (finished_) return; @@ -912,7 +912,7 @@ void QobuzRequest::SongsFinishCheck(const int artist_id, const QString &album_id } -int QobuzRequest::ParseSong(Song &song, const QJsonObject &json_obj, int artist_id, QString album_id, QString album_artist, QString album, QUrl cover_url) { +int QobuzRequest::ParseSong(Song &song, const QJsonObject &json_obj, qint64 artist_id, QString album_id, QString album_artist, QString album, QUrl cover_url) { if ( !json_obj.contains("id") || @@ -926,7 +926,7 @@ int QobuzRequest::ParseSong(Song &song, const QJsonObject &json_obj, int artist_ return -1; } - int song_id = json_obj["id"].toInt(); + qint64 song_id = json_obj["id"].toInt(); QString title = json_obj["title"].toString(); int track = json_obj["track_number"].toInt(); QString copyright = json_obj["copyright"].toString(); @@ -934,7 +934,7 @@ int QobuzRequest::ParseSong(Song &song, const QJsonObject &json_obj, int artist_ //bool streamable = json_obj["streamable"].toBool(); QString composer; QString performer; - + if (json_obj.contains("album")) { QJsonValue json_album = json_obj["album"]; diff --git a/src/qobuz/qobuzrequest.h b/src/qobuz/qobuzrequest.h index ce09cae20..351758f06 100644 --- a/src/qobuz/qobuzrequest.h +++ b/src/qobuz/qobuzrequest.h @@ -76,13 +76,13 @@ class QobuzRequest : public QobuzBaseRequest { void ArtistsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); void AlbumsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); - void AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested); + void AlbumsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const int limit_requested, const int offset_requested); void SongsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); - void SongsReceived(QNetworkReply *reply, const int artist_id_requested, const QString &album_id_requested, const int limit_requested, const int offset_requested, const QString &album_artist_requested = QString()); + void SongsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const QString &album_id_requested, const int limit_requested, const int offset_requested, const QString &album_artist_requested = QString()); - void ArtistAlbumsReplyReceived(QNetworkReply *reply, const int artist_id, const int offset_requested); - void AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const QString &album_id, const int offset_requested, const QString &album_artist); + void ArtistAlbumsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const int offset_requested); + void AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const QString &album_id, const int offset_requested, const QString &album_artist); void AlbumCoverReceived(QNetworkReply *reply, const QUrl &cover_url, const QString &filename); private: @@ -90,16 +90,15 @@ class QobuzRequest : public QobuzBaseRequest { typedef QList ParamList; struct Request { - int artist_id = 0; + qint64 artist_id = 0; QString album_id = 0; - int song_id = 0; + qint64 song_id = 0; int offset = 0; int limit = 0; QString album_artist; QString album; }; struct AlbumCoverRequest { - //int artist_id = 0; QUrl url; QString filename; }; @@ -126,16 +125,16 @@ class QobuzRequest : public QobuzBaseRequest { void FlushSongsRequests(); void ArtistsFinishCheck(const int limit = 0, const int offset = 0, const int artists_received = 0); - void AlbumsFinishCheck(const int artist_id, const int limit = 0, const int offset = 0, const int albums_total = 0, const int albums_received = 0); - void SongsFinishCheck(const int artist_id, const QString &album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist); + void AlbumsFinishCheck(const qint64 artist_id, const int limit = 0, const int offset = 0, const int albums_total = 0, const int albums_received = 0); + void SongsFinishCheck(const qint64 artist_id, const QString &album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist); - void AddArtistAlbumsRequest(const int artist_id, const int offset = 0); + void AddArtistAlbumsRequest(const qint64 artist_id, const int offset = 0); void FlushArtistAlbumsRequests(); - void AddAlbumSongsRequest(const int artist_id, const QString &album_id, const QString &album_artist, const int offset = 0); + void AddAlbumSongsRequest(const qint64 artist_id, const QString &album_id, const QString &album_artist, const int offset = 0); void FlushAlbumSongsRequests(); - int ParseSong(Song &song, const QJsonObject &json_obj, int artist_id, QString album_id, QString album_artist, QString album, QUrl cover_url); + int ParseSong(Song &song, const QJsonObject &json_obj, qint64 artist_id, QString album_id, QString album_artist, QString album, QUrl cover_url); QString AlbumCoverFileName(const Song &song); @@ -174,7 +173,7 @@ class QobuzRequest : public QobuzBaseRequest { QQueue album_songs_requests_queue_; QQueue album_cover_requests_queue_; - QList artist_albums_requests_pending_; + QList artist_albums_requests_pending_; QHash album_songs_requests_pending_; QMultiMap album_covers_requests_sent_; diff --git a/src/qobuz/qobuzservice.cpp b/src/qobuz/qobuzservice.cpp index 77dd628aa..236eef54a 100644 --- a/src/qobuz/qobuzservice.cpp +++ b/src/qobuz/qobuzservice.cpp @@ -556,7 +556,6 @@ void QobuzService::SendSearch() { connect(search_request_.get(), SIGNAL(UpdateStatus(QString)), SIGNAL(SearchUpdateStatus(QString))); connect(search_request_.get(), SIGNAL(ProgressSetMaximum(int)), SIGNAL(SearchProgressSetMaximum(int))); connect(search_request_.get(), SIGNAL(UpdateProgress(int)), SIGNAL(SearchUpdateProgress(int))); - connect(this, SIGNAL(LoginComplete(bool, QString)), search_request_.get(), SLOT(LoginComplete(bool, QString))); search_request_->Search(search_id_, search_text_); search_request_->Process(); @@ -570,7 +569,6 @@ void QobuzService::GetStreamURL(const QUrl &url) { connect(stream_url_req, SIGNAL(TryLogin()), this, SLOT(TryLogin())); connect(stream_url_req, SIGNAL(StreamURLFinished(QUrl, QUrl, Song::FileType, QString)), this, SLOT(HandleStreamURLFinished(QUrl, QUrl, Song::FileType, QString))); - connect(this, SIGNAL(LoginComplete(bool, QString)), stream_url_req, SLOT(LoginComplete(bool, QString))); stream_url_req->Process(); diff --git a/src/subsonic/subsonicrequest.cpp b/src/subsonic/subsonicrequest.cpp index c2539ddee..c3afaf404 100644 --- a/src/subsonic/subsonicrequest.cpp +++ b/src/subsonic/subsonicrequest.cpp @@ -242,7 +242,7 @@ void SubsonicRequest::AlbumsReplyReceived(QNetworkReply *reply, const int offset continue; } - int album_id = json_obj["id"].toString().toInt(); + qint64 album_id = json_obj["id"].toString().toLongLong(); QString artist = json_obj["artist"].toString(); QString album; if (json_obj.contains("album")) album = json_obj["album"].toString(); @@ -295,7 +295,7 @@ void SubsonicRequest::AlbumsFinishCheck(const int offset, const int albums_recei } -void SubsonicRequest::AddAlbumSongsRequest(const int artist_id, const int album_id, const QString &album_artist, const int offset) { +void SubsonicRequest::AddAlbumSongsRequest(const qint64 artist_id, const qint64 album_id, const QString &album_artist, const int offset) { Request request; request.artist_id = artist_id; @@ -316,13 +316,13 @@ void SubsonicRequest::FlushAlbumSongsRequests() { ++album_songs_requests_active_; ParamList params = ParamList() << Param("id", QString::number(request.album_id)); QNetworkReply *reply = CreateGetRequest(QString("getAlbum"), params); - NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, int, int, QString)), reply, request.artist_id, request.album_id, request.album_artist); + NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, const qint64, const qint64, const QString&)), reply, request.artist_id, request.album_id, request.album_artist); } } -void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const int album_id, const QString album_artist) { +void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const QString &album_artist) { --album_songs_requests_active_; ++album_songs_received_; @@ -449,7 +449,7 @@ void SubsonicRequest::SongsFinishCheck() { } -int SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int artist_id_requested, const int album_id_requested, const QString &album_artist) { +int SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, const qint64 artist_id_requested, const qint64 album_id_requested, const QString &album_artist) { if ( !json_obj.contains("id") || @@ -469,9 +469,9 @@ int SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, const in return -1; } - int song_id = json_obj["id"].toString().toInt(); - int album_id = json_obj["albumId"].toString().toInt(); - int artist_id = json_obj["artistId"].toString().toInt(); + qint64 song_id = json_obj["id"].toString().toLongLong(); + qint64 album_id = json_obj["albumId"].toString().toLongLong(); + qint64 artist_id = json_obj["artistId"].toString().toLongLong(); QString title = json_obj["title"].toString(); title.remove(Song::kTitleRemoveMisc); @@ -628,13 +628,13 @@ void SubsonicRequest::FlushAlbumCoverRequests() { QNetworkReply *reply = network_->get(req); album_cover_replies_ << reply; - NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumCoverReceived(QNetworkReply*, const int, const QUrl&, const QString&)), reply, request.album_id, request.url, request.filename); + NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumCoverReceived(QNetworkReply*, const qint64, const QUrl&, const QString&)), reply, request.album_id, request.url, request.filename); } } -void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const int album_id, const QUrl &url, const QString &filename) { +void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const qint64 album_id, const QUrl &url, const QString &filename) { if (album_cover_replies_.contains(reply)) { album_cover_replies_.removeAll(reply); diff --git a/src/subsonic/subsonicrequest.h b/src/subsonic/subsonicrequest.h index 946e29e06..5c063300a 100644 --- a/src/subsonic/subsonicrequest.h +++ b/src/subsonic/subsonicrequest.h @@ -68,24 +68,24 @@ class SubsonicRequest : public SubsonicBaseRequest { private slots: void AlbumsReplyReceived(QNetworkReply *reply, const int offset_requested); - void AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const int album_id, const QString album_artist); - void AlbumCoverReceived(QNetworkReply *reply, const int album_id, const QUrl &url, const QString &filename); + void AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const QString &album_artist); + void AlbumCoverReceived(QNetworkReply *reply, const qint64 album_id, const QUrl &url, const QString &filename); private: typedef QPair Param; typedef QList ParamList; struct Request { - int artist_id = 0; - int album_id = 0; - int song_id = 0; + qint64 artist_id = 0; + qint64 album_id = 0; + qint64 song_id = 0; int offset = 0; int size = 0; QString album_artist; }; struct AlbumCoverRequest { - int artist_id = 0; - int album_id = 0; + qint64 artist_id = 0; + qint64 album_id = 0; QUrl url; QString filename; }; @@ -96,11 +96,11 @@ class SubsonicRequest : public SubsonicBaseRequest { void AlbumsFinishCheck(const int offset = 0, const int albums_received = 0); void SongsFinishCheck(); - void AddAlbumSongsRequest(const int artist_id, const int album_id, const QString &album_artist, const int offset = 0); + void AddAlbumSongsRequest(const qint64 artist_id, const qint64 album_id, const QString &album_artist, const int offset = 0); QString AlbumCoverFileName(const Song &song); void FlushAlbumSongsRequests(); - int ParseSong(Song &song, const QJsonObject &json_obj, const int artist_id_requested = 0, const int album_id_requested = 0, const QString &album_artist = QString()); + int ParseSong(Song &song, const QJsonObject &json_obj, const qint64 artist_id_requested = 0, const qint64 album_id_requested = 0, const QString &album_artist = QString()); void GetAlbumCovers(); void AddAlbumCoverRequest(Song &song); diff --git a/src/tidal/tidalrequest.cpp b/src/tidal/tidalrequest.cpp index ec3f72837..ae4239854 100644 --- a/src/tidal/tidalrequest.cpp +++ b/src/tidal/tidalrequest.cpp @@ -394,7 +394,7 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re continue; } - int artist_id = json_obj["id"].toInt(); + qint64 artist_id = json_obj["id"].toInt(); if (artist_albums_requests_pending_.contains(artist_id)) continue; artist_albums_requests_pending_.append(artist_id); @@ -424,7 +424,7 @@ void TidalRequest::ArtistsFinishCheck(const int limit, const int offset, const i if (artists_requests_queue_.isEmpty() && artists_requests_active_ <= 0) { // Artist query is finished, get all albums for all artists. // Get artist albums - for (int artist_id : artist_albums_requests_pending_) { + for (qint64 artist_id : artist_albums_requests_pending_) { AddArtistAlbumsRequest(artist_id); ++artist_albums_requested_; } @@ -449,7 +449,7 @@ void TidalRequest::AlbumsReplyReceived(QNetworkReply *reply, const int limit_req if (!albums_requests_queue_.isEmpty() && albums_requests_active_ < kMaxConcurrentAlbumsRequests) FlushAlbumsRequests(); } -void TidalRequest::AddArtistAlbumsRequest(const int artist_id, const int offset) { +void TidalRequest::AddArtistAlbumsRequest(const qint64 artist_id, const int offset) { Request request; request.artist_id = artist_id; @@ -469,13 +469,13 @@ void TidalRequest::FlushArtistAlbumsRequests() { ParamList parameters; if (request.offset > 0) parameters << Param("offset", QString::number(request.offset)); QNetworkReply *reply = CreateRequest(QString("artists/%1/albums").arg(request.artist_id), parameters); - NewClosure(reply, SIGNAL(finished()), this, SLOT(ArtistAlbumsReplyReceived(QNetworkReply*, const int, const int)), reply, request.artist_id, request.offset); + NewClosure(reply, SIGNAL(finished()), this, SLOT(ArtistAlbumsReplyReceived(QNetworkReply*, const qint64, const int)), reply, request.artist_id, request.offset); } } -void TidalRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const int artist_id, const int offset_requested) { +void TidalRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const int offset_requested) { --artist_albums_requests_active_; ++artist_albums_received_; @@ -485,7 +485,7 @@ void TidalRequest::ArtistAlbumsReplyReceived(QNetworkReply *reply, const int art } -void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login) { +void TidalRequest::AlbumsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login) { QString error; QByteArray data = GetReplyData(reply, error, auto_login); @@ -554,7 +554,7 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requ json_obj = json_item.toObject(); } - int album_id = 0; + qint64 album_id = 0; QString album; if (json_obj.contains("type")) { // This was a albums request or search if (!json_obj.contains("id") || !json_obj.contains("title")) { @@ -601,7 +601,7 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requ continue; } - int artist_id = json_artist["id"].toInt(); + qint64 artist_id = json_artist["id"].toInt(); QString artist = json_artist["name"].toString(); QString quality = json_obj["audioQuality"].toString(); @@ -626,7 +626,7 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const int artist_id_requ } -void TidalRequest::AlbumsFinishCheck(const int artist_id, const int limit, const int offset, const int albums_total, const int albums_received) { +void TidalRequest::AlbumsFinishCheck(const qint64 artist_id, const int limit, const int offset, const int albums_total, const int albums_received) { if (finished_) return; @@ -690,7 +690,7 @@ void TidalRequest::SongsReplyReceived(QNetworkReply *reply, const int limit_requ } -void TidalRequest::AddAlbumSongsRequest(const int artist_id, const int album_id, const QString &album_artist, const int offset) { +void TidalRequest::AddAlbumSongsRequest(const qint64 artist_id, const qint64 album_id, const QString &album_artist, const int offset) { Request request; request.artist_id = artist_id; @@ -712,13 +712,13 @@ void TidalRequest::FlushAlbumSongsRequests() { ParamList parameters; if (request.offset > 0) parameters << Param("offset", QString::number(request.offset)); QNetworkReply *reply = CreateRequest(QString("albums/%1/tracks").arg(request.album_id), parameters); - NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, const int, const int, const int, const QString&)), reply, request.artist_id, request.album_id, request.offset, request.album_artist); + NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumSongsReplyReceived(QNetworkReply*, const qint64, const qint64, const int, const QString&)), reply, request.artist_id, request.album_id, request.offset, request.album_artist); } } -void TidalRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int offset_requested, const QString &album_artist) { +void TidalRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const int offset_requested, const QString &album_artist) { --album_songs_requests_active_; ++album_songs_received_; @@ -729,7 +729,7 @@ void TidalRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const int artis } -void TidalRequest::SongsReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int limit_requested, const int offset_requested, const bool auto_login, const QString &album_artist) { +void TidalRequest::SongsReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const int limit_requested, const int offset_requested, const bool auto_login, const QString &album_artist) { QString error; QByteArray data = GetReplyData(reply, error, auto_login); @@ -822,7 +822,7 @@ void TidalRequest::SongsReceived(QNetworkReply *reply, const int artist_id, cons } -void TidalRequest::SongsFinishCheck(const int artist_id, const int album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist) { +void TidalRequest::SongsFinishCheck(const qint64 artist_id, const qint64 album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist) { if (finished_) return; @@ -872,7 +872,7 @@ void TidalRequest::SongsFinishCheck(const int artist_id, const int album_id, con } -int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int artist_id_requested, const int album_id_requested, const QString &album_artist) { +int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const qint64 artist_id_requested, const qint64 album_id_requested, const QString &album_artist) { if ( !json_obj.contains("album") || @@ -898,7 +898,7 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a QJsonValue json_duration = json_obj["duration"]; QJsonArray json_artists = json_obj["artists"].toArray(); - int song_id = json_obj["id"].toInt(); + qint64 song_id = json_obj["id"].toInt(); QString title = json_obj["title"].toString(); QString urlstr = json_obj["url"].toString(); @@ -917,7 +917,7 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a Error("Invalid Json reply, track artist is missing id or name.", json_artist); return -1; } - int artist_id = json_artist["id"].toInt(); + qint64 artist_id = json_artist["id"].toInt(); QString artist = json_artist["name"].toString(); if (!json_value_album.isObject()) { @@ -929,7 +929,7 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a Error("Invalid Json reply, track album is missing id, title or cover.", json_album); return -1; } - int album_id = json_album["id"].toInt(); + qint64 album_id = json_album["id"].toInt(); if (album_id_requested != 0 && album_id_requested != album_id) { Error("Invalid Json reply, track album id is wrong.", json_album); return -1; @@ -952,7 +952,7 @@ int TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const int a QVariant q_duration = json_duration.toVariant(); quint64 duration = 0; if (q_duration.isValid() && (q_duration.type() == QVariant::Int || q_duration.type() == QVariant::Double)) { - duration = q_duration.toInt() * kNsecPerSec; + duration = q_duration.toLongLong() * kNsecPerSec; } else { Error("Invalid duration for song.", json_duration); @@ -1033,13 +1033,13 @@ void TidalRequest::FlushAlbumCoverRequests() { QNetworkRequest req(request.url); QNetworkReply *reply = network_->get(req); album_cover_replies_ << reply; - NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumCoverReceived(QNetworkReply*, const int, const QUrl&)), reply, request.album_id, request.url); + NewClosure(reply, SIGNAL(finished()), this, SLOT(AlbumCoverReceived(QNetworkReply*, const qint64, const QUrl&)), reply, request.album_id, request.url); } } -void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const int album_id, const QUrl &url) { +void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const qint64 album_id, const QUrl &url) { if (album_cover_replies_.contains(reply)) { album_cover_replies_.removeAll(reply); diff --git a/src/tidal/tidalrequest.h b/src/tidal/tidalrequest.h index b760697f8..37bf91405 100644 --- a/src/tidal/tidalrequest.h +++ b/src/tidal/tidalrequest.h @@ -78,30 +78,30 @@ class TidalRequest : public TidalBaseRequest { void ArtistsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); void AlbumsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); - void AlbumsReceived(QNetworkReply *reply, const int artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login); + void AlbumsReceived(QNetworkReply *reply, const qint64 artist_id_requested, const int limit_requested, const int offset_requested, const bool auto_login); void SongsReplyReceived(QNetworkReply *reply, const int limit_requested, const int offset_requested); - void SongsReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int limit_requested, const int offset_requested, const bool auto_login = false, const QString &album_artist = QString()); + void SongsReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const int limit_requested, const int offset_requested, const bool auto_login = false, const QString &album_artist = QString()); - void ArtistAlbumsReplyReceived(QNetworkReply *reply, const int artist_id, const int offset_requested); - void AlbumSongsReplyReceived(QNetworkReply *reply, const int artist_id, const int album_id, const int offset_requested, const QString &album_artist); - void AlbumCoverReceived(QNetworkReply *reply, const int album_id, const QUrl &url); + void ArtistAlbumsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const int offset_requested); + void AlbumSongsReplyReceived(QNetworkReply *reply, const qint64 artist_id, const qint64 album_id, const int offset_requested, const QString &album_artist); + void AlbumCoverReceived(QNetworkReply *reply, const qint64 album_id, const QUrl &url); private: typedef QPair Param; typedef QList ParamList; struct Request { - int artist_id = 0; - int album_id = 0; - int song_id = 0; + qint64 artist_id = 0; + qint64 album_id = 0; + qint64 song_id = 0; int offset = 0; int limit = 0; QString album_artist; }; struct AlbumCoverRequest { - int artist_id = 0; - int album_id = 0; + qint64 artist_id = 0; + qint64 album_id = 0; QUrl url; }; @@ -127,16 +127,16 @@ class TidalRequest : public TidalBaseRequest { void FlushSongsRequests(); void ArtistsFinishCheck(const int limit = 0, const int offset = 0, const int artists_received = 0); - void AlbumsFinishCheck(const int artist_id, const int limit = 0, const int offset = 0, const int albums_total = 0, const int albums_received = 0); - void SongsFinishCheck(const int artist_id, const int album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist); + void AlbumsFinishCheck(const qint64 artist_id, const int limit = 0, const int offset = 0, const int albums_total = 0, const int albums_received = 0); + void SongsFinishCheck(const qint64 artist_id, const qint64 album_id, const int limit, const int offset, const int songs_total, const int songs_received, const QString &album_artist); - void AddArtistAlbumsRequest(const int artist_id, const int offset = 0); + void AddArtistAlbumsRequest(const qint64 artist_id, const int offset = 0); void FlushArtistAlbumsRequests(); - void AddAlbumSongsRequest(const int artist_id, const int album_id, const QString &album_artist, const int offset = 0); + void AddAlbumSongsRequest(const qint64 artist_id, const qint64 album_id, const QString &album_artist, const int offset = 0); void FlushAlbumSongsRequests(); - int ParseSong(Song &song, const QJsonObject &json_obj, const int artist_id_requested = 0, const int album_id_requested = 0, const QString &album_artist = QString()); + int ParseSong(Song &song, const QJsonObject &json_obj, const qint64 artist_id_requested = 0, const qint64 album_id_requested = 0, const QString &album_artist = QString()); void GetAlbumCovers(); void AddAlbumCoverRequest(Song &song);