use thiserror::Error;
#[derive(Debug, Error)]
pub enum AudioError {
#[error("audio device not found")]
DeviceNotFound,
#[error("failed to initialize audio subsystem: {0}")]
InitializationFailed(String),
#[error("failed to list audio devices: {0}")]
ListFailed(String),
#[error("failed to retrieve volume: {0}")]
GetVolumeFailed(String),
#[error("failed to set volume: {0}")]
SetVolumeFailed(String),
#[error("failed to retrieve mute state: {0}")]
GetMuteFailed(String),
#[error("failed to set mute state: {0}")]
SetMuteFailed(String),
#[error("operation not supported on this platform")]
Unsupported,
#[error("audio endpoint mutex was poisoned")]
EndpointLockPoisoned,
}