WasapiOut only exposes the audio endpoint volume via the Volume property, and not the volume for the channels in the current IAudioClient instance.
The interface is simple enough, so I'm happy to write up a patch/pull-request, but how would you like to expose it on WasapiOut? rename current .Volume to EndpointVolume, and return AudioStreamVolume object from an AudioStreamVolume property? Don't rename and add the additional AudioStreamVolume object? etc...
Thoughts?
Thanks,
Bill
Comments: hi Bill, Volume can't be renamed as it implements an interface on IWaveOut. Probably have a property called AudioStreamVolume, and return As a general rule I've tried to avoid exposing the COM interfaces directly as public methods on the core classes, and made a wrapper class to make the public API a little more idiomatic for .NET (e.g. probably returning a float[] instead of a float* from GetAllVolumes). BTW do you know NAudio is moving source control to GitHub (github.com/naudio/NAudio) so pull requests should be done over there now.
The interface is simple enough, so I'm happy to write up a patch/pull-request, but how would you like to expose it on WasapiOut? rename current .Volume to EndpointVolume, and return AudioStreamVolume object from an AudioStreamVolume property? Don't rename and add the additional AudioStreamVolume object? etc...
Thoughts?
Thanks,
Bill
Comments: hi Bill, Volume can't be renamed as it implements an interface on IWaveOut. Probably have a property called AudioStreamVolume, and return As a general rule I've tried to avoid exposing the COM interfaces directly as public methods on the core classes, and made a wrapper class to make the public API a little more idiomatic for .NET (e.g. probably returning a float[] instead of a float* from GetAllVolumes). BTW do you know NAudio is moving source control to GitHub (github.com/naudio/NAudio) so pull requests should be done over there now.