Microsoft DirectX 8.1 (C++)

DMUS_PORTCAPS

The DMUS_PORTCAPS structure contains information about a port enumerated by a call to the IDirectMusic8::EnumPort method. The structure is also used to return information through the IDirectMusicPort8::GetCaps method.

Syntax

typedef struct _DMUS_PORTCAPS {
  DWORD dwSize;
  DWORD dwFlags;
  GUID  guidPort;
  DWORD dwClass;
  DWORD dwType;
  DWORD dwMemorySize;
  DWORD dwMaxChannelGroups;
  DWORD dwMaxVoices;
  DWORD dwMaxAudioChannels;
  DWORD dwEffectFlags;
  WCHAR wszDescription[DMUS_MAX_DESCRIPTION];
} DMUS_PORTCAPS, *LPDMUS_PORTCAPS;

Members

dwSize

Size of the structure, in bytes. This member must be initialized to sizeof(DMUS_PORTCAPS) before the structure is passed to any method.

dwFlags

Flags describing various capabilities of the port. This field can contain one or more of the following values:

Flag Description
DMUS_PC_AUDIOPATH Multiple outputs can be connected to DirectSound for audiopaths.
DMUS_PC_DIRECTSOUND The port supports streaming wave data to DirectSound.
DMUS_PC_DLS The port supports DLS Level 1 sample collections.
DMUS_PC_DLS2 The port supports DLS Level 2 sample collections.
DMUS_PC_EXTERNAL The port connects to devices outside the host—for example, devices connected over an external MIDI port such as the MPU-401.
DMUS_PC_GMINHARDWARE The synthesizer has its own GM instrument set, so GM instruments do not need to be downloaded.
DMUS_PC_GSINHARDWARE This port contains the Roland GS sound set in hardware.
DMUS_PC_MEMORYSIZEFIXED Memory available for DLS instruments cannot be adjusted.
DMUS_PC_SHAREABLE More than one port can be created that uses the same range of channel groups on the device. Unless this bit is set, the port can be opened only in exclusive mode. In exclusive mode, an attempt to create a port fails unless free channel groups are available to assign to the create request.
DMUS_PC_SOFTWARESYNTH The port is a software synthesizer.
DMUS_PC_WAVE Streaming and one-shot waves are supported.
DMUS_PC_XGINHARDWARE The port contains the Yamaha XG extensions in hardware.

guidPort

Identifier of the port. This value can be passed to the IDirectMusic8::CreatePort method to get an IDirectMusicPort8 interface for the port.

dwClass

Class of this port. The following classes are defined:

Value Description
DMUS_PC_INPUTCLASS Input port.
DMUS_PC_OUTPUTCLASS Output port.

dwType

Type of this port. The following types are defined:

Value Description
DMUS_PORT_WINMM_DRIVER Windows multimedia driver.
DMUS_PORT_USER_MODE_SYNTH User-mode synthesizer.
DMUS_PORT_KERNEL_MODE WDM driver.

dwMemorySize

Amount of memory available to store DLS instruments. If the port is using system memory and the amount is therefore limited only by the available system memory, this member contains DMUS_PC_SYSTEMMEMORY.

dwMaxChannelGroups

Maximum number of channel groups supported by this port. A channel group is a set of 16 MIDI channels.

dwMaxVoices

Maximum number of voices that can be allocated when this port is opened. The value can be –1 if the driver does not support returning this parameter.

dwMaxAudioChannels

Maximum number of audio channels that can be rendered by the port. The value can be –1 if the driver does not support returning this parameter.

dwEffectFlags

Flags indicating what audio effects are available on the port.

The following flags are defined:

Flag Description
DMUS_EFFECT_NONE No effects are supported.
DMUS_EFFECT_REVERB The port supports reverb.
DMUS_EFFECT_CHORUS The port supports chorus.
DMUS_EFFECT_DELAY The port supports delay.

wszDescription

Description of the port. This can be a system-generated name, such as L"MPU-401 Output Port [330]", or a user-specified friendly name, such as L"Port w/ External SC-55".

Requirements

  Header: Declared in dmusicc.h.