#[derive(Debug, thiserror::Error)]
pub enum ControllerError {
#[error("Package not found (error code: {0})")]
PackageNotFound(u32),
#[error("Failed to get package path (error code: {0})")]
PackagePathError(u32),
#[error("Failed to load DLL: {0}")]
DllLoad(#[from] libloading::Error),
#[error("RPC initialization failed")]
RpcInitFailed,
#[error("Controller already initialized - only one instance allowed")]
AlreadyInitialized,
#[error("Invalid slider value {value} for {mode} (expected {min}-{max})")]
InvalidSliderValue {
mode: &'static str,
value: u8,
min: u8,
max: u8,
},
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Failed to get current mode")]
ModeNotDetected,
#[error("Failed to set dimming (error code: {0})")]
DimmingFailed(i64),
}