Control classes and types
Previous  Top  Next


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.



MSSMIX_CONTROL_CLASS_CUSTOM

MSSMIX_CONTROL_TYPE_CUSTOM

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.



MSSMIX_CONTROL_CLASS_UNDEFINED

MSSMIX_CONTROL_TYPE_UNDEFINED

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