Index Topic Contents | |||
Previous Topic: IBaseFilter Interface Next Topic: IBasicVideo Interface |
IBasicAudio Interface
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. IBasicAudio Interface
IBasicAudio::get_BalanceRetrieves the balance for the audio signal.
HRESULT get_Balance(
long * plBalance
);Parameters
- plBalance
- [out] Returned value of the Balance property.
Return Values
Returns an HRESULT value.
Remarks
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.
IBasicAudio Interface
IBasicAudio::get_VolumeRetrieves the volume (amplitude) of the audio signal.
HRESULT get_Volume(
long * plVolume
);Parameters
- plVolume
- [out] Returned value of the Volume property. Divide by 100 to get equivalent decibel value (for example 10,000 = 100 dB).
Return Values
Returns an HRESULT value.
IBasicAudio Interface
IBasicAudio::put_BalanceSets the balance of the audio signal.
HRESULT put_Balance(
long lBalance
);Parameters
- lBalance
- [in] Value to which to set the Balance property. The allowable input range is 10,000 to 10,000. A value of 0 sets a neutral balanceboth left and right speakers will be given the same amplitude audio signal.
Return Values
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.
Remarks
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.
IBasicAudio Interface
IBasicAudio::put_VolumeSets the volume (amplitude) of the audio signal.
HRESULT put_Volume(
long lVolume
);Parameters
- lVolume
- [in] Value to which to set the Volume property. The allowable input range is 10,000 to 0.
Return Values
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.
Remarks
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).
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.