#![allow(missing_docs)]
use std::collections::HashMap;
use zbus::{Result, proxy};
#[proxy(
interface = "com.wayle.Audio1",
default_service = "com.wayle.Audio1",
default_path = "/com/wayle/Audio",
gen_blocking = false
)]
pub trait Audio {
async fn set_output_volume(&self, volume: f64) -> Result<f64>;
async fn adjust_output_volume(&self, delta: f64) -> Result<f64>;
async fn set_output_mute(&self, muted: bool) -> Result<()>;
async fn toggle_output_mute(&self) -> Result<bool>;
async fn set_input_volume(&self, volume: f64) -> Result<f64>;
async fn adjust_input_volume(&self, delta: f64) -> Result<f64>;
async fn set_input_mute(&self, muted: bool) -> Result<()>;
async fn toggle_input_mute(&self) -> Result<bool>;
async fn set_default_sink(&self, device_index: u32) -> Result<()>;
async fn set_default_source(&self, device_index: u32) -> Result<()>;
async fn list_sinks(&self) -> Result<Vec<(u32, String, String)>>;
async fn list_sources(&self) -> Result<Vec<(u32, String, String)>>;
async fn get_default_sink_info(&self) -> Result<HashMap<String, String>>;
async fn get_default_source_info(&self) -> Result<HashMap<String, String>>;
#[zbus(property)]
fn output_volume(&self) -> Result<f64>;
#[zbus(property)]
fn output_muted(&self) -> Result<bool>;
#[zbus(property)]
fn input_volume(&self) -> Result<f64>;
#[zbus(property)]
fn input_muted(&self) -> Result<bool>;
#[zbus(property)]
fn default_sink(&self) -> Result<String>;
#[zbus(property)]
fn default_source(&self) -> Result<String>;
#[zbus(property)]
fn sink_count(&self) -> Result<u32>;
#[zbus(property)]
fn source_count(&self) -> Result<u32>;
}