midiOutCacheDrumPatches 関数 (mmeapi.h)
midiOutCacheDrumPatches 関数は、内部 MIDI シンセサイザー デバイスに対して、キーベースのパーカッション パッチの指定されたセットを事前に読み込んでキャッシュすることを要求します。
構文
MMRESULT midiOutCacheDrumPatches(
HMIDIOUT hmo,
UINT uPatch,
LPWORD pwkya,
UINT fuCache
);
パラメーター
hmo
開いた MIDI 出力デバイスへのハンドル。 このデバイスは、内部 MIDI シンセサイザーである必要があります。 このパラメーターは、 HMIDIOUT にキャストされた MIDI ストリームのハンドルにすることもできます。
uPatch
使用する必要があるドラムパッチ番号。 既定のドラム パッチをキャッシュするには、このパラメーターを 0 に設定する必要があります。
pwkya
キャッシュまたはキャッシュ解除する指定されたパーカッション パッチのキー番号を示す KEYARRAY 配列へのポインター。
fuCache
キャッシュ操作のオプション。 次のいずれかのフラグを指定できます。
値 | 意味 |
---|---|
MIDI_CACHE_ALL | 指定したすべてのパッチをキャッシュします。 すべてをキャッシュできない場合は、何もキャッシュしません。 KEYARRAY 配列をクリアして、MMSYSERR_NOMEMを返します。 |
MIDI_CACHE_BESTFIT | 指定したすべてのパッチをキャッシュします。 すべてをキャッシュできない場合は、できるだけ多くのパッチをキャッシュし、キャッシュされたパッチを反映するように KEYARRAY 配列を変更し、MMSYSERR_NOMEMを返します。 |
MIDI_CACHE_QUERY | KEYARRAY 配列を変更して、現在キャッシュされているパッチを示します。 |
MIDI_UNCACHE | 指定したパッチをキャッシュ解除し、KEYARRAY 配列をクリアします。 |
戻り値
成功した場合はMMSYSERR_NOERRORを返し、それ以外の場合はエラーを返します。 考えられるエラー値は次のとおりです。
リターン コード | 説明 |
---|---|
|
wFlags で指定されたフラグが無効です。 |
|
指定されたデバイス ハンドルが無効です。 |
|
lpKeyArray 配列が指す配列が無効です。 |
|
デバイスには、要求されたすべてのパッチをキャッシュするための十分なメモリがありません。 |
|
指定されたデバイスでは、パッチ キャッシュはサポートされていません。 |
注釈
一部のシンセサイザーは、すべてのパーカッションパッチを同時にロードしたままにすることはできません。 パッチをキャッシュすると、指定したパッチを使用できるようになります。
KEYARRAY 配列の各要素は、128 個のキーベースのパーカッション パッチの 1 つを表し、特定のパッチを使用する 16 個の MIDI チャネルごとにビットが設定されています。 最下位ビットは物理チャネル 0 を表し、最上位ビットは物理チャネル 15 を表します。 たとえば、キー番号 60 のパッチが物理チャネル 9 と 15 で使用されている場合、要素 60 は 0x8200 に設定されます。
この機能は、内部 MIDI シンセサイザー デバイスにのみ適用されます。 すべての内部シンセサイザーがパッチ キャッシュをサポートしているわけではありません。 デバイスがパッチ キャッシュをサポートしているかどうかを確認するには、MIDICAPS_CACHE フラグを使用して、midiOutGetDevCaps 関数によって入力された MIDIOUTCAPS 構造体の dwSupport メンバーをテストします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mmeapi.h (Windows.h を含む) |
Library | Winmm.lib |
[DLL] | Winmm.dll |