aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-10-29 12:28:42 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-10-29 12:28:42 +0000
commit63a053f549f0694d29b7ed7030e370e4f6d24092 (patch)
treeaf552360512f3a8dbfe94ddabb3a53ef3f62a4e8 /src
parent9ab541f6a0df13503b602d5341da2334d704f35f (diff)
downloadqmmp-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.cpp10
-rw-r--r--src/qmmp/volumecontrol.cpp12
-rw-r--r--src/qmmp/volumecontrol_p.h4
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();