tauri-plugin-media-toolkit 0.1.1

Comprehensive media toolkit for Tauri: edit, play, convert audio/video files
Documentation
use tauri::{command, AppHandle, Runtime};

use crate::models::*;
use crate::MediaToolkitExt;
use crate::Result;

#[command]
pub(crate) async fn get_media_info<R: Runtime>(
    app: AppHandle<R>,
    path: String,
) -> Result<MediaInfo> {
    app.media_toolkit().get_media_info(&path)
}

#[command]
pub(crate) async fn trim<R: Runtime>(
    app: AppHandle<R>,
    config: TrimConfig,
) -> Result<OperationResult> {
    app.media_toolkit().trim(config)
}

#[command]
pub(crate) async fn convert<R: Runtime>(
    app: AppHandle<R>,
    config: ConvertConfig,
) -> Result<OperationResult> {
    app.media_toolkit().convert(config)
}

#[command]
pub(crate) async fn extract_audio<R: Runtime>(
    app: AppHandle<R>,
    config: ExtractAudioConfig,
) -> Result<OperationResult> {
    app.media_toolkit().extract_audio(config)
}

#[command]
pub(crate) async fn play<R: Runtime>(app: AppHandle<R>, config: PlayConfig) -> Result<()> {
    app.media_toolkit().play(config)
}

#[command]
pub(crate) async fn pause<R: Runtime>(app: AppHandle<R>) -> Result<()> {
    app.media_toolkit().pause()
}

#[command]
pub(crate) async fn resume<R: Runtime>(app: AppHandle<R>) -> Result<()> {
    app.media_toolkit().resume()
}

#[command]
pub(crate) async fn stop<R: Runtime>(app: AppHandle<R>) -> Result<()> {
    app.media_toolkit().stop()
}

#[command]
pub(crate) async fn seek<R: Runtime>(app: AppHandle<R>, config: SeekConfig) -> Result<()> {
    app.media_toolkit().seek(config)
}

#[command]
pub(crate) async fn get_playback_status<R: Runtime>(app: AppHandle<R>) -> Result<PlaybackStatus> {
    app.media_toolkit().get_playback_status()
}

#[command]
pub(crate) async fn set_volume<R: Runtime>(app: AppHandle<R>, volume: f32) -> Result<()> {
    app.media_toolkit().set_volume(volume)
}

#[command]
pub(crate) async fn select_media_file<R: Runtime>(
    app: AppHandle<R>,
) -> Result<crate::models::FileSelectionResult> {
    app.media_toolkit().select_media_file()
}

#[command]
pub(crate) async fn check_permission<R: Runtime>(
    app: AppHandle<R>,
) -> Result<crate::models::PermissionResponse> {
    app.media_toolkit().check_permission()
}

#[command]
pub(crate) async fn request_permission<R: Runtime>(
    app: AppHandle<R>,
) -> Result<crate::models::PermissionResponse> {
    app.media_toolkit().request_permission()
}

#[command]
pub(crate) async fn cleanup_cache<R: Runtime>(
    app: AppHandle<R>,
) -> Result<crate::models::CleanupResult> {
    app.media_toolkit().cleanup_cache()
}