aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/oss/outputoss.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output/oss/outputoss.cpp')
-rw-r--r--src/plugins/Output/oss/outputoss.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/plugins/Output/oss/outputoss.cpp b/src/plugins/Output/oss/outputoss.cpp
index 148e18f7a..c62a798c6 100644
--- a/src/plugins/Output/oss/outputoss.cpp
+++ b/src/plugins/Output/oss/outputoss.cpp
@@ -167,14 +167,11 @@ VolumeOSS::~VolumeOSS()
}
}
-void VolumeOSS::setVolume(int channel, int value)
+void VolumeOSS::setVolume(const VolumeSettings &vol)
{
if (m_mixer_fd < 0)
return;
- int l = (channel == Volume::LEFT_CHANNEL) ? value : volume(Volume::LEFT_CHANNEL);
- int r = (channel == Volume::RIGHT_CHANNEL) ? value : volume(Volume::RIGHT_CHANNEL);
-
long cmd;
int devs = 0;
ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs);
@@ -187,14 +184,15 @@ void VolumeOSS::setVolume(int channel, int value)
//close(mifd);
return;
}
- int v = (r << 8) | l;
+ int v = (vol.right << 8) | vol.left;
ioctl(m_mixer_fd, cmd, &v);
}
-int VolumeOSS::volume(int channel)
+VolumeSettings VolumeOSS::volume() const
{
+ VolumeSettings vol;
if(m_mixer_fd < 0)
- return 0;
+ return vol;
int cmd;
int v, devs = 0;
ioctl(m_mixer_fd, SOUND_MIXER_READ_DEVMASK, &devs);
@@ -204,12 +202,12 @@ int VolumeOSS::volume(int channel)
else if ((devs & SOUND_MASK_VOLUME) && m_master)
cmd = SOUND_MIXER_READ_VOLUME;
else
- return 0;
+ return vol;
ioctl(m_mixer_fd, cmd, &v);
- if(channel == Volume::LEFT_CHANNEL)
- return (v & 0xFF00) >> 8;
- return (v & 0x00FF);
+ vol.left = (v & 0xFF00) >> 8;
+ vol.right = (v & 0x00FF);
+ return vol;
}
void VolumeOSS::openMixer()