pub mod controls;
pub mod errors;
pub mod session;
pub mod types;
pub use controls::{ControlId, ControlInfo, ControlKind, ControlValue};
pub use errors::HeadlessError;
pub use session::HeadlessSession;
pub use types::{
AudioMode, AudioPacket, BufferPolicy, CaptureConfig, DeviceInfo, FormatInfo, Frame,
};
pub fn list_devices() -> Result<Vec<DeviceInfo>, HeadlessError> {
crate::platform::CameraSystem::list_cameras().map_err(HeadlessError::backend)
}
pub fn list_formats(device_id: &str) -> Result<Vec<FormatInfo>, HeadlessError> {
let devices = list_devices()?;
let device = devices
.into_iter()
.find(|d| d.id == device_id)
.ok_or_else(|| HeadlessError::not_found("device", device_id))?;
Ok(device.supports_formats)
}
pub fn list_controls(_device_id: &str) -> Result<Vec<ControlInfo>, HeadlessError> {
Ok(controls::all_controls())
}