Microsoft DirectX 9.0

DMUS_SEGF_FLAGS

The DMUS_SEGF_FLAGS enumerated type is passed to various methods of IDirectMusicPerformance8 to control the timing and other aspects of actions on a segment.

Syntax

typedef enum enumDMUS_SEGF_FLAGS {
  DMUS_SEGF_REFTIME             = 1<<6,
  DMUS_SEGF_SECONDARY           = 1<<7,
  DMUS_SEGF_QUEUE               = 1<<8,
  DMUS_SEGF_CONTROL             = 1<<9,
  DMUS_SEGF_AFTERPREPARETIME    = 1<<10,
  DMUS_SEGF_GRID                = 1<<11,
  DMUS_SEGF_BEAT                = 1<<12,
  DMUS_SEGF_MEASURE             = 1<<13,
  DMUS_SEGF_DEFAULT             = 1<<14,
  DMUS_SEGF_NOINVALIDATE        = 1<<15,
  DMUS_SEGF_ALIGN               = 1<<16,
  DMUS_SEGF_VALID_START_BEAT    = 1<<17,
  DMUS_SEGF_VALID_START_GRID    = 1<<18,
  DMUS_SEGF_VALID_START_TICK    = 1<<19,
  DMUS_SEGF_AUTOTRANSITION      = 1<<20,
  DMUS_SEGF_AFTERQUEUETIME      = 1<<21,
  DMUS_SEGF_AFTERLATENCYTIME    = 1<<22,
  DMUS_SEGF_SEGMENTEND          = 1<<23,
  DMUS_SEGF_MARKER              = 1<<24,
  DMUS_SEGF_TIMESIG_ALWAYS      = 1<<25,
  DMUS_SEGF_USE_AUDIOPATH       = 1<<26,
  DMUS_SEGF_VALID_START_MEASURE = 1<<27,
  DMUS_SEGF_INVALIDATE_PRI      = 1<<28
} DMUS_SEGF_FLAGS;

Constants

DMUS_SEGF_REFTIME

Time parameter is in reference time.

DMUS_SEGF_SECONDARY

Secondary segment.

DMUS_SEGF_QUEUE

For a primary segment, play at the end of the primary segment queue. For a secondary segment, play at the end of the secondary segment specified in the pFrom parameter of IDirectMusicPerformance8::PlaySegmentEx.

DMUS_SEGF_CONTROL

Play as a control segment. Valid for secondary segments only. See Remarks.

DMUS_SEGF_AFTERPREPARETIME

Resolve time to a time after the prepare time. See IDirectMusicPerformance8::GetPrepareTime.

DMUS_SEGF_GRID

Resolve time to a grid boundary.

DMUS_SEGF_BEAT

Resolve time to a beat boundary.

DMUS_SEGF_MEASURE

Resolve time to a measure boundary.

DMUS_SEGF_DEFAULT

Use flags embedded in the segment. This resolves the time to the segment's default boundary and also causes the segment to play on its embedded audiopath, if it was configured to do so in the authoring application.

DMUS_SEGF_NOINVALIDATE

Setting this flag in IDirectMusicPerformance8::PlaySegment or IDirectMusicPerformance8::PlaySegmentEx for a primary or control segment causes the new segment not to cause an invalidation. Without this flag, an invalidation occurs, cutting off and resetting any currently playing curve or note. This flag should be combined with DMUS_SEGF_AFTERPREPARETIME so that notes in the new segment do not play over notes played by the old segment.

DMUS_SEGF_ALIGN

The beginning of the segment can be aligned with a boundary, such as measure or beat, that has already passed. For this to happen, the segment must have a valid start point that falls before the next boundary. Start points can be defined in the segment, or one of the DMUS_SEGF_VALID_START_* flags can be used to define the granularity of valid start points. Any DMUS_SEGF_VALID_START_* flag takes effect only if a valid start point is not defined in the segment.

DMUS_SEGF_VALID_START_BEAT

Allow the start to occur on any beat. Used in combination with DMUS_SEGF_ALIGN.

DMUS_SEGF_VALID_START_GRID

Allow the start to occur on any grid. Used in combination with DMUS_SEGF_ALIGN.

DMUS_SEGF_VALID_START_TICK

Allow the start to occur at any time. Used in combination with DMUS_SEGF_ALIGN.

DMUS_SEGF_AUTOTRANSITION

Compose and play a transition segment, using the transition template.

DMUS_SEGF_AFTERQUEUETIME

Resolve time to a time after the queue time. This is the default for primary segments. Ignored if DMUS_SEGF_AFTERPREPARETIME is also set.

DMUS_SEGF_AFTERLATENCYTIME

Resolve time to a time after the latency time. This is true for all segments, so this flag currently has no effect.

DMUS_SEGF_SEGMENTEND

Play at the end of the primary segment that is playing at the start time. If the new segment is being played as a primary segment, any primary segments already queued after the currently playing primary segment are flushed. If no primary segment is playing, use other resolution flags. When combined with DMUS_SEGF_ALIGN, this flag causes the beginning of the cued segment to be aligned with the beginning of the current primary segment.

DMUS_SEGF_MARKER

Resolve time to the next marker in the primary segment. If there are no markers, use other resolution flags.

DMUS_SEGF_TIMESIG_ALWAYS

Align start time with current time signature, even if there is no primary segment.

DMUS_SEGF_USE_AUDIOPATH

Use the audiopath embedded in the segment. Automatic downloading of bands must be enabled to ensure that the segment plays correctly.

DMUS_SEGF_VALID_START_MEASURE

Allow the start to occur at the beginning of a measure. Used in combination with DMUS_SEGF_ALIGN.

DMUS_SEGF_INVALIDATE_PRI

Invalidate only the primary segment when transitioning to a new segment.

Remarks

The primary segment is the default control segment. The DMUS_SEGF_CONTROL flag can be used to make a secondary segment the control segment. If the DMUS_SEGF_CONTROL flag is set, DMUS_SEGF_SECONDARY is assumed. For more information, see Control Segments.

No more than one flag from each of the following groups should be specified.

Boundary

This flag controls the point in the currently playing primary segment at which the start point of the cued segment falls. It can be combined with DMUS_SEGF_MARKER, in which case the boundary flag will be used only if no marker exists in the primary segment.

DMUS_SEGF_BEAT
DMUS_SEGF_DEFAULT
DMUS_SEGF_GRID
DMUS_SEGF_MEASURE
DMUS_SEGF_QUEUE
DMUS_SEGF_SEGMENTEND

Alignment

This flag controls the segment start time of the cued segment, when its play time falls in the past. It must be combined with DMUS_SEGF_ALIGN.

DMUS_SEGF_VALID_START_BEAT
DMUS_SEGF_VALID_START_GRID
DMUS_SEGF_VALID_START_MEASURE
DMUS_SEGF_VALID_START_TICK

It is possible to combine one flag from each group. For example, combining DMUS_SEGF_MEASURE with DMUS_SEGF_ALIGN and DMUS_SEGF_VALID_START_BEAT causes the start point of the cued segment to fall at a measure boundary in the current primary segment. If this boundary has already passed, the cued segment starts playing at the next beat boundary within itself that is not aligned to a past time. For more information, see Segment Timing.

Requirements

  Header: Declared in dmusici.h.

See Also