IBasicAudio is an interface that supports the filter graph's audio component. It allows access to volume and balance functionality.
The Volume property is a value between –10,000 and 0 representing a set of logarithmic steps. This follows the DirectSound model. Not all devices support 10,000 distinguishable steps.
The Balance property is a value between –10,000 and 10,000. A value of –10,000 indicates that the right speaker has been disabled and only the left speaker is receiving an audio signal. A value of 0 indicates that both speakers are receiving equivalent audio signals. A value of 10,000 indicates that the left speaker has been disabled and only the right speaker is receiving an audio signal.
When to Implement
The audio renderer filter supplied with Microsoft® DirectShow™ implements this interface. It is also implemented by the filter graph manager (by means of a plug-in distributor) to pass method calls from the application to the audio renderer filter's implementation of the interface.
Implement this interface if you are writing a replacement audio renderer filter or a replacement DirectShow plug-in distributor. You can use the CBasicAudio class, which handles the IDispatch implementation for Automation, to help implement this interface.
When to Use
When the filter graph manager exposes this interface, it is used by applications that need to control the properties of the audio renderer filter. Applications should not use the interface exposed by the audio renderer directly. When the audio renderer filter exposes this interface, it is used by plug-in distributors, such as the DirectShow plug-in distributor, which pass calls from the application.
Methods in Vtable Order
IUnknown methods | Description |
QueryInterface | Returns pointers to supported interfaces. |
AddRef | Increments the reference count. |
Release | Decrements the reference count. |
IDispatch methods | Description |
GetTypeInfoCount | Determines whether there is type information available for this dispinterface. |
GetTypeInfo | Retrieves the type information for this dispinterface if GetTypeInfoCount returned successfully. |
GetIDsOfNames | Converts text names of properties and methods (including arguments) to their corresponding DISPIDs. |
Invoke | Calls a method or accesses a property in this dispinterface if given a DISPID and any other necessary parameters. |
IBasicAudio methods | Description |
put_Volume | Sets the volume (amplitude) of the audio signal. |
get_Volume | Retrieves the volume (amplitude) of the audio signal. |
put_Balance | Sets the balance for the audio signal. |
get_Balance | Retrieves the balance for the audio signal. |
Retrieves the balance for the audio signal.
HRESULT get_Balance(
long * plBalance
);
Returns an HRESULT value.
As with the Volume property, units correspond to .01 decibels (multiplied by –1 when plBalance is a positive value). For example, a value of 1000 indicates –10 dB on the right channel and –90 dB on the left channel.
Retrieves the volume (amplitude) of the audio signal.
HRESULT get_Volume(
long * plVolume
);
Returns an HRESULT value.
Sets the balance of the audio signal.
HRESULT put_Balance(
long lBalance
);
Returns an HRESULT value. E_INVALIDARG is returned for values outside the allowable input range and E_FAIL is returned if the underlying device returns an error.
As with the Volume property, units correspond to .01 decibels (multiplied by –1 when lBalance is a positive value). For example, a value of 1000 indicates –10 dB on the right channel and –90 dB on the left channel.
Sets the volume (amplitude) of the audio signal.
HRESULT put_Volume(
long lVolume
);
Returns an HRESULT value. E_INVALIDARG is returned for values outside the allowable input range and E_FAIL is returned if the underlying device returns an error.
Full volume is 0, and –10,000 is silence; the scale is logarithmic. Multiply the desired decibel level by 100 (for example –10,000 = –100 dB).
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.