Copyright © 2005-2019 MultiMedia Soft

CoreAudioDevices.MasterVolumeGet method

Previous pageReturn to chapter overviewNext page

Remarks

 

Obtains the master volume of the given audio endpoint device. The current master volume can be modified through the CoreAudioDevices.MasterVolumeSet method.

You can be notified in real-time about volume changes by catching the CallbackForCoreAudioEvents delegate having the nEvent parameter set to EV_COREAUDIO_DEVICE_VOLUME_CHANGE.

 

This method is only intended for usage with Windows Vista and later versions: further information about management of audio devices in Windows Vista and later versions can be found inside the How to access settings of audio devices in Windows Vista and later versions tutorial.

For further details about methods related to the management of core audio devices refer to the CoreAudioDevicesMan class.

 

 

Syntax

 

[Visual Basic]

Public Function MasterVolumeGet (

nDataFlow as enumCoreAudioDataFlows,

nDeviceIndex as Int16,

nScaleType as enumVolumeScales,

ByRef fVolumeLevel as Single,

ByRef fLevelMinIndB as Single,

ByRef fLevelMaxIndB as Single,

ByRef fVolumeIncrementIndB as Single

) as enumErrorCodes


 

[C#]

public enumErrorCodes MasterVolumeGet (

enumCoreAudioDataFlows nDataFlow,

Int16 nDeviceIndex,

enumVolumeScales nScaleType,

ref float fVolumeLevel,

ref float fLevelMinIndB,

ref float fLevelMaxIndB,

ref float fVolumeIncrementIndB

);


 

[C++]

public: enumErrorCodes MasterVolumeGet (

enumCoreAudioDataFlows nDataFlow,

Int16 nDeviceIndex,

enumVolumeScales nScaleType,

float __gc *fVolumeLevel,

float __gc *fLevelMinIndB,

float __gc *fLevelMaxIndB,

float __gc *fVolumeIncrementIndB

);


 

Parameter

Description

 

 

nDataFlow

Direction in which audio data flows between an audio endpoint device and an application.

Supported values are the following:

Mnemonic Value

Value

Meaning

DEVICE_DATA_FLOW_RENDER

0

Audio rendering stream. Audio data flows from the application to the audio endpoint device, which renders the stream

DEVICE_DATA_FLOW_CAPTURE

1

Audio capture stream. Audio data flows from the audio endpoint device that captures the stream, to the application.

nDeviceIndex

Zero-based index of the audio endpoint device. The total number of audio endpoint devices can be obtained through the CoreAudioDevices.CountGet method.

nScaleType

The volume scaling type.

Supported values are the following:

Mnemonic constant

Value

Meaning

SCALE_LINEAR

0

The passed volume is based upon a linear scale and can be in the range from 0.0 (silence) to 100.0 (max volume)

SCALE_LOG

1

The passed volume, expressed in dB, is based upon a logarithmic scale.

 

IMPORTANT NOTE ABOUT UNITS OF MEASURE:When dealing with values expressed in percentage the effective value can have different meaning depending upon the implementation of the sound card driver: for example, usually a percentage value of 100 is assumed as 0 dB: this is not the case when dealing with Core Audio API because, if the sound card driver allows applying a volume range from -100 dB (total silence) to +20 dB (sound amplification of +20 dB), a percentage value of 100 would mean that the applied volume is +20 dB. The range of volume values accepted by the sound card driver can be obtained by calling the CoreAudioDevices.MasterVolumeGet method.

 

IMPORTANT NOTE ABOUT CONVERSION BETWEEN UNITS OF MEASURE: When setting a volume expressed in percentage through one of our component's methods, the value displayed inside the "Sound" applet of the Control Panel may report a value slightly different respect to the one effectively set: this issue is due to a rounding problem when converting from percentage to dB (all values are stored in dB inside the driver); if this should be a problem for you, in order to avoid this minor issue you should always use dB as unit of measure when calling our component's methods and to set the "Sound" applet of the Control Panel to display values in dB instead of the percentage default.

 

fVolumeLevel

Reference that, on return from the method call, will contain the master's volume level (the meaning of the returned value depends upon the nScaleType parameter).

fLevelMinIndB

Reference that, on return from the method call, will contain the minimum volume level, expressed in dB, supported by the audio endpoint device.

fLevelMaxIndB

Reference that, on return from the method call, will contain the maximum volume level, expressed in dB, supported by the audio endpoint device.

fVolumeIncrementIndB

Reference that, on return from the method call, will contain the volume increment, expressed in dB, supported by the audio endpoint device.

 

 

Return value

 

Value

Meaning

 

 

Negative value

An error occurred (see the LastError property for further error details)

enumErrorCodes.NOERROR (0)

The method call was successful.