pub trait ControllerProxyInterface: Send + Sync {
type GetPlayerApplicationSettingsResponseFut: Future<Output = Result<ControllerGetPlayerApplicationSettingsResult, Error>> + Send;
type SetPlayerApplicationSettingsResponseFut: Future<Output = Result<ControllerSetPlayerApplicationSettingsResult, Error>> + Send;
type GetMediaAttributesResponseFut: Future<Output = Result<ControllerGetMediaAttributesResult, Error>> + Send;
type GetPlayStatusResponseFut: Future<Output = Result<ControllerGetPlayStatusResult, Error>> + Send;
type SetAbsoluteVolumeResponseFut: Future<Output = Result<ControllerSetAbsoluteVolumeResult, Error>> + Send;
type InformBatteryStatusResponseFut: Future<Output = Result<ControllerInformBatteryStatusResult, Error>> + Send;
type SetAddressedPlayerResponseFut: Future<Output = Result<ControllerSetAddressedPlayerResult, Error>> + Send;
type SendCommandResponseFut: Future<Output = Result<ControllerSendCommandResult, Error>> + Send;
// Required methods
fn get_player_application_settings(
&self,
attribute_ids: &[PlayerApplicationSettingAttributeId]
) -> Self::GetPlayerApplicationSettingsResponseFut;
fn set_player_application_settings(
&self,
requested_settings: &PlayerApplicationSettings
) -> Self::SetPlayerApplicationSettingsResponseFut;
fn get_media_attributes(&self) -> Self::GetMediaAttributesResponseFut;
fn get_play_status(&self) -> Self::GetPlayStatusResponseFut;
fn set_absolute_volume(
&self,
requested_volume: u8
) -> Self::SetAbsoluteVolumeResponseFut;
fn inform_battery_status(
&self,
battery_status: BatteryStatus
) -> Self::InformBatteryStatusResponseFut;
fn set_notification_filter(
&self,
notifications: Notifications,
position_change_interval: u32
) -> Result<(), Error>;
fn notify_notification_handled(&self) -> Result<(), Error>;
fn set_addressed_player(
&self,
player_id: u16
) -> Self::SetAddressedPlayerResponseFut;
fn send_command(
&self,
command: AvcPanelCommand
) -> Self::SendCommandResponseFut;
}