diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-10-29 12:28:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-10-29 12:28:42 +0000 |
| commit | 63a053f549f0694d29b7ed7030e370e4f6d24092 (patch) | |
| tree | af552360512f3a8dbfe94ddabb3a53ef3f62a4e8 /src | |
| parent | 9ab541f6a0df13503b602d5341da2334d704f35f (diff) | |
| download | qmmp-63a053f549f0694d29b7ed7030e370e4f6d24092.tar.gz qmmp-63a053f549f0694d29b7ed7030e370e4f6d24092.tar.bz2 qmmp-63a053f549f0694d29b7ed7030e370e4f6d24092.zip | |
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3835 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmp/soundcore.cpp | 10 | ||||
| -rw-r--r-- | src/qmmp/volumecontrol.cpp | 12 | ||||
| -rw-r--r-- | src/qmmp/volumecontrol_p.h | 4 |
3 files changed, 16 insertions, 10 deletions
diff --git a/src/qmmp/soundcore.cpp b/src/qmmp/soundcore.cpp index 85837588a..072542755 100644 --- a/src/qmmp/soundcore.cpp +++ b/src/qmmp/soundcore.cpp @@ -152,8 +152,6 @@ void SoundCore::setEqSettings(const EqSettings &settings) void SoundCore::setVolume(int L, int R) { setMuted(false); - L = qBound(0, L, 100); - R = qBound(0, R, 100); m_volumeControl->setVolume(L, R); } @@ -170,12 +168,8 @@ void SoundCore::setMuted(bool mute) void SoundCore::changeVolume(int delta) { - int left = leftVolume(); - int right = rightVolume(); - int volume = qMax(left, right); - int balance = volume > 0 ? (right - left)*100/volume : 0; - volume = delta > 0 ? qMin(100, volume + 5) : qMax(0, volume - 5); - setVolume(volume-qMax(balance,0)*volume/100, volume+qMin(balance,0)*volume/100); + setMuted(false); + m_volumeControl->changeVolume(delta); } int SoundCore::leftVolume() diff --git a/src/qmmp/volumecontrol.cpp b/src/qmmp/volumecontrol.cpp index 197c14828..98c2a3da7 100644 --- a/src/qmmp/volumecontrol.cpp +++ b/src/qmmp/volumecontrol.cpp @@ -51,12 +51,20 @@ int VolumeControl::left() void VolumeControl::setVolume(int left, int right) { VolumeSettings v; - v.left = left; - v.right = right; + v.left = qBound(0,left,100); + v.right = qBound(0,right,100); m_volume->setVolume(v); checkVolume(); } +void VolumeControl::changeVolume(int delta) +{ + int volume = qMax(m_left, m_right); + int balance = volume > 0 ? (m_right - m_left)*100/volume : 0; + volume = delta > 0 ? qMin(100, volume + 5) : qMax(0, volume - 5); + setVolume(volume-qMax(balance,0)*volume/100, volume+qMin(balance,0)*volume/100); +} + int VolumeControl::right() { return m_right; diff --git a/src/qmmp/volumecontrol_p.h b/src/qmmp/volumecontrol_p.h index 99f90c675..0c33f70d8 100644 --- a/src/qmmp/volumecontrol_p.h +++ b/src/qmmp/volumecontrol_p.h @@ -53,6 +53,10 @@ public: */ void setVolume(int left, int right); /*! + * Changes volume by \b delta percent + */ + void changeVolume(int delta); + /*! * Returns left channel volume. */ int left(); |
