KSPROPERTY
The KSPROPERTY structure is used by the IKsControl::KsProperty method to identify a property and operation.
KSPROPERTY is defined as a KSIDENTIFIER structure, which is declared as follows.
Syntax
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:
Value | Description |
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 waveforms intended for different sample rates. Setting a sample rate of 96 kHz or greater may cause reverberation effects to fail. |
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 waveform 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 a user-defined value in milliseconds (in the range 0 to 100) that is added to the latency of a user-mode synthesizer that sends its output to DirectSound. The default value is 55. The latency is the delay between when the synthesizer writes data to a buffer and when the data is sent to the device. Increasing the latency can solve some sound breakup problems. The property must be reset each time the port is activated. |
GUID_DMUS_PROP_WritePeriod | Item 0 is the period, in milliseconds (in the range 2 to 100), at which the processing thread runs when the synthesizer is a user-mode synthesizer that sends its output to DirectSound. The default value is 10. If your application requires the absolute lowest latency possible, you can set this property to values smaller than the default value of 10 to process data more often, but performance will suffer because of frequent context switching. To reduce CPU consumption at the expense of latency, set this property to more than 10. The value is the same for all port instances that use the standard DirectSound sink. The property must be set each time the port is activated. |
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:
Flag | Description |
KSPROPERTY_TYPE_GET | Retrieve the given property item's value. |
KSPROPERTY_TYPE_SET | Set the given property item's value. |
KSPROPERTY_TYPE_BASICSUPPORT | Ascertain 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:** Dmksctrl.h
See Also