mirror of
https://github.com/openai/codex.git
synced 2026-11-12 21:20:34 +00:00
## Why Voice conversations previously opened the system-default microphone and speaker. Users need to choose which local devices to use, including when connected to a remote app server. ## What changed - Add input and output device pickers alongside voice selection, with back navigation and a System default option. - Persist selections as `audio.microphone` and `audio.speaker` on the TUI's machine, excluding project configuration layers. Apply them to the next voice conversation. - Enumerate devices without opening audio streams and pass the selected names to the voice helper at startup. - Disable ambiguous device names in the picker and use the same eligibility filtering for discovery and named-device startup. ## Testing Add tests for device preference persistence across project and remote transitions, picker navigation and duplicate names, discovery without capture, and forwarding selected devices to the helper. GitOrigin-RevId: d48fb3a09fa9b982a408f5a7c96bdd81776af21d
27 lines
767 B
Rust
27 lines
767 B
Rust
mod client;
|
|
mod helper_exit;
|
|
#[cfg(any(target_os = "linux", test))]
|
|
mod linux_alsa;
|
|
mod message_reader;
|
|
mod protocol;
|
|
mod session;
|
|
|
|
pub use client::ConnectionError;
|
|
pub use client::VoiceHost;
|
|
pub use helper_exit::HelperExitStage;
|
|
pub use protocol::AudioControls;
|
|
pub use protocol::AudioDevice;
|
|
pub use protocol::AudioDeviceKind;
|
|
pub use protocol::AudioDeviceSelection;
|
|
pub use protocol::AudioState;
|
|
pub use protocol::MAX_FRAME_BYTES;
|
|
pub use protocol::Message;
|
|
pub use protocol::RUNTIME_ENVIRONMENT;
|
|
pub use protocol::SessionDescription;
|
|
pub use protocol::decode_frame;
|
|
pub use protocol::encode_frame;
|
|
pub use protocol::read_message;
|
|
pub use session::RealtimeWebrtcSession;
|
|
pub use session::RealtimeWebrtcSessionHandle;
|
|
pub use session::StartedRealtimeWebrtcSession;
|