tauri_plugin_media/
commands.rs

1use tauri::{command, AppHandle, Runtime};
2
3use crate::models::*;
4use crate::MediaExt;
5use crate::Result;
6
7#[command]
8pub(crate) async fn initialize_session<R: Runtime>(
9    app: AppHandle<R>,
10    request: InitializeMediaSessionRequest,
11) -> Result<()> {
12    app.media().initialize_session(request)
13}
14
15#[command]
16pub(crate) async fn set_metadata<R: Runtime>(
17    app: AppHandle<R>,
18    metadata: MediaMetadata,
19) -> Result<()> {
20    app.media().set_metadata(metadata)
21}
22
23#[command]
24pub(crate) async fn set_playback_info<R: Runtime>(
25    app: AppHandle<R>,
26    info: PlaybackInfo,
27) -> Result<()> {
28    app.media().set_playback_info(info)
29}
30
31#[command]
32pub(crate) async fn set_playback_status<R: Runtime>(
33    app: AppHandle<R>,
34    status: PlaybackStatus,
35) -> Result<()> {
36    app.media().set_playback_status(status)
37}
38
39#[command]
40pub(crate) async fn set_position<R: Runtime>(app: AppHandle<R>, position: f64) -> Result<()> {
41    app.media().set_position(position)
42}
43
44#[command]
45pub(crate) async fn clear_metadata<R: Runtime>(app: AppHandle<R>) -> Result<()> {
46    app.media().clear_metadata()
47}
48
49#[command]
50pub(crate) async fn get_metadata<R: Runtime>(app: AppHandle<R>) -> Result<Option<MediaMetadata>> {
51    app.media().get_metadata()
52}
53
54#[command]
55pub(crate) async fn get_playback_info<R: Runtime>(
56    app: AppHandle<R>,
57) -> Result<Option<PlaybackInfo>> {
58    app.media().get_playback_info()
59}
60
61#[command]
62pub(crate) async fn get_playback_status<R: Runtime>(app: AppHandle<R>) -> Result<PlaybackStatus> {
63    app.media().get_playback_status()
64}
65
66#[command]
67pub(crate) async fn get_position<R: Runtime>(app: AppHandle<R>) -> Result<f64> {
68    app.media().get_position()
69}
70
71#[command]
72pub(crate) async fn is_enabled<R: Runtime>(app: AppHandle<R>) -> Result<bool> {
73    app.media().is_enabled()
74}
75
76#[command]
77pub(crate) async fn next<R: Runtime>(app: AppHandle<R>) -> Result<()> {
78    // Trigger next track event - implementation depends on event handler
79    Ok(())
80}
81
82#[command]
83pub(crate) async fn previous<R: Runtime>(app: AppHandle<R>) -> Result<()> {
84    // Trigger previous track event - implementation depends on event handler
85    Ok(())
86}