tauri-plugin-audioplayer 0.1.1

Tauri Audioplayer Plugin
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)
}