Juce::AudioIODeviceのWASAPI実装(11)

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

ぼちぼちと実装を見直しつつ行っている。
IAudioClientにはIsFormatSupported メソッドがある。

HRESULT IsFormatSupported(
[in] AUDCLNT_SHAREMODE ShareMode,
[in] const WAVEFORMATEX pFormat,
[out] WAVEFORMATEX *
ppClosestMatch
);

1つ目のパラメータは共有モードの指定、2つ目は確認したいフォーマット、3つ目は指定したWAVEFORMATはサポートしていないが、近いものを探してあった場合APIが返すフォーマットポインタのアドレスを指定する。
この3つ目のパラメータだが、共有モードでしか有効でない。排他モードだとかならずNULLが入り、HRESULTにAUDCLNT_E_UNSUPPORTED_FORMATが入る仕様となっている。排他モードだと相変わらず片っ端からサポートしているフォーマットをチェックしていかなくてはいけないのだろうか。ちょっとというか、かなり面倒臭い。