From 75c4eaf61e17e1a132498929f783964de134c7be Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 19 Feb 2013 18:09:00 +0000 Subject: changed volume api git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3266 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Output/waveout/outputwaveout.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'src/plugins/Output/waveout/outputwaveout.cpp') diff --git a/src/plugins/Output/waveout/outputwaveout.cpp b/src/plugins/Output/waveout/outputwaveout.cpp index 504e82e9f..25791ff64 100644 --- a/src/plugins/Output/waveout/outputwaveout.cpp +++ b/src/plugins/Output/waveout/outputwaveout.cpp @@ -245,21 +245,18 @@ VolumeWaveOut::VolumeWaveOut() VolumeWaveOut::~VolumeWaveOut() {} -void VolumeWaveOut::setVolume(int channel, int value) +void VolumeWaveOut::setVolume(const VolumeSettings &vol) { - int l = (channel == Volume::LEFT_CHANNEL) ? value : (long)LOWORD(m_volume) * 100 / 0xFFFF; - int r = (channel == Volume::RIGHT_CHANNEL) ? value : (long)HIWORD(m_volume) * 100 / 0xFFFF; - m_volume = (r*0xFFFF/100 << 16) | l*0xFFFF/100; - waveOutSetVolume(0, m_volume); + DWORD data = (vol.right*0xFFFF/100 << 16) | vol.left*0xFFFF/100; + waveOutSetVolume(0, data); } -int VolumeWaveOut::volume(int channel) +VolumeSettings VolumeWaveOut::volume() const { - DWORD volume; - waveOutGetVolume(0, (PDWORD)&volume); - m_volume = volume; - if(channel == Volume::LEFT_CHANNEL) - return (long)LOWORD(volume) * 100 / 0xFFFF + 1; - else - return (long)HIWORD(volume) * 100 / 0xFFFF + 1; + VolumeSettings vol; + DWORD data; + waveOutGetVolume(0, (PDWORD)&data); + vol.left = (long)LOWORD(data) * 100 / 0xFFFF + 1; + vol.right = (long)HIWORD(data) * 100 / 0xFFFF + 1; + return vol; } -- cgit v1.2.3-13-gbd6f