Add duration to lyrics search request
This commit is contained in:
@@ -59,6 +59,7 @@
|
|||||||
#include "covermanager/albumcoverchoicecontroller.h"
|
#include "covermanager/albumcoverchoicecontroller.h"
|
||||||
#include "lyrics/lyricsfetcher.h"
|
#include "lyrics/lyricsfetcher.h"
|
||||||
#include "constants/contextsettings.h"
|
#include "constants/contextsettings.h"
|
||||||
|
#include "constants/timeconstants.h"
|
||||||
|
|
||||||
#include "contextview.h"
|
#include "contextview.h"
|
||||||
#include "contextalbum.h"
|
#include "contextalbum.h"
|
||||||
@@ -353,7 +354,7 @@ void ContextView::SearchLyrics() {
|
|||||||
if (lyrics_.isEmpty() && action_show_lyrics_->isChecked() && action_search_lyrics_->isChecked() && !song_playing_.artist().isEmpty() && !song_playing_.title().isEmpty() && !lyrics_tried_ && lyrics_id_ == -1) {
|
if (lyrics_.isEmpty() && action_show_lyrics_->isChecked() && action_search_lyrics_->isChecked() && !song_playing_.artist().isEmpty() && !song_playing_.title().isEmpty() && !lyrics_tried_ && lyrics_id_ == -1) {
|
||||||
lyrics_fetcher_->Clear();
|
lyrics_fetcher_->Clear();
|
||||||
lyrics_tried_ = true;
|
lyrics_tried_ = true;
|
||||||
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title()));
|
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title(), song_playing_.length_nanosec() / kNsecPerSec));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,7 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QMimeData>
|
#include <QMimeData>
|
||||||
|
|
||||||
|
#include "constants/timeconstants.h"
|
||||||
#include "core/iconloader.h"
|
#include "core/iconloader.h"
|
||||||
#include "core/logging.h"
|
#include "core/logging.h"
|
||||||
#include "core/settings.h"
|
#include "core/settings.h"
|
||||||
@@ -1520,7 +1521,7 @@ void EditTagDialog::FetchLyrics() {
|
|||||||
const Song song = data_.value(ui_->song_list->selectionModel()->selectedIndexes().first().row()).current_;
|
const Song song = data_.value(ui_->song_list->selectionModel()->selectedIndexes().first().row()).current_;
|
||||||
lyrics_fetcher_->Clear();
|
lyrics_fetcher_->Clear();
|
||||||
ui_->lyrics->setPlainText(tr("loading..."));
|
ui_->lyrics->setPlainText(tr("loading..."));
|
||||||
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title()));
|
lyrics_id_ = static_cast<qint64>(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title(), song.length_nanosec() / kNsecPerSec));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,13 +49,14 @@ LyricsFetcher::LyricsFetcher(const SharedPtr<LyricsProviders> lyrics_providers,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 LyricsFetcher::Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title) {
|
quint64 LyricsFetcher::Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title, const qint64 duration) {
|
||||||
|
|
||||||
LyricsSearchRequest search_request;
|
LyricsSearchRequest search_request;
|
||||||
search_request.albumartist = effective_albumartist;
|
search_request.albumartist = effective_albumartist;
|
||||||
search_request.artist = artist;
|
search_request.artist = artist;
|
||||||
search_request.album = Song::AlbumRemoveDiscMisc(album);
|
search_request.album = Song::AlbumRemoveDiscMisc(album);
|
||||||
search_request.title = Song::TitleRemoveMisc(title);
|
search_request.title = Song::TitleRemoveMisc(title);
|
||||||
|
search_request.duration = duration;
|
||||||
|
|
||||||
Request request;
|
Request request;
|
||||||
request.id = ++next_id_;
|
request.id = ++next_id_;
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class LyricsFetcher : public QObject {
|
|||||||
LyricsSearchRequest search_request;
|
LyricsSearchRequest search_request;
|
||||||
};
|
};
|
||||||
|
|
||||||
quint64 Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title);
|
quint64 Search(const QString &effective_albumartist, const QString &artist, const QString &album, const QString &title, const qint64 duration);
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -26,11 +26,12 @@
|
|||||||
|
|
||||||
class LyricsSearchRequest {
|
class LyricsSearchRequest {
|
||||||
public:
|
public:
|
||||||
explicit LyricsSearchRequest() = default;
|
explicit LyricsSearchRequest() : duration(-1) {}
|
||||||
QString albumartist;
|
QString albumartist;
|
||||||
QString artist;
|
QString artist;
|
||||||
QString album;
|
QString album;
|
||||||
QString title;
|
QString title;
|
||||||
|
qint64 duration;
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(LyricsSearchRequest)
|
Q_DECLARE_METATYPE(LyricsSearchRequest)
|
||||||
|
|||||||
Reference in New Issue
Block a user