Platform SDK: DirectX

コア オブジェクトとインターフェイス

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectMusic クラスの概要」を参照すること。

[C++]

コア オブジェクトは、DirectMusic の基本的な要求 (入力、出力、およびタイミング) を処理する。これらのオブジェクトは、通常は DirectMusicPerformance などのほかのオブジェクトで管理され、開発者が直接インターフェイスを使用する必要はない。

DirectMusic オブジェクト

IDirectMusic インターフェイスによって表される DirectMusic オブジェクトは、ポートとバッファの作成、DirectSound との接続、およびマスタ クロックの設定に使われる。各アプリケーションは、このオブジェクトのインスタンスを複数作成すべきではない。

多くのアプリケーションでは、直接 IDirectMusic インターフェイスを使用する必要はない。この点は、DirectX ベースのほかのインターフェイスとは異なる。たとえば、IDirectSound はあらゆる DirectSound アプリケーションの出発点である。協調レベルの設定やサウンド バッファの作成などの基本的なタスクを実行する。一方、DirectMusic では、初期化のほとんどは DirectMusicPerformance などのほかのオブジェクトによって処理され、これらのオブジェクトは CoCreateInstance を直接呼び出して独立的に作成される。

ポート

ミュージック データの送受信を行う各デバイスは、DirectMusicPort オブジェクト内にカプセル化されている。IDirectMusicPort インターフェイスのメソッドを使うとポートを直接操作できるが、ポートはパフォーマンスによって管理されているため、ほとんどのアプリケーションではこれらのメソッドを必要としない。たとえば、チャンネル内のデータが正しくルーティングされるようにするには、DirectMusicPerformance オブジェクトを通してチャンネルをポートに割り当てる。

バッファ

IDirectMusicBuffer インターフェイスは、ポートで演奏する準備 (またはポートから読み込む準備) ができているデータを表す。ほとんどのアプリケーションではバッファ オブジェクトを直接扱うことはないが、必要な場合は、その内容を直接操作するためのメソッドが提供されている。

スルー

IDirectMusicThru インターフェイスは、キャプチャ ポートから別のポートへのデータの直接転送を設定するために使用される。

基準クロック

IReferenceClock インターフェイスを実装するオブジェクトはマスタ クロックを表し、すべての DirectMusic アクティビティとポートの遅延時間クロックを同期させる。