キャプチャしながら再生するプログラムの作成(7)

公開:2012-10-31 04:20
更新:2017-09-22 05:40
カテゴリ:winrt,c++/cx,desktop,windows,javascript,音楽・動画,audio,c++,windows api

出力・入力デバイスの管理クラスを作り直しているところ。DeviceWatcherを使ってでデバイスの情報取得・変更管理を行おうとしている。

やはりDeviceInformationからDeviceClassの値を得ることはできないようなので、DeviceInformation::CreateWatcherするときにDeviceClassを指定して出力・入力デバイスをそれぞれ別々に監視するようにコードを変更した。ちなみにDeviceInformation::CreateWatcherを引数なしで作ると私のPCで170個ほどのデバイスが列挙された。CPUも列挙対象だった。

管理クラスをやり直した後は、スレッド周りのコードをPPLを使って書き換えることを試みることにする。今のコードではランタイムエラーが頻発して不安定極まりない動作なので。おそらく今まではたまたま動いていただけで、環境が変わって不具合が顕在化したのだろうと思う。ロックフリーなコードを書くのにまだまだ必要な知識が足りていない。

ソースコード