キャプチャデバイスのサポートと出力部分の見直し

公開:2011-11-24 16:34
更新:2017-09-20 21:18
カテゴリ:wasapi,c++,dawもどきの作成,デジタル信号処理,windows,audio,windows api

キャプチャデバイスのサポート部分の実装をしつつ、出力部分の見直しをしている。

今まではWAVファイルの読み込みや再生に合わせて出力をコントロールしていた。再生を停止すると出力もストップするといった具合に。でもキャプチャデバイスをサポートするとなると今のままではまずいので、常時出力できるようにコードを変更している。完成するとキャプチャデバイスからのデータを常時出力し、WAVファイルの読み込み・再生が発生したらキャプチャデバイスのデータとミックスして再生するようになる。

処理の効率化のためスレッドコントロールの方法も見なおしている。1つはアトミック変数(Boost.Atomic)を積極的な使用。2つめは処理アイドル時のウェイト方法を単純なSleepからWaitForSingleObjectのタイムアウトへの変更。