diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-02-19 18:09:00 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-02-19 18:09:00 +0000 |
| commit | 75c4eaf61e17e1a132498929f783964de134c7be (patch) | |
| tree | 6d56eb4607c6dc153ef69153cc1537d1a4ae1382 /src/plugins/Output/oss | |
| parent | f4a87da830f5c2bd5b57fcc1e1e2de1b1b8eb120 (diff) | |
| download | qmmp-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.cpp | 20 | ||||
| -rw-r--r-- | src/plugins/Output/oss/outputoss.h | 4 |
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 |
