常にデータを出力する USB オーディオ デバイス (複数のチャネルを備えた HID) を操作します。
私が達成したいのは、デバイスから信号が来るまでオーディオを無視することです。その時点で、フィードの監視を開始します。デバイスからの 2 番目の信号は、データの無視に戻ることができることを示します。上記のデバイスをノンブロッキング モードで開いたので、他の USB 信号が入ってくるのを妨げません。
これは正常に動作していますが、( 経由で) データの読み取りを開始するとsnd_pcm_readi
、バッファ オーバーランを示す EPIPE エラーが発生します。snd_pcm_prepare
これは毎回呼び出すことで修正できますが、バッファを無視している間にバッファを空にする方法があることを願っています。
私は見ましたがsnd_pcm_drain
、snd_pcm_drop
これらはPCMを停止し、むしろ開いたままにします。
提案?