WASAPI ISimpleAudioVolume::SetMasterVolume appears to not work

adam smith adamvietnam at googlemail.com
Sat Apr 14 18:06:14 CDT 2012


Hi,

I've been trying to get WASAPI audio output working for our app as
Directsound output was very glitchy post the new audio stack.

All seems to work great with WASAPI however I need to able to set the
volume level independently for individual audio sessions / streams for
crossfading however I'm having problems controlling the volume levels of a
shared mode audio session / stream. specifically,

ISimpleAudioVolume::SetMasterVolume

http://msdn.microsoft.com/en-us/library/windows/desktop/dd316537(v=vs.85).aspx

Doesn't seem to work under Wine i.e.

HRESULT hr;
hr=audioClient_->GetService(IID_ISimpleAudioVolume,(void**)&simpleAudioVolume_);
if (SUCCESS(hr))
 hr=simpleAudioVolume_->SetMasterVolume(0.1,NULL);

returns success but does not change the volume level though interestingly

HRESULT hr;
hr=audioClient_->GetService(IID_ISimpleAudioVolume,(void**)&simpleAudioVolume_);
if (SUCCESS(hr))
hr=simpleAudioVolume_->SetMute(TRUE,NULL);

does work and mute the volume.

I've also tried usingsthe IAudioStreamVolume interface to control the
volume again to no avail.

Does anyone have any experience of these interfaces or know equivalent
interfaces to use instead working I've tested on :

Ubuntu 10.04, 11.10
Wine 1.4 , 1.5 , 1.5.2
PulseAudio  0.9.21 , 1.0 , no pulse audio

(and windows 7 where the code works fine)


Thanks,

Adam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20120415/f3cf5be6/attachment.html>


More information about the wine-devel mailing list