Juce::AudioIODeviceのWASAPI実装(5)

公開:2009-10-05 17:53
更新:2020-02-15 04:36
カテゴリ:wasapi,juce,vst host,audio,windows,c++,windows api

とりあえず、ドライバ設定画面に表示されるようにした。
本格的な実装はこれから。
20091004.png

・DSOUNDではドライバの列挙はコールバック関数で行っていたけれども、WASAPIでは以下のようにドライバを列挙する。

1.IMMDeviceEnumeratorをCoCreateInstanceする
2.IMMDeviceEnumerator->EnumAudioEndpointsでデバイスのコレクション(IMMDeviceCollection)を取得する。

・個々のエンドポイントデバイスを取り出すには、IMMDeviceCollection->Item(DWORD index,IMMDevice**)でデバイス(IMMDevice)を取得する

・デバイスの属性を取得するにはIMMDevice->OpenPropertyStore()でIPropertyStoreを取得する

・各属性を取り出すには、IPropertyStore ->GetValue()で取り出す。
取り出した値はPROPVARIANT型である

とまあ、COM全開でなんとも面倒くさいのである。