## 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::get_Balance

IBasicAudio Interface

Retrieves 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::get_Volume

IBasicAudio Interface

Retrieves 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::put_Balance

IBasicAudio Interface

Sets 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 balance—both 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::put_Volume

IBasicAudio Interface

Sets 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).

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.