Microsoft DirectX 8.0 (C++)

KSPROPERTY

Used by the IKsControl::KsProperty method to identify a property and operation.

KSPROPERTY is defined as a KSIDENTIFIER structure, which is declared as follows:

typedef struct {
    union {
        struct {
            GUID   Set;
            ULONG  Id;
            ULONG  Flags;
        };
        LONGLONG    Alignment;
    };
} KSIDENTIFIER, *PKSIDENTIFIER;

Members

Set
Identifier of the property set. The following property-set GUIDs are predefined by DirectMusic:
GUID_DMUS_PROP_DLS1
Item 0 is a Boolean indicating whether or not this port supports downloading DLS level 1 samples.
GUID_DMUS_PROP_DLS2
Item 0 is a Boolean indicating whether or not this port supports downloading DLS level 2 samples.
GUID_DMUS_PROP_Effects
Item 0 contains DMUS_EFFECT_NONE or one or more effects flags (see the dwEffectFlags member of DMUS_PORTCAPS). This property is used to set or retrieve the current state of the effects.
GUID_DMUS_PROP_GM_Hardware
Item 0 is a Boolean indicating whether or not this port supports GM in hardware.
GUID_DMUS_PROP_GS_Capable
Item 0 is a Boolean indicating whether or not this port supports the minimum requirements for Roland GS extensions.
GUID_DMUS_PROP_GS_Hardware
Item 0 is a Boolean indicating whether or not this port supports Roland GS extensions in hardware.
GUID_DMUS_PROP_INSTRUMENT2
Item 0 is a Boolean indicating whether or not this port supports downloading samples using the DMUS_ARTICULATION2 structure.
GUID_DMUS_PROP_LegacyCaps
Item 0 is the MIDIINCAPS or MIDIOUTCAPS structure that describes the underlying Windows multimedia device implementing this port. A MIDIINCAPS structure is returned if dwClass is DMUS_PC_INPUTCLASS in this port's capabilities structure. Otherwise, a MIDIOUTCAPS structure is returned.
GUID_DMUS_PROP_MemorySize
Item 0 is the number of bytes of sample RAM free on this device.
GUID_DMUS_PROP_SampleMemorySize
Item 0 is the number of bytes of sample RAM, both free and used, available on this device.
GUID_DMUS_PROP_SamplePlaybackRate
Item 0 is the synthesizer's sample rate. The DLS level 2 file format supports conditional chunks to determine whether a region or articulation should be downloaded. This allows authors to create optional waves intended for different sample rates.
GUID_DMUS_PROP_SynthSink_DSOUND
Item 0 is a Boolean indicating whether or not this port supports DirectSound.
GUID_DMUS_PROP_SynthSink_WAVE
Item 0 is a Boolean indicating whether or not this port supports wave output using the waveOut functions.
GUID_DMUS_PROP_Volume
Item 1 (DMUS_ITEM_Volume) is a LONG in the range from DMUS_VOLUME_MAX through DMUS_VOLUME_MIN. This is the signed value, in hundredths of a decibel, which is added to the gain of all voices after all DLS articulation has been performed. By default, when a port is added to the performance, this property is set to the master volume. For master volume, see Setting and Retrieving Global Parameters.
GUID_DMUS_PROP_WavesReverb
Item 0 is a DMUS_WAVES_REVERB_PARAMS structure containing reverb parameters.
GUID_DMUS_PROP_WriteLatency
Item 0 is the write latency of the user-mode synthesizer (the dwType member of the DMUS_PORTCAPS structure is DMUS_PORT_USER_MODE_SYNTH) that streams its output to DirectSound. The write latency is the delay between when the synthesizer creates a buffer of sound and when it is heard. By adjusting this value, an application can fine-tune the synthesizer for minimum latency without sound breakup. On some computers, in particular, ones without hardware support for DirectSound, the initial latency is much larger than on others, so the value should always be read first, and then adjusted with a relative value. The write latency can have different values for each port instance. The property must be set each time the port is activated. It is not recommended that applications set the write latency of a synthesizer in an audiopath.
GUID_DMUS_PROP_WritePeriod
Item 0 is the write period, in milliseconds, of the user-mode synthesizer (the dwType member of the DMUS_PORTCAPS structure is DMUS_PORT_USER_MODE_SYNTH) that streams its output to DirectSound. The write period controls how frequently the synthesizer sink allows the synthesizer to mix. By reducing this value, the application can reduce the overall latency of the synthesizer. However, values under 10 milliseconds increase the CPU load. The write period has the same value for all port instances that use the standard DirectSound sink. The property must be set each time the port is activated. This property cannot be set on ports in audiopaths.
GUID_DMUS_PROP_XG_Capable
Item 0 is a Boolean indicating whether or not this port supports the minimum requirements for Yamaha XG extensions.
GUID_DMUS_PROP_XG_Hardware
Item 0 is a Boolean indicating whether or not this port supports Yamaha XG extensions in hardware.
Id
Item within the property set.
Flags
One of the following flags to specify the operation:
KSPROPERTY_TYPE_GET
To retrieve the given property item's value.
KSPROPERTY_TYPE_SET
To set the given property item's value.
KSPROPERTY_TYPE_BASICSUPPORT
To determine the type of support available for the property set. The data returned by IKsControl::KsProperty in *pvPropertyData is a DWORD containing one or both of KSPROPERTY_TYPE_GET and KSPROPERTY_TYPE_SET, indicating which operations are possible.
Alignment
Not used in DirectMusic.

Requirements

  Header: Declared in dmksctrl.h.

See Also

Property Sets for DirectMusic Ports