From e35d618133d022e9545f5c63f8ded5b5c3f24657 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Fri, 9 Nov 2018 19:27:36 +0100 Subject: [PATCH] Make Deezer engine use quality setting --- src/deezer/deezerservice.cpp | 1 - src/deezer/deezerservice.h | 1 - src/engine/deezerengine.cpp | 27 ++++++++++- src/engine/deezerengine.h | 1 + src/settings/deezersettingspage.cpp | 16 ++----- src/settings/deezersettingspage.ui | 72 +---------------------------- 6 files changed, 32 insertions(+), 86 deletions(-) diff --git a/src/deezer/deezerservice.cpp b/src/deezer/deezerservice.cpp index 725eb35b0..0dc2810ac 100644 --- a/src/deezer/deezerservice.cpp +++ b/src/deezer/deezerservice.cpp @@ -117,7 +117,6 @@ void DeezerService::ReloadSettings() { QSettings s; s.beginGroup(DeezerSettingsPage::kSettingsGroup); - quality_ = s.value("quality", "FLAC").toString(); searchdelay_ = s.value("searchdelay", 1500).toInt(); albumssearchlimit_ = s.value("albumssearchlimit", 100).toInt(); songssearchlimit_ = s.value("songssearchlimit", 100).toInt(); diff --git a/src/deezer/deezerservice.h b/src/deezer/deezerservice.h index a184e0346..9f69c522e 100644 --- a/src/deezer/deezerservice.h +++ b/src/deezer/deezerservice.h @@ -133,7 +133,6 @@ class DeezerService : public InternetService { #endif QTimer *timer_searchdelay_; - QString quality_; int searchdelay_; int albumssearchlimit_; int songssearchlimit_; diff --git a/src/engine/deezerengine.cpp b/src/engine/deezerengine.cpp index a33f7175c..9bd2b6072 100644 --- a/src/engine/deezerengine.cpp +++ b/src/engine/deezerengine.cpp @@ -61,7 +61,6 @@ DeezerEngine::DeezerEngine(TaskManager *task_manager) stopping_(false) { type_ = Engine::Deezer; - ReloadSettings(); } @@ -158,11 +157,37 @@ bool DeezerEngine::Init() { } LoadAccessToken(); + ReloadSettings(); return true; } +void DeezerEngine::ReloadSettings() { + + QSettings s; + s.beginGroup(DeezerSettingsPage::kSettingsGroup); + QString quality = s.value("quality", "FLAC").toString(); + s.endGroup(); + dz_error_t dzerr; + + if (quality == "MP3_128") + dzerr = dz_player_set_track_quality(player_, nullptr, nullptr, DZ_TRACK_QUALITY_STANDARD); + else if (quality == "MP3_320") + dzerr = dz_player_set_track_quality(player_, nullptr, nullptr, DZ_TRACK_QUALITY_HIGHQUALITY); + else if (quality == "FLAC") + dzerr = dz_player_set_track_quality(player_, nullptr, nullptr, DZ_TRACK_QUALITY_CDQUALITY); + else if (quality == "DATA_EFFICIENT") + dzerr = dz_player_set_track_quality(player_, nullptr, nullptr, DZ_TRACK_QUALITY_DATA_EFFICIENT); + else + dzerr = dz_player_set_track_quality(player_, nullptr, nullptr, DZ_TRACK_QUALITY_CDQUALITY); + + if (dzerr != DZ_ERROR_NO_ERROR) { + qLog(Error) << "Deezer: Failed to set quality."; + } + +} + bool DeezerEngine::Initialised() const { if (connect_ && player_) return true; diff --git a/src/engine/deezerengine.h b/src/engine/deezerengine.h index 97979f08c..1780ef5da 100644 --- a/src/engine/deezerengine.h +++ b/src/engine/deezerengine.h @@ -45,6 +45,7 @@ class DeezerEngine : public Engine::Base { ~DeezerEngine(); bool Init(); + void ReloadSettings(); Engine::State state() const { return state_; } bool Load(const QUrl &media_url, const QUrl &original_url, Engine::TrackChangeFlags change, bool force_stop_at_end, quint64 beginning_nanosec, qint64 end_nanosec); bool Play(quint64 offset_nanosec); diff --git a/src/settings/deezersettingspage.cpp b/src/settings/deezersettingspage.cpp index 16072aac1..cae30c452 100644 --- a/src/settings/deezersettingspage.cpp +++ b/src/settings/deezersettingspage.cpp @@ -52,12 +52,10 @@ DeezerSettingsPage::DeezerSettingsPage(SettingsDialog *parent) dialog()->installEventFilter(this); - ui_->combobox_quality->addItem("AAC (64)", "AAC_64"); - ui_->combobox_quality->addItem("MP3 (64)", "MP3_64"); - ui_->combobox_quality->addItem("MP3 (128)", "MP3_128"); - ui_->combobox_quality->addItem("MP3 (256)", "MP3_256"); - ui_->combobox_quality->addItem("MP3 (320)", "MP3_320"); - ui_->combobox_quality->addItem("FLAC", "FLAC"); + ui_->combobox_quality->addItem("MP3 128kbps \"Standard\"", "MP3_128"); + ui_->combobox_quality->addItem("MP3 320kbps \"High Quality\"", "MP3_320"); + ui_->combobox_quality->addItem("FLAC \"CD Quality\"", "FLAC"); + ui_->combobox_quality->addItem("\"Data Efficient\"", "DATA_EFFICIENT"); ui_->combobox_coversize->addItem("Small", "cover_small"); ui_->combobox_coversize->addItem("Medium", "cover_medium"); @@ -74,10 +72,6 @@ void DeezerSettingsPage::Load() { s.beginGroup(kSettingsGroup); ui_->checkbox_enable->setChecked(s.value("enabled", false).toBool()); - ui_->username->setText(s.value("username").toString()); - QByteArray password = s.value("password").toByteArray(); - if (password.isEmpty()) ui_->password->clear(); - else ui_->password->setText(QString::fromUtf8(QByteArray::fromBase64(password))); dialog()->ComboBoxLoadFromSettings(s, ui_->combobox_quality, "quality", "FLAC"); ui_->spinbox_searchdelay->setValue(s.value("searchdelay", 1500).toInt()); ui_->spinbox_albumssearchlimit->setValue(s.value("albumssearchlimit", 100).toInt()); @@ -102,8 +96,6 @@ void DeezerSettingsPage::Save() { QSettings s; s.beginGroup(kSettingsGroup); s.setValue("enabled", ui_->checkbox_enable->isChecked()); - s.setValue("username", ui_->username->text()); - s.setValue("password", QString::fromUtf8(ui_->password->text().toUtf8().toBase64())); s.setValue("quality", ui_->combobox_quality->itemData(ui_->combobox_quality->currentIndex())); s.setValue("searchdelay", ui_->spinbox_searchdelay->value()); s.setValue("albumssearchlimit", ui_->spinbox_albumssearchlimit->value()); diff --git a/src/settings/deezersettingspage.ui b/src/settings/deezersettingspage.ui index 89f78bf9a..d84014da9 100644 --- a/src/settings/deezersettingspage.ui +++ b/src/settings/deezersettingspage.ui @@ -7,7 +7,7 @@ 0 0 715 - 547 + 575 @@ -55,76 +55,6 @@ - - - - - - - 70 - 0 - - - - Username - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 70 - 0 - - - - Password - - - - - - - QLineEdit::Password - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - -