散々迷ったけどAPIで組んでみることにした。Boost.Asioだとなんというか大げさすぎるような気がする。やりたいことを考えると、オーソドックスなReadFile()で読んで、ハンドルをWaitForSingleObject()するのが一番手間がかからなそうだ。
サンプルレートとかサンプルビット数は、データをバッファで読み込んだ後、wasapiで選択されていものに合わせるように変換する。この部分はsoxなどのライブラリを参考にしたいと思うが、これは非同期読み込みがきちんと実装できてからにしよう。
後参考になったサイトをあげておく。