Use volume command for relative volume changes instead of setvol

This commit is contained in:
Andrzej Rybczak
2017-03-12 12:34:45 +01:00
parent 00cbbe5593
commit 625a0dff3a
3 changed files with 12 additions and 5 deletions

View File

@@ -623,14 +623,12 @@ void SlaveScreen::run()
void VolumeUp::run() void VolumeUp::run()
{ {
int volume = std::min(Status::State::volume()+Config.volume_change_step, 100u); Mpd.ChangeVolume(static_cast<int>(Config.volume_change_step));
Mpd.SetVolume(volume);
} }
void VolumeDown::run() void VolumeDown::run()
{ {
int volume = std::max(int(Status::State::volume()-Config.volume_change_step), 0); Mpd.ChangeVolume(-static_cast<int>(Config.volume_change_step));
Mpd.SetVolume(volume);
} }
bool AddItemToPlaylist::canBeRun() bool AddItemToPlaylist::canBeRun()

View File

@@ -472,6 +472,14 @@ void Connection::SetVolume(unsigned vol)
checkErrors(); checkErrors();
} }
void Connection::ChangeVolume(int change)
{
prechecksNoCommandsList();
mpd_run_change_volume(m_connection.get(), change);
checkErrors();
}
std::string Connection::GetReplayGainMode() std::string Connection::GetReplayGainMode()
{ {
prechecksNoCommandsList(); prechecksNoCommandsList();

View File

@@ -536,7 +536,8 @@ struct Connection
void SetConsume(bool); void SetConsume(bool);
void SetCrossfade(unsigned); void SetCrossfade(unsigned);
void SetVolume(unsigned int vol); void SetVolume(unsigned int vol);
void ChangeVolume(int change);
std::string GetReplayGainMode(); std::string GetReplayGainMode();
void SetReplayGainMode(ReplayGainMode); void SetReplayGainMode(ReplayGainMode);