use std::collections::HashMap;
use tauri::{AppHandle, Runtime, command};
use crate::AudioplayerExt;
use crate::Result;
use crate::models::*;
#[command]
pub(crate) fn list_input_devices<R: Runtime>(app: AppHandle<R>) -> Result<AudioDeviceList> {
app.audioplayer().list_input_devices()
}
#[command]
pub(crate) fn list_output_devices<R: Runtime>(app: AppHandle<R>) -> Result<AudioDeviceList> {
app.audioplayer().list_output_devices()
}
#[command]
pub(crate) fn select_input_device<R: Runtime>(
app: AppHandle<R>,
id: String,
) -> Result<AudioDevice> {
app.audioplayer().select_input_device(&id)
}
#[command]
pub(crate) fn select_output_device<R: Runtime>(
app: AppHandle<R>,
id: String,
) -> Result<AudioDevice> {
app.audioplayer().select_output_device(&id)
}
#[command]
pub(crate) fn load_audio<R: Runtime>(
app: AppHandle<R>,
url: String,
headers: Option<HashMap<String, String>>,
) -> Result<LoadedAudio> {
app.audioplayer().load_audio(&url, headers.as_ref())
}
#[command]
pub(crate) fn play_audio<R: Runtime>(app: AppHandle<R>) -> Result<()> {
app.audioplayer().play_audio()
}
#[command]
pub(crate) fn pause_audio<R: Runtime>(app: AppHandle<R>) -> Result<()> {
app.audioplayer().pause_audio()
}
#[command]
pub(crate) fn stop_audio<R: Runtime>(app: AppHandle<R>) -> Result<()> {
app.audioplayer().stop_audio()
}
#[command]
pub(crate) fn set_volume<R: Runtime>(app: AppHandle<R>, volume: f32) -> Result<()> {
app.audioplayer().set_volume(volume)
}
#[command]
pub(crate) fn mute<R: Runtime>(app: AppHandle<R>) -> Result<()> {
app.audioplayer().mute()
}
#[command]
pub(crate) fn playback_progress<R: Runtime>(app: AppHandle<R>) -> Result<PlaybackProgress> {
app.audioplayer().playback_progress()
}
#[command]
pub(crate) fn seek_audio<R: Runtime>(
app: AppHandle<R>,
position_seconds: f64,
) -> Result<PlaybackProgress> {
app.audioplayer().seek_audio(position_seconds)
}