aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/oss
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-02-19 18:09:00 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-02-19 18:09:00 +0000
commit75c4eaf61e17e1a132498929f783964de134c7be (patch)
tree6d56eb4607c6dc153ef69153cc1537d1a4ae1382 /src/plugins/Output/oss
parentf4a87da830f5c2bd5b57fcc1e1e2de1b1b8eb120 (diff)
downloadqmmp-75c4eaf61e17e1a132498929f783964de134c7be.tar.gz
qmmp-75c4eaf61e17e1a132498929f783964de134c7be.tar.bz2
qmmp-75c4eaf61e17e1a132498929f783964de134c7be.zip
changed volume api
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3266 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Output/oss')
-rw-r--r--src/plugins/Output/oss/outputoss.cpp20
-rw-r--r--src/plugins/Output/oss/outputoss.h4
2 files changed, 11 insertions, 13 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()
diff --git a/src/plugins/Output/oss/outputoss.h b/src/plugins/Output/oss/outputoss.h
index c031dadd2..ff8022be1 100644
--- a/src/plugins/Output/oss/outputoss.h
+++ b/src/plugins/Output/oss/outputoss.h
@@ -55,8 +55,8 @@ public:
VolumeOSS();
~VolumeOSS();
- void setVolume(int channel, int value);
- int volume(int channel);
+ void setVolume(const VolumeSettings &vol);
+ VolumeSettings volume() const;
private:
//oss mixer