pub trait DeviceProxyInterface: Send + Sync {
type GetFormatResponseFut: Future<Output = Result<DeviceGetFormatResult, Error>> + Send;
type GetGainResponseFut: Future<Output = Result<(bool, bool, f32), Error>> + Send;
type GetBufferResponseFut: Future<Output = Result<DeviceGetBufferResult, Error>> + Send;
type GetPositionResponseFut: Future<Output = Result<DeviceGetPositionResult, Error>> + Send;
// Required methods
fn get_format(&self) -> Self::GetFormatResponseFut;
fn get_gain(&self) -> Self::GetGainResponseFut;
fn get_buffer(&self) -> Self::GetBufferResponseFut;
fn set_notification_frequency(
&self,
notifications_per_ring: u32
) -> Result<(), Error>;
fn get_position(&self) -> Self::GetPositionResponseFut;
fn change_plug_state(
&self,
plug_change_time: i64,
plugged: bool
) -> Result<(), Error>;
fn adjust_clock_rate(&self, ppm_from_monotonic: i32) -> Result<(), Error>;
}