Note: Error codes, destination types, source types, target types, and control classes are defined in the header files MSSMixernnnConst.h (C/C++), MSSMixernnnConst.pas (Delphi) and MSSMixernnnConst.bas (Visual Basic).
The control types returned by the GetControlInfo method and used by the FindControl method are listed below.
Note that control types are grouped into classes. To derive the control class for a particular control type, you must perform a bitwise-AND of the control type code with the special constant MSSMIX_CONTROL_CLASS_MASK.
Custom controls are the most generic of the mixer controls. These controls allow a mixer driver to define the control's characteristics, and by implication, the visual representation of the control. The MSSMixer control does not know how to set or get the values of custom controls.
Undefined controls should not occur! They are controls that are of a different type to any others listed here. The MSSMixer control treats these the same as custom controls.
MSSMIX_CONTROL_CLASS_FADER
The fader controls are typically vertical controls that can be adjusted up or down. These controls have a linear scale.
MSSMIX_CONTROL_TYPE_BASS
Bass tone control. The range of acceptable values is typically 0 through 65,535. The limits of the bass frequency band are hardware specific. For information about band limits, see the documentation for the mixer device.
MSSMIX_CONTROL_TYPE_EQUALIZER
Graphic equalizer control. The range of acceptable values for one band of the equalizer is typically 0 through 65,535. The number of equalizer bands and their limits are hardware specific. For information about the equalizer, see the documentation for the mixer device.
MSSMIX_CONTROL_TYPE_FADER
General fade control. The range of acceptable values is typically 0 through 65,535.
MSSMIX_CONTROL_TYPE_TREBLE
Treble tone control. The range of acceptable values is typically 0 through 65,535. The limits of the treble frequency band are hardware specific. For information about the band limits, see the documentation for the mixer device.
MSSMIX_CONTROL_TYPE_VOLUME
General volume fade control. The range of acceptable values is typically 0 through 65,535. For information about changing this range, see the documentation for the mixer device.
MSSMIX_CONTROL_CLASS_LIST
The list controls provide single-select or multiple-select states for complex audio lines. These controls are typically boolean (on/off) controls.
MSSMIX_CONTROL_TYPE_MIXER
Allows the user to select source lines from a list simultaneously.
MSSMIX_CONTROL_TYPE_MULTIPLESELECT
Allows the user to select multiple items from a list simultaneously. Unlike the mixer control, the multiple-select control can be used to control more than audio source lines.
MSSMIX_CONTROL_TYPE_MUX
Restricts the line selection to one source line at a time.
MSSMIX_CONTROL_TYPE_SINGLESELECT
Restricts the control selection to one item at a time. Unlike the multiplexer control, this control can be used to control more than audio source lines. For example, this control can be used to select a low-pass filter from a list of filters supported by a mixer device.
MSSMIX_CONTROL_CLASS_METER
The meter controls measure data passing through an audio line.
MSSMIX_CONTROL_TYPE_BOOLEANMETER
Measures whether an integer value is FALSE/OFF (zero) or TRUE/ON (nonzero).
MSSMIX_CONTROL_TYPE_PEAKMETER
Measures the deflection from 0 in both the positive and negative directions. The range of integer values for the peak meter is typically 32,768 through 32,767.
MSSMIX_CONTROL_TYPE_SIGNEDMETER
Measures integer values in the range of 2^31 through (2^31 1). The mixer driver defines the limits of this meter.
MSSMIX_CONTROL_TYPE_UNSIGNEDMETER
Measures integer values in the range of 0 through (2^32 1). The mixer driver defines the limits of this meter.
MSSMIX_CONTROL_CLASS_NUMBER
The number controls allow the user to enter numerical data associated with a line. The numerical data is expressed as signed integers, unsigned integers, or integer decibel values.
MSSMIX_CONTROL_TYPE_DECIBELS
Allows integer decibel values to be entered, in tenths of decibels. The range of values for this control is typically 32,768 through 32,767.
MSSMIX_CONTROL_TYPE_PERCENT
Allows values to be entered as percentages.
MSSMIX_CONTROL_TYPE_SIGNED
Allows integer values entered in the range of 2^31 through (2^31 1).
MSSMIX_CONTROL_TYPE_UNSIGNED
Allows integer values entered in the range of 0 through (2^32 1).
MSSMIX_CONTROL_CLASS_SLIDER
The slider controls are typically horizontal controls that can be adjusted to the left or right.
MSSMIX_CONTROL_TYPE_PAN
Has a range of typically 32,768 through 32,767. The mixer driver defines the limits of this control, with 0 as the midrange value.
MSSMIX_CONTROL_TYPE_QSOUNDPAN
Provides expanded sound control through QSound. This control typically has a range of 15 through 15.
MSSMIX_CONTROL_TYPE_SLIDER
Has a range of typically 32,768 through 32,767. The mixer driver defines the limits of this control.
MSSMIX_CONTROL_CLASS_SWITCH
The switch controls are two-state (boolean, on/off) switches.
MSSMIX_CONTROL_TYPE_BOOLEAN
The generic switch. It can be set to TRUE (1) or FALSE (0).
MSSMIX_CONTROL_TYPE_BUTTON
Set to TRUE for all buttons that the driver should handle as though they had been pressed. If the value is FALSE, no action is taken.
MSSMIX_CONTROL_TYPE_LOUDNESS
Boosts low-volume bass for an audio line. Set to ON (1) to boost low-volume bass. Set to OFF (0) to set volume levels to normal. The amount of boost is hardware specific. For more information, see the documentation for the mixer device.
MSSMIX_CONTROL_TYPE_MONO
Switches between mono and stereo output for a stereo audio line. Set to OFF (0) to play stereo data as separate channels. Set to ON (1) to combine data from both channels into a mono audio line.
MSSMIX_CONTROL_TYPE_MUTE
Mutes an audio line (suppressing the data flow of the line) or allows the audio data to play. This switch is frequently used to help control the lines feeding into the mixer.
MSSMIX_CONTROL_TYPE_ONOFF
An alternative switch that is represented by a graphic other than the one used for the Boolean switch. It can be set to ON (1) or OFF (0).
MSSMIX_CONTROL_TYPE_STEREOENH
Increases stereo separation. Set to ON (1) to increase stereo separation. Set to OFF (0) for no enhancement.
MSSMIX_CONTROL_CLASS_TIME
The time controls allow the user to enter timing-related data, such as an echo delay or reverberation. The time data is expressed as positive integers. Types of time controls include the following:
MSSMIX_CONTROL_TYPE_MICROTIME
Supports timing data expressed in microseconds. The range of acceptable values is 0 through (2^32 1).
MSSMIX_CONTROL_TYPE_MILLITIME
Supports timing data expressed in milliseconds. The range of acceptable values is 0 through (2^32 1).