/// <summary>
/// The MIXERLINE structure describes the state and metrics of an audio line.
/// </summary>
public struct MIXERLINE
{
/// <summary>
/// Size, in bytes, of the MIXERLINE structure. This member must be
/// initialized before calling the mixerGetLineInfo function.
/// The size specified in this member must be large enough to contain the
/// MIXERLINE structure. When mixerGetLineInfo returns,
/// this member contains the actual size of the information returned.
/// The returned information will not exceed the requested size.
/// </summary>
public uint cbStruct;
/// <summary>
/// Destination line index. This member ranges from zero to one less than
/// the value specified in the cDestinations member of the MIXERCAPS structure
/// retrieved by the mixerGetDevCaps function. When the mixerGetLineInfo function
/// is called with the MIXER_GETLINEINFOF_DESTINATION flag, properties for the
/// destination line are returned. (The dwSource member must be set to zero in
/// this case.) When called with the MIXER_GETLINEINFOF_SOURCE flag,
/// the properties for the source given by the dwSource member that is
/// associated with the dwDestination member are returned.
/// </summary>
public uint dwDestination;
/// <summary>
/// Index for the audio source line associated with the dwDestination member.
/// That is, this member specifies the nth audio source line associated with
/// the specified audio destination line. This member is not used for destination
/// lines and must be set to zero when MIXER_GETLINEINFOF_DESTINATION is
/// specified in the mixerGetLineInfo function. When the MIXER_GETLINEINFOF_SOURCE
/// flag is specified, this member ranges from zero to one less than the value
/// specified in the cConnections member for the audio destination line given in
/// the dwDestination member.
/// </summary>
public uint dwSource;
/// <summary>
/// An identifier defined by the mixer device that uniquely refers to the audio
/// line described by the MIXERLINE structure. This identifier is unique for each
/// mixer device and can be in any format. An application should use this identifier
/// only as an abstract handle.
/// </summary>
public uint dwLineID;
/// <summary>
/// Status and support flags for the audio line. This member is always returned
/// to the application and requires no initialization.
///
/// <para>
/// MixerLineFlags value
/// </para>
/// <para>
/// If an application is not using a waveform-audio output device, the audio line
/// associated with that device would not be active
/// (that is, the MIXERLINE_LINEF_ACTIVE flag would not be set).
/// If the waveform-audio output device is opened, then the audio line
/// is considered active and the MIXERLINE_LINEF_ACTIVE flag will be set.
/// A paused or starved waveform-audio output device is still considered active.
/// In other words, if the waveform-audio output device is opened by an application
/// regardless of whether data is being played, the associated audio line is
/// considered active.
/// If a line cannot be strictly defined as active, the mixer device will always
/// set the MIXERLINE_LINEF_ACTIVE flag.
/// </para>
/// </summary>
public uint fdwLine;
/// <summary>
/// Instance data defined by the audio device for the line.
/// This member is intended for custom mixer applications designed specifically
/// for the mixer device returning this information. Other applications should
/// ignore this data.
/// </summary>
public uint dwUser;
/// <summary>
/// Component type for this audio line. An application can use this information
/// to display tailored graphics or to search for a particular component.
/// If an application does not use component types, this member should be
/// ignored. This member can be one of the following values:
///
/// <para>MIXERLINE_COMPONENT_TYPE value</para>
/// </summary>
public uint dwComponentType;
/// <summary>
/// Maximum number of separate channels that can be manipulated independently
/// for the audio line. The minimum value for this field is 1 because a
/// line must have at least one channel.
/// <para>
/// Most modern audio cards for personal computers are stereo devices; for
/// them, the value of this member is 2.
/// </para>
/// <para>
/// Channel 1 is assumed to be the left channel; channel 2 is assumed to be
/// the right channel.
/// </para>
/// <para>
/// A multichannel line might have one or more uniform controls
/// (controls that affect all channels of a line uniformly) associated with it.
/// </para>
/// </summary>
public uint cChannels;
/// <summary>
/// Number of connections that are associated with the audio line. This member
/// is used only for audio destination lines and specifies the number of audio
/// source lines that are associated with it. This member is always zero for
/// source lines and for destination lines that do not have any audio source
/// lines associated with them.
/// </summary>
public uint cConnections;
/// <summary>
/// Number of controls associated with the audio line. This value can be zero.
/// If no controls are associated with the line, the line is likely to be a
/// source that might be selected in a MIXERCONTROL_CONTROLTYPE_MUX or
/// MIXERCONTROL_CONTROLTYPE_MIXER but allows no manipulation of the signal.
/// </summary>
public uint cControls;
/// <summary>
/// Short string that describes the audio mixer line specified in the
/// dwLineID member. This description should be appropriate as a concise
/// label for the line.
/// </summary>
public char[] szShortName;
/// <summary>
/// String that describes the audio mixer line specified in the dwLineID member.
/// This description should be appropriate as a complete description for the line.
/// </summary>
public char[] szName;
/// <summary>
/// Target media information.
/// </summary>
public struct Target
{
/// <summary>
/// Target media device type associated with the audio line described in the
/// MIXERLINE structure.
/// An application must ignore target information for media
/// device types it does not use.
/// <para>
/// The following values are defined: MIXERLINE_DEVICE value
/// </para>
/// </summary>
public uint dwType;
/// <summary>
/// Current device identifier of the target media device when the dwType member
/// is a target type other than MIXERLINE_TARGETTYPE_UNDEFINED. This identifier
/// is identical to the current media device index of the associated media
/// device. When calling the mixerGetLineInfo function with the
/// MIXER_GETLINEINFOF_TARGETTYPE flag, this member is ignored on input
/// and will be returned to the caller by the audio mixer manager.
/// </summary>
public uint dwDeviceID;
/// <summary>
/// Manufacturer identifier of the target media device when the dwType member
/// is a target type other than MIXERLINE_TARGETTYPE_UNDEFINED.
/// This identifier is identical to the wMid member of the device-capabilities
/// structure for the associated media. Manufacturer identifiers are defined
/// in Manufacturer and Product Identifiers.
/// </summary>
public uint wMid;
/// <summary>
/// Product identifier of the target media device when the dwType member
/// is a target type other than MIXERLINE_TARGETTYPE_UNDEFINED.
/// This identifier is identical to the wPid member of the device-capabilities
/// structure for the associated media. Product identifiers are defined in Manufacturer and Product Identifiers.
/// </summary>
public uint wPid;
/// <summary>
/// Driver version of the target media device when the dwType member is a
/// target type other than MIXERLINE_TARGETTYPE_UNDEFINED. This version is
/// identical to the vDriverVersion member of the device-capabilities structure
/// for the associated media.
/// </summary>
public string vDriverVersion;
/// <summary>
/// Product name of the target media device when the dwType member is a
/// target type other than MIXERLINE_TARGETTYPE_UNDEFINED. This name is
/// identical to the szPname member of the device-capabilities structure
/// for the associated media.
/// </summary>
public char[] szPname;
}
}
Enum AudioLineStatus As Integer
MIXERLINE_LINEF_ACTIVE = 1
MIXERLINE_LINEF_DISCONNECTED = &H8000
MIXERLINE_LINEF_SOURCE = &H80000000
End Enum
None.
None.