Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This structure describes the state and metrics of a single control for an audio line.

Syntax

typedef struct { 
  DWORD 
cbStruct; 
  DWORD 
dwControlID; 
  DWORD 
dwControlType; 
  DWORD 
fdwControl; 
  DWORD 
cMultipleItems; 
  CHAR  
szShortName[MIXER_SHORT_NAME_CHARS]; 
  CHAR  
szName[MIXER_LONG_NAME_CHARS]; 
  union { 
	struct { 
	LONG 
lMinimum; 
	LONG 
lMaximum; 
}; 
	struct { 
	DWORD 
dwMinimum; 
	DWORD 
dwMaximum; 
}; 
	DWORD 
dwReserved[6]; 
  } Bounds; 
  union { 
	DWORD 
cSteps; 
	DWORD 
cbCustomData; 
	DWORD 
dwReserved[6]; 
  } Metrics; 
} MIXERCONTROL, *PMIXERCONTROL, FAR* LPMIXERCONTROL; 

Members

cbStruct

Size, in bytes, of the MIXERCONTROLstructure.

dwControlID

Audio mixer-defined identifier that uniquely refers to the control described by the MIXERCONTROLstructure.

This identifier can be in any format supported by the mixer device.

An application should use this identifier only as an abstract handle.

No two controls for a single mixer device can ever have the same control identifier.

dwControlType

Class of the control for which the identifier is specified in dwControlID.

An application must use this information to display the appropriate control for input from the user.

An application can also display tailored graphics based on the control class or search for a particular control class on a specific line.

If an application does not know about a control class, this control must be ignored.

There are eight control class classifications, each with one or more standard control types:

MIXERCONTROL_CT_CLASS_CUSTOM

MIXERCONTROL_CONTROLTYPE_CUSTOM

MIXERCONTROL_CT_CLASS_FADER

MIXERCONTROL_CONTROLTYPE_BASS MIXERCONTROL_CONTROLTYPE_EQUALIZER MIXERCONTROL_CONTROLTYPE_FADER MIXERCONTROL_CONTROLTYPE_TREBLE MIXERCONTROL_CONTROLTYPE_VOLUME

MIXERCONTROL_CT_CLASS_LIST

MIXERCONTROL_CONTROLTYPE_MIXER MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT MIXERCONTROL_CONTROLTYPE_MUX MIXERCONTROL_CONTROLTYPE_SINGLESELECT

MIXERCONTROL_CT_CLASS_METER

MIXERCONTROL_CONTROLTYPE_BOOLEANMETER MIXERCONTROL_CONTROLTYPE_PEAKMETER MIXERCONTROL_CONTROLTYPE_SIGNEDMETER MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER

MIXERCONTROL_CT_CLASS_NUMBER

MIXERCONTROL_CONTROLTYPE_DECIBELS MIXERCONTROL_CONTROLTYPE_PERCENT MIXERCONTROL_CONTROLTYPE_SIGNED MIXERCONTROL_CONTROLTYPE_UNSIGNED

MIXERCONTROL_CT_CLASS_SLIDER

MIXERCONTROL_CONTROLTYPE_PAN MIXERCONTROL_CONTROLTYPE_QSOUNDPAN MIXERCONTROL_CONTROLTYPE_SLIDER

MIXERCONTROL_CT_CLASS_SWITCH

MIXERCONTROL_CONTROLTYPE_BOOLEAN MIXERCONTROL_CONTROLTYPE_BUTTON MIXERCONTROL_CONTROLTYPE_LOUDNESS MIXERCONTROL_CONTROLTYPE_MONO MIXERCONTROL_CONTROLTYPE_MUTE MIXERCONTROL_CONTROLTYPE_ONOFF MIXERCONTROL_CONTROLTYPE_STEREOENH

MIXERCONTROL_CT_CLASS_TIME

MIXERCONTROL_CONTROLTYPE_MICROTIME MIXERCONTROL_CONTROLTYPE_MILLITIME

fdwControl

Status and support flags for the audio line control.

The following table shows the possible flags.

Flag Description

MIXERCONTROL_CONTROLF_DISABLED

The control is disabled, perhaps due to other settings for the mixer hardware, and cannot be used.

An application can read current settings from a disabled control, but it cannot apply settings.

MIXERCONTROL_CONTROLF_MULTIPLE

The control has two or more settings per channel.

An equalizer, for example, requires this flag because each frequency band can be set to a different value.

An equalizer that affects both channels of a stereo line in a uniform fashion will also specify the MIXERCONTROL_CONTROLF_UNIFORM flag.

MIXERCONTROL_CONTROLF_UNIFORM

The control acts on all channels of a multichannel line in a uniform fashion.

For example, a control that mutes both channels of a stereo line would set this flag. Most MIXERCONTROL_CONTROLTYPE_MUX and MIXERCONTROL_CONTROLTYPE_MIXER controls also specify the MIXERCONTROL_CONTROLF_UNIFORM flag.

cMultipleItems

Number of items per channel that make up a MIXERCONTROL_CONTROLF_MULTIPLE control.

This number is always two or greater for multiple-item controls.

If the control is not a multiple-item control, do not use this member; it will be zero.

szShortName

Short string that describes the audio line control specified by dwControlID.

This description should be appropriate to use as a concise label for the control.

szName

String that describes the audio line control specified by dwControlID.

This description should be appropriate to use as a complete description for the control.

Bounds

Union of boundary types.

lMinimum

Minimum signed value for a control that has a signed boundary nature.

This member cannot be used in conjunction with dwMinimum.

lMaximum

Maximum signed value for a control that has a signed boundary nature.

This member cannot be used in conjunction with dwMaximum.

dwMinimum

Minimum unsigned value for a control that has an unsigned boundary nature.

This member cannot be used in conjunction with lMinimum.

dwMaximum

Maximum unsigned value for a control that has an unsigned boundary nature.

This member cannot be used in conjunction with lMaximum.

Metrics

Union of boundary metrics.

cSteps

Number of discrete ranges within the union specified for a control specified by the Boundsmember.

This member overlaps with the other members of the Metricsstructure member and cannot be used in conjunction with those members.

cbCustomData

Size, in bytes, required to contain the state of a custom control class.

This member is appropriate only for the MIXERCONTROL_CONTROLTYPE_CUSTOM control class.

To determine if the dwMinimum, dwMaximum, lMinimum, lMaximum, cSteps, and cbCustomDatamembers are appropriate for a control class, see Control Types.

The calling application does not need to initialize any members of this structure because the MIXERCONTROLstructure is passed to the mixerGetLineControlsfunction as a receiving buffer that is referenced and described by the MIXERLINECONTROLSstructure.

When mixerGetLineControlsreturns, the cbStructmember contains the actual size of the information returned by the mixer device.

The returned information will not exceed the requested size, nor will it be smaller than the MIXERCONTROLstructure.

dwReserved

Reserved; do not use.

Requirements

Header mmsystem.h
Windows Embedded CE Windows CE 2.12 and later
Windows Mobile Windows Mobile Version 5.0 and later
Note Version 2.12 requires DXPAK 1.0 or later

See Also