From 059def8d0c7d33b2aba49518435dbfa858f848d2 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 9 Dec 2025 18:40:45 +0100 Subject: [PATCH] Add duration to lyrics search request --- src/context/contextview.cpp | 3 ++- src/dialogs/edittagdialog.cpp | 3 ++- src/lyrics/lyricsfetcher.cpp | 3 ++- src/lyrics/lyricsfetcher.h | 2 +- src/lyrics/lyricssearchrequest.h | 3 ++- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/context/contextview.cpp b/src/context/contextview.cpp index 8f4617891..0fefb1397 100644 --- a/src/context/contextview.cpp +++ b/src/context/contextview.cpp @@ -59,6 +59,7 @@ #include "covermanager/albumcoverchoicecontroller.h" #include "lyrics/lyricsfetcher.h" #include "constants/contextsettings.h" +#include "constants/timeconstants.h" #include "contextview.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) { lyrics_fetcher_->Clear(); lyrics_tried_ = true; - lyrics_id_ = static_cast(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title())); + lyrics_id_ = static_cast(lyrics_fetcher_->Search(song_playing_.effective_albumartist(), song_playing_.artist(), song_playing_.album(), song_playing_.title(), song_playing_.length_nanosec() / kNsecPerSec)); } } diff --git a/src/dialogs/edittagdialog.cpp b/src/dialogs/edittagdialog.cpp index 35aff82a7..5a286fa1b 100644 --- a/src/dialogs/edittagdialog.cpp +++ b/src/dialogs/edittagdialog.cpp @@ -71,6 +71,7 @@ #include #include +#include "constants/timeconstants.h" #include "core/iconloader.h" #include "core/logging.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_; lyrics_fetcher_->Clear(); ui_->lyrics->setPlainText(tr("loading...")); - lyrics_id_ = static_cast(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title())); + lyrics_id_ = static_cast(lyrics_fetcher_->Search(song.effective_albumartist(), song.artist(), song.album(), song.title(), song.length_nanosec() / kNsecPerSec)); } diff --git a/src/lyrics/lyricsfetcher.cpp b/src/lyrics/lyricsfetcher.cpp index f7212c2af..d2a0013d6 100644 --- a/src/lyrics/lyricsfetcher.cpp +++ b/src/lyrics/lyricsfetcher.cpp @@ -49,13 +49,14 @@ LyricsFetcher::LyricsFetcher(const SharedPtr 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; search_request.albumartist = effective_albumartist; search_request.artist = artist; search_request.album = Song::AlbumRemoveDiscMisc(album); search_request.title = Song::TitleRemoveMisc(title); + search_request.duration = duration; Request request; request.id = ++next_id_; diff --git a/src/lyrics/lyricsfetcher.h b/src/lyrics/lyricsfetcher.h index d73df43e4..3b49aef31 100644 --- a/src/lyrics/lyricsfetcher.h +++ b/src/lyrics/lyricsfetcher.h @@ -53,7 +53,7 @@ class LyricsFetcher : public QObject { 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(); private: diff --git a/src/lyrics/lyricssearchrequest.h b/src/lyrics/lyricssearchrequest.h index 20b7d4d03..730fc0626 100644 --- a/src/lyrics/lyricssearchrequest.h +++ b/src/lyrics/lyricssearchrequest.h @@ -26,11 +26,12 @@ class LyricsSearchRequest { public: - explicit LyricsSearchRequest() = default; + explicit LyricsSearchRequest() : duration(-1) {} QString albumartist; QString artist; QString album; QString title; + qint64 duration; }; Q_DECLARE_METATYPE(LyricsSearchRequest)