DeviceTopology API
Microsoft の高品質音声キャプチャ DMO サンプル を参照してください。
DeviceTopology API は、クライアント アプリケーションにオーディオ レンダリングの機能ハードウェア トポロジを走査し、デバイスをキャプチャする機能を提供します。 DeviceTopology API のインターフェイスとメソッドを使用して、クライアントは、オーディオ エンドポイント デバイス との間のデータ パスに沿った機能サブユニット (ボリューム制御など)検出できます。 クライアントは、オーディオ アダプター デバイスとオーディオ エンドポイント デバイスの両方の内部トポロジを走査し、1 つのデバイスを別のデバイスにリンクする接続をステップ実行できます。 詳細については、「デバイス トポロジの」を参照してください。
ヘッダー ファイル Devicetopology.h は、DeviceTopology API のインターフェイスを定義します。
DeviceTopology API インターフェイスにアクセスするには、まず、次の手順に従って、クライアントがオーディオ エンドポイント デバイスの IDeviceTopology インターフェイスへの参照を取得します。
- IMMDevice Interfaceで説明されているいずれかの手法を使用して、オーディオ エンドポイント デバイスの IMMDevice インターフェイスへの参照を取得します。
- パラメーター iid を REFIID IID_IDeviceTopology に設定して、IMMDevice::Activate メソッド 呼び出します。
クライアントは、IDeviceTopology インターフェイス内のメソッドを呼び出すことによって、DeviceTopology API 内の他のインターフェイスへの参照を取得できます。
DeviceTopology API は、次のインターフェイスを実装します。
インターフェイス | 形容 |
---|---|
IAudioAutoGainControlの | ハードウェア自動ゲイン制御 (AGC) へのアクセスを提供します。 |
IAudioBassの | ハードウェア ベース レベルのコントロールへのアクセスを提供します。 |
IAudioChannelConfigの | ハードウェア チャネル構成コントロールへのアクセスを提供します。 |
IAudioInputSelectorの | ハードウェア マルチプレクサー コントロール (入力セレクター) へのアクセスを提供します。 |
IAudioLoudness | "ラウドネス" 補正コントロールへのアクセスを提供します。 |
IAudioMidrangeの | ハードウェアのミッドレンジ レベルのコントロールへのアクセスを提供します。 |
IAudioMuteをする | ハードウェア ミュート コントロールへのアクセスを提供します。 |
IAudioOutputSelectorの | ハードウェアデマルチプレクサー制御 (出力セレクター) へのアクセスを提供します。 |
IAudioPeakMeterの | ハードウェアピークメーター制御へのアクセスを提供します。 |
IAudioTrebleの | ハードウェアトレブル レベルの制御へのアクセスを提供します。 |
IAudioVolumeLevelの | ハードウェア ボリューム コントロールへのアクセスを提供します。 |
IConnectorの | コンポーネント間の接続ポイントを表します。 |
IControlInterfaceの | パーツ (サブユニットまたはコネクタ) のコントロール インターフェイスを表します。 |
IDeviceSpecificPropertyの | コネクタまたはサブユニットのデバイス固有のプロパティを表します。 |
IDeviceTopologyの | オーディオ デバイスのトポロジへのアクセスを提供します。 |
IKsFormatSupportの | オーディオ デバイスとシステム メモリの間のソフトウェアで構成された I/O 接続 (通常は DMA チャネル) でサポートされるオーディオ データ形式に関する情報を提供します。 |
IKsJackDescription | オーディオ アダプター上のデバイスと外部または内部エンドポイント デバイス (マイクや CD プレーヤーなど) との間の物理的な接続を提供するジャックまたは内部コネクタに関する情報を提供します。 |
IPart | デバイス トポロジのパーツ (コネクタまたはサブユニット) を表します。 |
IPartsListをする | パーツ (コネクタとサブユニット) の一覧を表します。 |
IPerChannelDbLevelの | オーディオ ストリームまたはオーディオ ストリーム内の周波数帯域のボリューム レベル (デシベル単位) をチャネルごとに制御する汎用サブユニット制御インターフェイスを表します。 |
ISubunitをする | クライアントとオーディオ エンドポイント デバイスの間のデータ パスにあるハードウェア サブユニット (ボリューム レベル コントロールなど) を表します。 |
コネクタとサブユニットのコントロール変更イベントの通知を必要とする DeviceTopology API クライアントは、次のインターフェイスを実装する必要があります。
インターフェイス | 形容 |
---|---|
IControlChangeNotifyの | パーツ (コネクタまたはサブユニット) の状態が変更されたときに通知を提供します。 |
関連トピック