Files
jellytau/api/jellytau_lib/commands/player/index.html
T

11 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="TRACES: UR-003, UR-004, UR-005, UR-010, UR-020, UR-021 | JA-022, JA-023, JA-024, JA-025, JA-026 | DR-001"><title>jellytau_lib::commands::player - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module player</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module player</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>commands</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">commands</a></div><h1>Module <span>player</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/commands/player/mod.rs.html#1-3564">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>TRACES: UR-003, UR-004, UR-005, UR-010, UR-020, UR-021 | JA-022, JA-023, JA-024, JA-025, JA-026 | DR-001</p>
</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><dl class="item-table reexports"><dt><code>pub use <a class="mod" href="queue/index.html" title="mod jellytau_lib::commands::player::queue">queue</a>::*;</code></dt><dt><code>pub use <a class="mod" href="remote/index.html" title="mod jellytau_lib::commands::player::remote">remote</a>::*;</code></dt><dt><code>pub use <a class="mod" href="session/index.html" title="mod jellytau_lib::commands::player::session">session</a>::*;</code></dt><dt><code>pub use <a class="mod" href="settings/index.html" title="mod jellytau_lib::commands::player::settings">settings</a>::*;</code></dt><dt><code>pub use <a class="mod" href="timers/index.html" title="mod jellytau_lib::commands::player::timers">timers</a>::*;</code></dt></dl><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="queue/index.html" title="mod jellytau_lib::commands::player::queue">queue</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Queue manipulation commands (add / remove / move / skip).</dd><dt><a class="mod" href="remote/index.html" title="mod jellytau_lib::commands::player::remote">remote</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Remote Jellyfin session control commands (casting to another device).</dd><dt><a class="mod" href="session/index.html" title="mod jellytau_lib::commands::player::session">session</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Media session state commands.</dd><dt><a class="mod" href="settings/index.html" title="mod jellytau_lib::commands::player::settings">settings</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Audio and video playback settings commands.</dd><dt><a class="mod" href="timers/index.html" title="mod jellytau_lib::commands::player::timers">timers</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Sleep-timer and autoplay commands.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.BackgroundAudioPlan.html" title="struct jellytau_lib::commands::player::BackgroundAudioPlan">Background<wbr>Audio<wbr>Plan</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>How a background-audio handoff must start playback, given where its audio
actually begins.</dd><dt><a class="struct" href="struct.MediaSessionManagerWrapper.html" title="struct jellytau_lib::commands::player::MediaSessionManagerWrapper">Media<wbr>Session<wbr>Manager<wbr>Wrapper</a></dt><dd>Media session manager wrapper for Tauri state management</dd><dt><a class="struct" href="struct.MergedMediaItem.html" title="struct jellytau_lib::commands::player::MergedMediaItem">Merged<wbr>Media<wbr>Item</a></dt><dd>Lightweight media item for merged playback state
Converts from both local MediaItem and remote NowPlayingItem</dd><dt><a class="struct" href="struct.PlayAlbumTrackRequest.html" title="struct jellytau_lib::commands::player::PlayAlbumTrackRequest">Play<wbr>Album<wbr>Track<wbr>Request</a></dt><dd>Request to play a track from an album (backend fetches all tracks)</dd><dt><a class="struct" href="struct.PlayItemRequest.html" title="struct jellytau_lib::commands::player::PlayItemRequest">Play<wbr>Item<wbr>Request</a></dt><dd>Request to play a single video item</dd><dt><a class="struct" href="struct.PlayQueueRequest.html" title="struct jellytau_lib::commands::player::PlayQueueRequest">Play<wbr>Queue<wbr>Request</a></dt><dd>Request to play a queue of items</dd><dt><a class="struct" href="struct.PlayTracksRequest.html" title="struct jellytau_lib::commands::player::PlayTracksRequest">Play<wbr>Tracks<wbr>Request</a></dt><dd>Request to play tracks by ID (backend fetches metadata)</dd><dt><a class="struct" href="struct.PlaybackCapabilities.html" title="struct jellytau_lib::commands::player::PlaybackCapabilities">Playback<wbr>Capabilities</a></dt><dd>What playback facilities this platforms backend actually provides.</dd><dt><a class="struct" href="struct.PlayerStateWrapper.html" title="struct jellytau_lib::commands::player::PlayerStateWrapper">Player<wbr>State<wbr>Wrapper</a></dt><dd>Player state wrapper for Tauri.</dd><dt><a class="struct" href="struct.PlayerStatus.html" title="struct jellytau_lib::commands::player::PlayerStatus">Player<wbr>Status</a></dt><dd>Response for player state queries</dd><dt><a class="struct" href="struct.PreloadResult.html" title="struct jellytau_lib::commands::player::PreloadResult">Preload<wbr>Result</a></dt><dd>Response for preload operation</dd><dt><a class="struct" href="struct.QueueStatus.html" title="struct jellytau_lib::commands::player::QueueStatus">Queue<wbr>Status</a></dt><dd>Response for queue queries</dd><dt><a class="struct" href="struct.SmartCacheWrapper.html" title="struct jellytau_lib::commands::player::SmartCacheWrapper">Smart<wbr>Cache<wbr>Wrapper</a></dt><dd>SmartCache wrapper for Tauri state management</dd><dt><a class="struct" href="struct.VideoSettingsWrapper.html" title="struct jellytau_lib::commands::player::VideoSettingsWrapper">Video<wbr>Settings<wbr>Wrapper</a></dt><dd>Video settings state wrapper for Tauri</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.AudioTrackSwitchResponse.html" title="enum jellytau_lib::commands::player::AudioTrackSwitchResponse">Audio<wbr>Track<wbr>Switch<wbr>Response</a></dt><dd>Response for audio track switching operations</dd><dt><a class="enum" href="enum.PlayQueueContext.html" title="enum jellytau_lib::commands::player::PlayQueueContext">Play<wbr>Queue<wbr>Context</a></dt><dd>Queue context for remote transfer - what type of queue is this?</dd><dt><a class="enum" href="enum.PlayTracksContext.html" title="enum jellytau_lib::commands::player::PlayTracksContext">Play<wbr>Tracks<wbr>Context</a></dt><dd>Context information for track playback</dd><dt><a class="enum" href="enum.StreamQualityResponse.html" title="enum jellytau_lib::commands::player::StreamQualityResponse">Stream<wbr>Quality<wbr>Response</a></dt><dd>Response for a mid-playback streaming-quality change.</dd><dt><a class="enum" href="enum.VideoBackend.html" title="enum jellytau_lib::commands::player::VideoBackend">Video<wbr>Backend</a></dt><dd>Backend type for video playback</dd><dt><a class="enum" href="enum.VideoSeekResponse.html" title="enum jellytau_lib::commands::player::VideoSeekResponse">Video<wbr>Seek<wbr>Response</a></dt><dd>Response for video seek operations</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.background_audio_plan.html" title="fn jellytau_lib::commands::player::background_audio_plan">background_<wbr>audio_<wbr>plan</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Decide the base and the seek for a handoff at <code>position_seconds</code>.</dd><dt><a class="fn" href="fn.background_audio_source.html" title="fn jellytau_lib::commands::player::background_audio_source">background_<wbr>audio_<wbr>source</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Pick the source for an audio-only handoff.</dd><dt><a class="fn" href="fn.check_for_local_download.html" title="fn jellytau_lib::commands::player::check_for_local_download">check_<wbr>for_<wbr>local_<wbr>download</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Check if an item has a completed download</dd><dt><a class="fn" href="fn.create_media_item.html" title="fn jellytau_lib::commands::player::create_media_item">create_<wbr>media_<wbr>item</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Helper function to create MediaItem from video request</dd><dt><a class="fn" href="fn.get_player_status.html" title="fn jellytau_lib::commands::player::get_player_status">get_<wbr>player_<wbr>status</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.get_queue_status.html" title="fn jellytau_lib::commands::player::get_queue_status">get_<wbr>queue_<wbr>status</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.normalize_volume.html" title="fn jellytau_lib::commands::player::normalize_volume">normalize_<wbr>volume</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Normalise a volume arriving over IPC to the 0.0..=1.0 range every backend
works in.</dd><dt><a class="fn" href="fn.play_selection_on_remote.html" title="fn jellytau_lib::commands::player::play_selection_on_remote">play_<wbr>selection_<wbr>on_<wbr>remote</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Start a freshly-built queue on the active remote session.</dd><dt><a class="fn" href="fn.player_background_action.html" title="fn jellytau_lib::commands::player::player_background_action">player_<wbr>background_<wbr>action</a></dt><dd>Exit background-audio mode: stop the native audio player and return its final
position so the frontend can reload the WebView <code>&lt;video&gt;</code> there (UR-040).</dd><dt><a class="fn" href="fn.player_configure_jellyfin.html" title="fn jellytau_lib::commands::player::player_configure_jellyfin">player_<wbr>configure_<wbr>jellyfin</a></dt><dd>Configure Jellyfin API client for automatic playback reporting</dd><dt><a class="fn" href="fn.player_cycle_repeat.html" title="fn jellytau_lib::commands::player::player_cycle_repeat">player_<wbr>cycle_<wbr>repeat</a></dt><dt><a class="fn" href="fn.player_disable_jellyfin.html" title="fn jellytau_lib::commands::player::player_disable_jellyfin">player_<wbr>disable_<wbr>jellyfin</a></dt><dd>Disable Jellyfin automatic playback reporting</dd><dt><a class="fn" href="fn.player_enter_background_audio.html" title="fn jellytau_lib::commands::player::player_enter_background_audio">player_<wbr>enter_<wbr>background_<wbr>audio</a></dt><dd>Enter background-audio mode: hand playback of the currently-watched video off
to the native ExoPlayer <em>audio</em> path so the audio keeps playing while the app
is backgrounded/locked, with no client-side video decode (UR-040).</dd><dt><a class="fn" href="fn.player_exit_background_audio.html" title="fn jellytau_lib::commands::player::player_exit_background_audio">player_<wbr>exit_<wbr>background_<wbr>audio</a></dt><dd>TRACES: UR-040 | DR-052 | UT-061, IT-013</dd><dt><a class="fn" href="fn.player_get_cache_config.html" title="fn jellytau_lib::commands::player::player_get_cache_config">player_<wbr>get_<wbr>cache_<wbr>config</a></dt><dd>Get current SmartCache configuration</dd><dt><a class="fn" href="fn.player_get_capabilities.html" title="fn jellytau_lib::commands::player::player_get_capabilities">player_<wbr>get_<wbr>capabilities</a></dt><dd>Report this platforms playback capabilities to the frontend.</dd><dt><a class="fn" href="fn.player_get_queue.html" title="fn jellytau_lib::commands::player::player_get_queue">player_<wbr>get_<wbr>queue</a></dt><dt><a class="fn" href="fn.player_get_status.html" title="fn jellytau_lib::commands::player::player_get_status">player_<wbr>get_<wbr>status</a></dt><dt><a class="fn" href="fn.player_local_media_path.html" title="fn jellytau_lib::commands::player::player_local_media_path">player_<wbr>local_<wbr>media_<wbr>path</a></dt><dd>The on-disk path for a downloaded item, for playback surfaces that resolve
their own source rather than going through the queue.</dd><dt><a class="fn" href="fn.player_next.html" title="fn jellytau_lib::commands::player::player_next">player_<wbr>next</a></dt><dt><a class="fn" href="fn.player_pause.html" title="fn jellytau_lib::commands::player::player_pause">player_<wbr>pause</a></dt><dt><a class="fn" href="fn.player_play.html" title="fn jellytau_lib::commands::player::player_play">player_<wbr>play</a></dt><dt><a class="fn" href="fn.player_play_album_track.html" title="fn jellytau_lib::commands::player::player_play_album_track">player_<wbr>play_<wbr>album_<wbr>track</a></dt><dd>Play a track from an album - backend fetches all album tracks and builds queue</dd><dt><a class="fn" href="fn.player_play_item.html" title="fn jellytau_lib::commands::player::player_play_item">player_<wbr>play_<wbr>item</a></dt><dd>Play a single media item (audio or video)</dd><dt><a class="fn" href="fn.player_play_queue.html" title="fn jellytau_lib::commands::player::player_play_queue">player_<wbr>play_<wbr>queue</a></dt><dd>Play a queue of media items</dd><dt><a class="fn" href="fn.player_play_tracks.html" title="fn jellytau_lib::commands::player::player_play_tracks">player_<wbr>play_<wbr>tracks</a></dt><dd>Play tracks by ID - backend fetches all metadata</dd><dt><a class="fn" href="fn.player_preload_upcoming.html" title="fn jellytau_lib::commands::player::player_preload_upcoming">player_<wbr>preload_<wbr>upcoming</a></dt><dd>Preload upcoming tracks from the queue
This queues background downloads for the next N tracks that arent already downloaded</dd><dt><a class="fn" href="fn.player_previous.html" title="fn jellytau_lib::commands::player::player_previous">player_<wbr>previous</a></dt><dt><a class="fn" href="fn.player_seek.html" title="fn jellytau_lib::commands::player::player_seek">player_<wbr>seek</a></dt><dt><a class="fn" href="fn.player_seek_video.html" title="fn jellytau_lib::commands::player::player_seek_video">player_<wbr>seek_<wbr>video</a></dt><dd>Smart video seeking that decides between native and server-side seeking</dd><dt><a class="fn" href="fn.player_set_audio_track.html" title="fn jellytau_lib::commands::player::player_set_audio_track">player_<wbr>set_<wbr>audio_<wbr>track</a></dt><dd>Set the active audio track on a native backend directly.</dd><dt><a class="fn" href="fn.player_set_cache_config.html" title="fn jellytau_lib::commands::player::player_set_cache_config">player_<wbr>set_<wbr>cache_<wbr>config</a></dt><dd>Update SmartCache configuration</dd><dt><a class="fn" href="fn.player_set_stream_quality.html" title="fn jellytau_lib::commands::player::player_set_stream_quality">player_<wbr>set_<wbr>stream_<wbr>quality</a></dt><dd>Change the bandwidth ceiling of the video that is playing <em>right now</em>.</dd><dt><a class="fn" href="fn.player_set_subtitle_track.html" title="fn jellytau_lib::commands::player::player_set_subtitle_track">player_<wbr>set_<wbr>subtitle_<wbr>track</a></dt><dd>Set (or clear, with <code>None</code>) the active subtitle track on a native backend.</dd><dt><a class="fn" href="fn.player_set_volume.html" title="fn jellytau_lib::commands::player::player_set_volume">player_<wbr>set_<wbr>volume</a></dt><dt><a class="fn" href="fn.player_stop.html" title="fn jellytau_lib::commands::player::player_stop">player_<wbr>stop</a></dt><dt><a class="fn" href="fn.player_switch_audio_track.html" title="fn jellytau_lib::commands::player::player_switch_audio_track">player_<wbr>switch_<wbr>audio_<wbr>track</a></dt><dd>Switch audio track - handles both HTML5 (stream reload) and native (direct switch)
Note: Frontend should handle saving series preferences after this command succeeds</dd><dt><a class="fn" href="fn.player_toggle.html" title="fn jellytau_lib::commands::player::player_toggle">player_<wbr>toggle</a></dt><dt><a class="fn" href="fn.player_toggle_mute.html" title="fn jellytau_lib::commands::player::player_toggle_mute">player_<wbr>toggle_<wbr>mute</a></dt><dt><a class="fn" href="fn.player_toggle_shuffle.html" title="fn jellytau_lib::commands::player::player_toggle_shuffle">player_<wbr>toggle_<wbr>shuffle</a></dt><dt><a class="fn" href="fn.refresh_queue_local_sources.html" title="fn jellytau_lib::commands::player::refresh_queue_local_sources">refresh_<wbr>queue_<wbr>local_<wbr>sources</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Re-point queued streaming items at completed local downloads.</dd><dt><a class="fn" href="fn.resolve_local_media_path.html" title="fn jellytau_lib::commands::player::resolve_local_media_path">resolve_<wbr>local_<wbr>media_<wbr>path</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Resolve the on-disk file backing a completed download, if there is one.</dd><dt><a class="fn" href="fn.sanitize_filename.html" title="fn jellytau_lib::commands::player::sanitize_filename">sanitize_<wbr>filename</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Sanitize filename by removing invalid characters</dd></dl></section></div></main></body></html>