Change ids to qint64

This commit is contained in:
Jonas Kvinge 2019-06-19 20:40:11 +02:00
parent 7c0ab4212b
commit 8ce8e320c3
9 changed files with 102 additions and 105 deletions

View File

@ -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") {

View File

@ -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);

View File

@ -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"];

View File

@ -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<Param> 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<Request> album_songs_requests_queue_;
QQueue<AlbumCoverRequest> album_cover_requests_queue_;
QList<int> artist_albums_requests_pending_;
QList<qint64> artist_albums_requests_pending_;
QHash<QString, Request> album_songs_requests_pending_;
QMultiMap<QUrl, Song*> album_covers_requests_sent_;

View File

@ -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();

View File

@ -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);

View File

@ -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<QString, QString> Param;
typedef QList<Param> 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);

View File

@ -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);

View File

@ -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<QString, QString> Param;
typedef QList<Param> 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);