aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output')
-rw-r--r--src/plugins/Output/oss4/outputoss4.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/Output/oss4/outputoss4.cpp b/src/plugins/Output/oss4/outputoss4.cpp
index 4c1775665..c4093a283 100644
--- a/src/plugins/Output/oss4/outputoss4.cpp
+++ b/src/plugins/Output/oss4/outputoss4.cpp
@@ -173,6 +173,8 @@ VolumeOSS4::VolumeOSS4()
VolumeOSS4::~VolumeOSS4()
{
+ VolumeSettings vol = volume();
+ m_volume = (vol.right << 8) | vol.left;
OutputOSS4::m_vc = 0;
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.setValue("OSS4/volume", m_volume);
@@ -195,10 +197,14 @@ VolumeSettings VolumeOSS4::volume() const
int v = 0;
if (ioctl(OutputOSS4::instance()->fd(), SNDCTL_DSP_GETPLAYVOL, &v) < 0)
v = 0;
- m_volume = v;
+ vol.left = v & 0x00FF;
+ vol.right = (v & 0xFF00) >> 8;
+ }
+ else
+ {
+ vol.left = m_volume & 0x00FF;
+ vol.right = (m_volume & 0xFF00) >> 8;
}
- vol.left = m_volume & 0x00FF;
- vol.right = (m_volume & 0xFF00) >> 8;
return vol;
}