Player: Use timer for saving volume

Fixes #1272
This commit is contained in:
Jonas Kvinge
2024-04-02 17:16:29 +02:00
parent c00d95242d
commit f5547f093e
2 changed files with 10 additions and 0 deletions

View File

@@ -80,6 +80,7 @@ Player::Player(Application *app, QObject *parent)
#endif
analyzer_(nullptr),
equalizer_(nullptr),
timer_save_volume_(new QTimer(this)),
stream_change_type_(EngineBase::TrackChangeType::First),
autoscroll_(Playlist::AutoScroll::Maybe),
last_state_(EngineBase::State::Empty),
@@ -100,6 +101,10 @@ Player::Player(Application *app, QObject *parent)
CreateEngine(enginetype);
timer_save_volume_->setSingleShot(true);
timer_save_volume_->setInterval(5000);
QObject::connect(timer_save_volume_, &QTimer::timeout, this, &Player::SaveVolume);
}
EngineBase::Type Player::CreateEngine(EngineBase::Type enginetype) {
@@ -659,6 +664,7 @@ void Player::SetVolumeFromSlider(const int value) {
volume_ = volume;
engine_->SetVolume(volume);
emit VolumeChanged(volume);
timer_save_volume_->start();
}
}
@@ -669,6 +675,7 @@ void Player::SetVolumeFromEngine(const uint volume) {
if (new_volume != volume_) {
volume_ = new_volume;
emit VolumeChanged(new_volume);
timer_save_volume_->start();
}
}
@@ -680,6 +687,7 @@ void Player::SetVolume(const uint volume) {
volume_ = new_volume;
engine_->SetVolume(new_volume);
emit VolumeChanged(new_volume);
timer_save_volume_->start();
}
}