Microsoft DirectX 8.0 (C++)

自己制御セグメント

自己制御セグメントは、自己制御セグメントから制御情報をコピーする制御セグメントからの制御情報を無視する。たとえば、セグメントにコマンド トラックがある場合、制御セグメントで設定されたグルーブ レベルではなく、独自のグルーブ レベルを使用できる。

セグメントは、次のように、各トラックについて制御情報を取得する場所を定義できる。

セグメントは、通常、オーサーによって自己制御セグメントとして構成される。ただし、アプリケーションで、IDirectMusicSegment8::SetTrackConfig または IDirectMusicSegmentState8::SetTrackConfig メソッドを使用し、次のフラグを設定またはクリアして、セグメント内の個々のトラックを構成できる。

DMUS_TRACKCONFIG_OVERRIDE_ALL
トラックは、制御セグメントやプライマリ セグメントのトラックの前に、このセグメントからパラメータを取得する。
DMUS_TRACKCONFIG_OVERRIDE_PRIMARY
トラックは、プライマリ セグメントのトラックの前に、このセグメントからパラメータを取得する。
DMUS_TRACKCONFIG_FALLBACK
セグメントは、プライマリ セグメントや制御セグメントから必要な情報が返されない場合に、このセグメントからパラメータを取得する。

次のサンプル コードでは、スタイル トラックがすべてのパラメータを同じセグメントのほかのトラックから取得するよう指示し、制御セグメントのコード、グルーブ レベル、ミュート コマンドを使用しないようにしている。pSegmentIDirectMusicSegment8 インターフェイス ポインタである。

HRESULT hr = pSegment ->SetTrackConfig(CLSID_DirectMusicStyleTrack,
        -1, DMUS_SEG_ALLTRACKS, DMUS_TRACKCONFIG_OVERRIDE_ALL, 0);

詳細については、「トラック構成」を参照すること。