pub fn list_devices() -> Result<Vec<DeviceInfo>>Expand description
入力(マイク)デバイスを列挙する。devices() のマイク分。
host.input_devices() を走査し各デバイスを DeviceInfo へ写す:
id/name: cpal は永続 ID を持たないので device name を ID 代わりに両方へ 入れる(再接続で index が変わるため。同一構成なら同じ name)。sample_rate/channels:default_input_config()から。取れない(実際には 開けない等)デバイスはスキップ。source_kind = Mic/is_loopback = false。is_default:host.default_input_device()の name と一致すればtrue。
デバイスが無い/ホスト初期化失敗の環境では空 Vec(panic しない)。同名デバイス
が複数あると id が重複し得るが、cpal でこれ以上安定なキーは取れないので許容する。