pub trait Device {
// Required methods
fn name(&self) -> &str;
fn id(&self) -> &str;
fn start(&mut self) -> Result<(), MediaError>;
fn stop(&mut self) -> Result<(), MediaError>;
fn configure(&mut self, options: Variant) -> Result<(), MediaError>;
fn control(&mut self, action: Variant) -> Result<(), MediaError>;
fn running(&self) -> bool;
fn formats(&self) -> Result<Variant, MediaError>;
}