Platform SDK: DirectX

コード マップ形式

次の表記法は、コード マップ ファイルの最上位レベルのチャンク、または形式の構成を示している。

RIFF( 'DMPR'
<perh-ck>       // コード マップ ヘッダー チャンク
[ <guid-ck> ]   // GUID チャンク
[ <vers-ck> ]   // バージョン チャンク
[ <UNFO-list> ] // UNFO リスト
<chdt-ck>       // コード データ チャンク
<chpl-list>     // コード パレット
<cmap-list>     // コード グラフ
<spsq-list>     // サインポスト リスト
)

GUID チャンク、バージョン チャンク、および UNFO リストを除く、各項目が必要である。「共通のチャンク」を参照すること。

必要なチャンクと、そのサブチャンクは次のとおりである。

<perh-ck> -> perh( <DMUS_IO_CHORDMAP> )

これは、コード マップの基本的なヘッダー情報である。

<chdt-ck> -> chdt(
<WORD>    // DMUS_IO_CHORDMAP_SUBCHORD のサイズ
<DMUS_IO_CHORDMAP_SUBCHORD>... 
    )

<chdt-ck> チャンクには、サブコード当たりのバイト数を表す WORD 値と、固有のサブコードの配列が含まれる。このファイルのほかのパートで参照されているサブコード識別子はすべて、この配列のインデックスに直接対応する。

<chpl-list> -> LIST( 'chpl' 
<chrd-list>... 
    )

このリストにはコード パレットが含まれる。現在、このリストには 24 の項目が必要である。

<chrd-list> -> LIST( 'chrd'
<UNAM-ck>    // コード名  
<sbcn-ck>    // サブコードのインデックス
    )

このリストには、基本的なコード情報が含まれる。この情報は、コードの名前と、サブコードの識別子のリストを表す。

<UNAM-ck> -> UNAM ( <WCHAR>... )

UNAM チャンクは、コードの名前を格納する。

<sbcn-ck> -> sbcn( <WORD>... )

"sbcn" チャンクには、1 つまたは複数のサブコード識別子が含まれる。これらは、<chdt-ck> にある配列のインデックスに直接対応する。現在、最大で 4 つのコードがサポートされている。

<cmap-list>  ->  LIST( 'cmap' 
<choe-list>... 
    )

"cmap" リストには、コード マップのコード接続グラフ全体が含まれる。コード マップの大部分のデータは、このチャンクに存在する。

<choe-list> -> LIST( 'choe'
<cheh-ck>      // コード エントリ データ。
<chrd-list>    // コード データ。上の説明を参照。
<ncsq-ck>      // 次のコード リスト。
    )

"choe" リストには、コード グラフの 1 つのエントリのデータと、次にコード グラフに現れるすべてのコードへのポインタが含まれる。

<cheh-ck> -> cheh( <DMUS_IO_CHORDENTRY> )

これは、コード エントリ ヘッダーである。構造体の識別子は、コード接続グラフの識別子であり、サブコード識別子ではない。

<ncsq-ck> -> ncsq (
<WORD>         // DMUS_IO_NEXTCHORD のサイズ
<DMUS_IO_NEXTCHORD>... 
    )

"ncsq" チャンクには、接続グラフのコードを別のコードに接続するデータが含まれる。接続グラフの各コードは、16 ビットの識別子で表される。

<spsq-list> -> LIST( 'spsq' 
<spst-list>... 
    )

"spsq" リストには、サインポストそれぞれのデータが含まれる。

<spst-list>  ->  LIST( 'spst'
<spsh-ck>
<chrd-list>  // コード データ。上の説明を参照。
[ <cade-list> ]
    )

"spst" リストには、1 つのサインポストのデータが含まれる。データは、ヘッダー、コード情報、およびオプションのカデンツァ コードで構成される。

<cade-list> -> LIST( 'cade' 
<chrd-list>... 
    )

"cade" リストには、カデンツァ コードの情報が含まれる。現在、このリストでは 2 つまでのカデンツァ コードがサポートされている。その他の追加コードや情報は無視される。

<spsh-ck> -> spsh(
<DMUS_IO_CHORDMAP_SIGNPOST> 
)

最後に、"spsh" チャンクにはサインポスト データが含まれる。