Files
jellytau/docs/traceability.md
T
dtourolle 3fbf6afdbc Background-audio handoff for video + repository/player refactor
Hand video playback off to a native audio-only stream when the app is
backgrounded or locked, with no on-device video decode (UR-040). Adds
player_enter/exit_background_audio commands, an audio-only stream URL
for video items across the repository layer, and the frontend handoff
state machine wired into VideoPlayer. Includes accompanying
repository/offline/player refactoring and regenerates the traceability
matrix.
2026-07-22 21:52:07 +02:00

2966 lines
101 KiB
Markdown

# Code Traceability Matrix
**Generated:** 7/22/2026, 9:49:16 PM
## Summary
- **Total Files Scanned:** 264
- **Total TRACES Found:** 182
- **Requirements Covered:**
- User Requirements (UR): 42
- Integration Requirements (IR): 14
- Development Requirements (DR): 53
- Jellyfin API Requirements (JA): 24
## Requirements by Type
### User Requirements (UR)
```
UR-002, UR-003, UR-004, UR-005, UR-007, UR-008, UR-009, UR-010, UR-011, UR-012, UR-013, UR-014, UR-015, UR-016, UR-017, UR-018, UR-019, UR-020, UR-021, UR-022, UR-023, UR-024, UR-025, UR-026, UR-028, UR-029, UR-030, UR-031, UR-032, UR-033, UR-034, UR-035, UR-036, UR-039, UR-040, UR-041, UR-042, UR-043, UR-044, UR-045, UR-046, UR-047
```
### Integration Requirements (IR)
```
IR-003, IR-004, IR-009, IR-010, IR-011, IR-012, IR-013, IR-014, IR-015, IR-023, IR-025, IR-026, IR-027, IR-028
```
### Development Requirements (DR)
```
DR-001, DR-002, DR-003, DR-004, DR-005, DR-006, DR-007, DR-009, DR-010, DR-011, DR-012, DR-013, DR-014, DR-015, DR-016, DR-017, DR-018, DR-020, DR-021, DR-022, DR-023, DR-024, DR-025, DR-026, DR-027, DR-028, DR-029, DR-032, DR-033, DR-034, DR-035, DR-036, DR-037, DR-038, DR-039, DR-040, DR-041, DR-044, DR-045, DR-047, DR-048, DR-049, DR-050, DR-051, DR-052, DR-053, DR-054, DR-055, DR-056, DR-057, DR-058, DR-059, DR-060
```
### Jellyfin API Requirements (JA)
```
JA-001, JA-002, JA-003, JA-004, JA-005, JA-007, JA-010, JA-011, JA-012, JA-016, JA-017, JA-019, JA-020, JA-021, JA-022, JA-023, JA-024, JA-025, JA-026, JA-028, JA-029, JA-030, JA-031, JA-032
```
## Detailed Mapping
### IR-003
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39)
- **Line:** 39
- **Context:** `pub fn playback_failed<S: Into<String>>(message: S) -> Self {`
- **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
### IR-004
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39)
- **Line:** 39
- **Context:** `pub fn playback_failed<S: Into<String>>(message: S) -> Self {`
### IR-009
**Locations:** 6 file(s)
- **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L266)
- **Line:** 266
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L293)
- **Line:** 293
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/auth.rs`](src-tauri/src/commands/auth.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### IR-010
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### IR-011
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### IR-012
**Locations:** 2 file(s)
- **File:** [`src/lib/stores/playbackMode.ts`](src/lib/stores/playbackMode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### IR-013
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### IR-014
**Locations:** 6 file(s)
- **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L293)
- **Line:** 293
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L445)
- **Line:** 445
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/auth.rs`](src-tauri/src/commands/auth.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/credentials.rs`](src-tauri/src/credentials.rs#L10)
- **Line:** 10
- **Context:** `Unknown`
### IR-015
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### IR-023
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/storage/people.rs`](src-tauri/src/commands/storage/people.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### IR-025
**Locations:** 1 file(s)
- **File:** [`src/lib/utils/backgroundAudio.ts`](src/lib/utils/backgroundAudio.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
### IR-026
**Locations:** 1 file(s)
- **File:** [`src/lib/utils/pictureInPicture.ts`](src/lib/utils/pictureInPicture.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
### IR-027
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/connectivity.rs`](src-tauri/src/commands/connectivity.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### IR-028
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-001
**Locations:** 17 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1974)
- **Line:** 1974
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L31)
- **Line:** 31
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.regression.test.ts`](src/lib/services/playerEvents.regression.test.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L186)
- **Line:** 186
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/rustReportHost.ts`](src/lib/player/adapters/rustReportHost.ts#L13)
- **Line:** 13
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src/lib/player/index.ts`](src/lib/player/index.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L25)
- **Line:** 25
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-002
**Locations:** 2 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1860)
- **Line:** 1860
- **Context:** `export type PlaybackProgress = { itemId: string; positionTicks: number...`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42)
- **Line:** 42
- **Context:** `Unknown`
### DR-003
**Locations:** 2 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1956)
- **Line:** 1956
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L117)
- **Line:** 117
- **Context:** `pub enum MediaType {`
### DR-004
**Locations:** 5 file(s)
- **File:** [`src/lib/player/adapters/index.ts`](src/lib/player/adapters/index.ts#L11)
- **Line:** 11
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/nativeAdapter.ts`](src/lib/player/adapters/nativeAdapter.ts#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39)
- **Line:** 39
- **Context:** `pub fn playback_failed<S: Into<String>>(message: S) -> Self {`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L251)
- **Line:** 251
- **Context:** `Unknown`
### DR-005
**Locations:** 13 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2179)
- **Line:** 2179
- **Context:** `export type RemoteSessionStatus = { position: number; duration: number...`
- **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L105)
- **Line:** 105
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L110)
- **Line:** 110
- **Context:** `async function next() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L115)
- **Line:** 115
- **Context:** `async function previous() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L120)
- **Line:** 120
- **Context:** `async function skipTo(index: number) {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L125)
- **Line:** 125
- **Context:** `async function toggleShuffle() {`
- **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20)
- **Line:** 20
- **Context:** `pub enum RepeatMode {`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
- **File:** [`src-tauri/src/commands/player/queue.rs`](src-tauri/src/commands/player/queue.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-006
**Locations:** 2 file(s)
- **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
### DR-007
**Locations:** 9 file(s)
- **File:** [`src/routes/library/music/+page.svelte`](src/routes/library/music/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/AlphabetScrollBar.svelte`](src/lib/components/library/AlphabetScrollBar.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/music.ts`](src/lib/stores/music.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-009
**Locations:** 12 file(s)
- **File:** [`src/lib/components/player/Controls.svelte`](src/lib/components/player/Controls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/BottomUi.svelte`](src/lib/components/BottomUi.svelte#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playerVisibility.test.ts`](src/lib/stores/playerVisibility.test.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/utils/layoutShell.test.ts`](src/lib/utils/layoutShell.test.ts#L14)
- **Line:** 14
- **Context:** `Unknown`
- **File:** [`src/lib/utils/layoutShell.ts`](src/lib/utils/layoutShell.ts#L17)
- **Line:** 17
- **Context:** `Unknown`
- **File:** [`src/lib/player/index.ts`](src/lib/player/index.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/session.rs`](src-tauri/src/commands/player/session.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/conversions.rs`](src-tauri/src/commands/conversions.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-010
**Locations:** 1 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-011
**Locations:** 9 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L521)
- **Line:** 521
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L537)
- **Line:** 537
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.test.ts`](src/lib/services/deviceId.test.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L24)
- **Line:** 24
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L81)
- **Line:** 81
- **Context:** `Unknown`
### DR-012
**Locations:** 5 file(s)
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
- **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-013
**Locations:** 3 file(s)
- **File:** [`src/lib/stores/connectivity.ts`](src/lib/stores/connectivity.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-014
**Locations:** 4 file(s)
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L64)
- **Line:** 64
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L188)
- **Line:** 188
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sync.rs`](src-tauri/src/commands/sync.rs#L5)
- **Line:** 5
- **Context:** `Unknown`
### DR-015
**Locations:** 6 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.ts`](src/lib/stores/downloads.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
### DR-016
**Locations:** 3 file(s)
- **File:** [`src/lib/services/imageCache.test.ts`](src/lib/services/imageCache.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/imageCache.ts`](src/lib/services/imageCache.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/thumbnails.rs`](src-tauri/src/commands/storage/thumbnails.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-017
**Locations:** 3 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.ts`](src/lib/stores/downloads.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L136)
- **Line:** 136
- **Context:** `Unknown`
### DR-018
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
### DR-020
**Locations:** 8 file(s)
- **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L115)
- **Line:** 115
- **Context:** `async function previous() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L130)
- **Line:** 130
- **Context:** `async function cycleRepeat() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L135)
- **Line:** 135
- **Context:** `async function removeFromQueue(index: number) {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L140)
- **Line:** 140
- **Context:** `async function moveInQueue(fromIndex: number, toIndex: number) {`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20)
- **Line:** 20
- **Context:** `pub enum RepeatMode {`
- **File:** [`src-tauri/src/commands/player/queue.rs`](src-tauri/src/commands/player/queue.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-021
**Locations:** 2 file(s)
- **File:** [`src/lib/services/favorites.test.ts`](src/lib/services/favorites.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/favorites.ts`](src/lib/services/favorites.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### DR-022
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-023
**Locations:** 3 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
### DR-024
**Locations:** 4 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/series_prefs.rs`](src-tauri/src/commands/storage/series_prefs.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-025
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-026
**Locations:** 2 file(s)
- **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### DR-027
**Locations:** 2 file(s)
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-028
**Locations:** 18 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/utils/duration.test.ts`](src/lib/utils/duration.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L58)
- **Line:** 58
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L89)
- **Line:** 89
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L122)
- **Line:** 122
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L156)
- **Line:** 156
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/nativeAdapter.ts`](src/lib/player/adapters/nativeAdapter.ts#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/rustReportHost.ts`](src/lib/player/adapters/rustReportHost.ts#L13)
- **Line:** 13
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-029
**Locations:** 9 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2221)
- **Line:** 2221
- **Context:** `export type SessionInfo = { id?: string | null; userId?: string | null...`
- **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sleepTimer.ts`](src/lib/stores/sleepTimer.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L264)
- **Line:** 264
- **Context:** `function handleMediaLoaded(duration: number): void {`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L301)
- **Line:** 301
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81)
- **Line:** 81
- **Context:** `pub fn cancel(&mut self) {`
- **File:** [`src-tauri/src/commands/player/timers.rs`](src-tauri/src/commands/player/timers.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-032
**Locations:** 1 file(s)
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-033
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### DR-034
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-035
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-036
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-037
**Locations:** 12 file(s)
- **File:** [`src/lib/components/sessions/SessionCard.svelte`](src/lib/components/sessions/SessionCard.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/CastButton.svelte`](src/lib/components/sessions/CastButton.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](src/lib/components/sessions/SessionPickerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sessions.test.ts`](src/lib/stores/sessions.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sessions.ts`](src/lib/stores/sessions.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/lmsSync.ts`](src/lib/stores/lmsSync.ts#L12)
- **Line:** 12
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playbackMode.ts`](src/lib/stores/playbackMode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playbackMode.test.ts`](src/lib/stores/playbackMode.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sessions.rs`](src-tauri/src/commands/sessions.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-038
**Locations:** 9 file(s)
- **File:** [`src/routes/library/music/+page.svelte`](src/routes/library/music/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/home/HeroBanner.svelte`](src/lib/components/home/HeroBanner.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/music.ts`](src/lib/stores/music.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/utils/heroMix.ts`](src/lib/utils/heroMix.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
### DR-039
**Locations:** 8 file(s)
- **File:** [`src/routes/library/music/+page.svelte`](src/routes/library/music/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/home/Carousel.svelte`](src/lib/components/home/Carousel.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/music.ts`](src/lib/stores/music.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### DR-040
**Locations:** 3 file(s)
- **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/people.rs`](src-tauri/src/commands/storage/people.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-041
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/people.rs`](src-tauri/src/commands/storage/people.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-044
**Locations:** 1 file(s)
- **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-045
**Locations:** 1 file(s)
- **File:** [`src/lib/components/BottomNav.svelte`](src/lib/components/BottomNav.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-047
**Locations:** 13 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L11)
- **Line:** 11
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L264)
- **Line:** 264
- **Context:** `function handleMediaLoaded(duration: number): void {`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L340)
- **Line:** 340
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/timers.rs`](src-tauri/src/commands/player/timers.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-048
**Locations:** 6 file(s)
- **File:** [`src/routes/settings/+page.svelte`](src/routes/settings/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L11)
- **Line:** 11
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L340)
- **Line:** 340
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-049
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/timers.rs`](src-tauri/src/commands/player/timers.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-050
**Locations:** 1 file(s)
- **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### DR-051
**Locations:** 2 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/utils/backgroundAudio.ts`](src/lib/utils/backgroundAudio.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
### DR-052
**Locations:** 8 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L38)
- **Line:** 38
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L51)
- **Line:** 51
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.ts`](src/lib/components/player/backgroundAudioHandoff.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.test.ts`](src/lib/components/player/backgroundAudioHandoff.test.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/player/backgroundAudio.commands.test.ts`](src/lib/player/backgroundAudio.commands.test.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L543)
- **Line:** 543
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L623)
- **Line:** 623
- **Context:** `Unknown`
### DR-053
**Locations:** 1 file(s)
- **File:** [`src/lib/utils/pictureInPicture.ts`](src/lib/utils/pictureInPicture.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
### DR-054
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/auth.rs`](src-tauri/src/commands/auth.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-055
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/connectivity.rs`](src-tauri/src/commands/connectivity.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-056
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/pinning.rs`](src-tauri/src/commands/download/pinning.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-057
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/smart_cache.rs`](src-tauri/src/commands/download/smart_cache.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-058
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-059
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/playback_mode.rs`](src-tauri/src/commands/playback_mode.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### DR-060
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### JA-001
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-002
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/auth.rs`](src-tauri/src/commands/auth.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-003
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-004
**Locations:** 3 file(s)
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-005
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-007
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-010
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-011
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-012
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-016
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### JA-017
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-019
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/playlist.rs`](src-tauri/src/commands/playlist.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-020
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/playlist.rs`](src-tauri/src/commands/playlist.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-021
**Locations:** 6 file(s)
- **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](src/lib/components/sessions/SessionPickerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/lmsSync.ts`](src/lib/stores/lmsSync.ts#L12)
- **Line:** 12
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sessions.rs`](src-tauri/src/commands/sessions.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/session_poller/mod.rs`](src-tauri/src/session_poller/mod.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
### JA-022
**Locations:** 3 file(s)
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-023
**Locations:** 3 file(s)
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-024
**Locations:** 2 file(s)
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-025
**Locations:** 4 file(s)
- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](src/lib/components/sessions/SessionPickerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/lmsSync.ts`](src/lib/stores/lmsSync.ts#L12)
- **Line:** 12
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-026
**Locations:** 3 file(s)
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### JA-028
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/storage/thumbnails.rs`](src-tauri/src/commands/storage/thumbnails.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### JA-029
**Locations:** 3 file(s)
- **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-030
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-031
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### JA-032
**Locations:** 9 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1246)
- **Line:** 1246
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.ts`](src/lib/api/repository-client.ts#L178)
- **Line:** 178
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L394)
- **Line:** 394
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L411)
- **Line:** 411
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L444)
- **Line:** 444
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/hybrid.rs`](src-tauri/src/repository/hybrid.rs#L80)
- **Line:** 80
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L435)
- **Line:** 435
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2084)
- **Line:** 2084
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2125)
- **Line:** 2125
- **Context:** `Unknown`
### UR-002
**Locations:** 14 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1956)
- **Line:** 1956
- **Context:** `Unknown`
- **File:** [`src/lib/stores/connectivity.ts`](src/lib/stores/connectivity.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/offlineCatalog.ts`](src/lib/services/offlineCatalog.ts#L14)
- **Line:** 14
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L117)
- **Line:** 117
- **Context:** `pub enum MediaType {`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sync.rs`](src-tauri/src/commands/sync.rs#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L136)
- **Line:** 136
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
- **File:** [`src-tauri/src/storage/schema.rs`](src-tauri/src/storage/schema.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-003
**Locations:** 16 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1860)
- **Line:** 1860
- **Context:** `export type PlaybackProgress = { itemId: string; positionTicks: number...`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1956)
- **Line:** 1956
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/index.ts`](src/lib/player/adapters/index.ts#L11)
- **Line:** 11
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/nativeAdapter.ts`](src/lib/player/adapters/nativeAdapter.ts#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/rustReportHost.ts`](src/lib/player/adapters/rustReportHost.ts#L13)
- **Line:** 13
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39)
- **Line:** 39
- **Context:** `pub fn playback_failed<S: Into<String>>(message: S) -> Self {`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42)
- **Line:** 42
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L117)
- **Line:** 117
- **Context:** `pub enum MediaType {`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-004
**Locations:** 13 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1860)
- **Line:** 1860
- **Context:** `export type PlaybackProgress = { itemId: string; positionTicks: number...`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1956)
- **Line:** 1956
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L39)
- **Line:** 39
- **Context:** `pub fn playback_failed<S: Into<String>>(message: S) -> Self {`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L42)
- **Line:** 42
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L117)
- **Line:** 117
- **Context:** `pub enum MediaType {`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-005
**Locations:** 54 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1974)
- **Line:** 1974
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2179)
- **Line:** 2179
- **Context:** `export type RemoteSessionStatus = { position: number; duration: number...`
- **File:** [`src/lib/components/player/Controls.svelte`](src/lib/components/player/Controls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/BottomUi.svelte`](src/lib/components/BottomUi.svelte#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L105)
- **Line:** 105
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L110)
- **Line:** 110
- **Context:** `async function next() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L115)
- **Line:** 115
- **Context:** `async function previous() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L120)
- **Line:** 120
- **Context:** `async function skipTo(index: number) {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L125)
- **Line:** 125
- **Context:** `async function toggleShuffle() {`
- **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/stores/player.ts`](src/lib/stores/player.ts#L31)
- **Line:** 31
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playerVisibility.test.ts`](src/lib/stores/playerVisibility.test.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/appState.ts`](src/lib/stores/appState.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/utils/duration.test.ts`](src/lib/utils/duration.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/utils/layoutShell.test.ts`](src/lib/utils/layoutShell.test.ts#L14)
- **Line:** 14
- **Context:** `Unknown`
- **File:** [`src/lib/utils/layoutShell.ts`](src/lib/utils/layoutShell.ts#L17)
- **Line:** 17
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L58)
- **Line:** 58
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L89)
- **Line:** 89
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.regression.test.ts`](src/lib/services/playerEvents.regression.test.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L156)
- **Line:** 156
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L186)
- **Line:** 186
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/nativeAdapter.ts`](src/lib/player/adapters/nativeAdapter.ts#L16)
- **Line:** 16
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/rustReportHost.ts`](src/lib/player/adapters/rustReportHost.ts#L13)
- **Line:** 13
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src/lib/player/index.ts`](src/lib/player/index.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L42)
- **Line:** 42
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L46)
- **Line:** 46
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L50)
- **Line:** 50
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L54)
- **Line:** 54
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L58)
- **Line:** 58
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/state.rs`](src-tauri/src/player/state.rs#L25)
- **Line:** 25
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20)
- **Line:** 20
- **Context:** `pub enum RepeatMode {`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/session.rs`](src-tauri/src/commands/player/session.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/conversions.rs`](src-tauri/src/commands/conversions.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-007
**Locations:** 15 file(s)
- **File:** [`src/routes/library/music/+page.svelte`](src/routes/library/music/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/AlphabetScrollBar.svelte`](src/lib/components/library/AlphabetScrollBar.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/music.ts`](src/lib/stores/music.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/services/imageCache.test.ts`](src/lib/services/imageCache.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/imageCache.ts`](src/lib/services/imageCache.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/thumbnails.rs`](src-tauri/src/commands/storage/thumbnails.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-008
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/GenericMediaListPage.searchEvent.test.ts`](src/lib/components/library/GenericMediaListPage.searchEvent.test.ts#L12)
- **Line:** 12
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-009
**Locations:** 15 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L521)
- **Line:** 521
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L537)
- **Line:** 537
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L266)
- **Line:** 266
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L293)
- **Line:** 293
- **Context:** `Unknown`
- **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.test.ts`](src/lib/services/deviceId.test.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/deviceId.ts`](src/lib/services/deviceId.ts#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L24)
- **Line:** 24
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/device.rs`](src-tauri/src/commands/device.rs#L81)
- **Line:** 81
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/jellyfin/client.rs`](src-tauri/src/jellyfin/client.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-010
**Locations:** 15 file(s)
- **File:** [`src/lib/components/sessions/SessionCard.svelte`](src/lib/components/sessions/SessionCard.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/SessionsList.svelte`](src/lib/components/sessions/SessionsList.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/RemoteControls.svelte`](src/lib/components/sessions/RemoteControls.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/CastButton.svelte`](src/lib/components/sessions/CastButton.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/sessions/SessionPickerModal.svelte`](src/lib/components/sessions/SessionPickerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sessions.test.ts`](src/lib/stores/sessions.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sessions.ts`](src/lib/stores/sessions.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/lmsSync.ts`](src/lib/stores/lmsSync.ts#L12)
- **Line:** 12
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playbackMode.ts`](src/lib/stores/playbackMode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/playbackMode.test.ts`](src/lib/stores/playbackMode.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sessions.rs`](src-tauri/src/commands/sessions.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/playback_mode.rs`](src-tauri/src/commands/playback_mode.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/session_poller/mod.rs`](src-tauri/src/session_poller/mod.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
### UR-011
**Locations:** 10 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1956)
- **Line:** 1956
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.ts`](src/lib/stores/downloads.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.test.ts`](src/lib/services/preload.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/preload.ts`](src/lib/services/preload.ts#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/media.rs`](src-tauri/src/player/media.rs#L117)
- **Line:** 117
- **Context:** `pub enum MediaType {`
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L136)
- **Line:** 136
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-012
**Locations:** 9 file(s)
- **File:** [`src/lib/stores/auth.test.ts`](src/lib/stores/auth.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L293)
- **Line:** 293
- **Context:** `Unknown`
- **File:** [`src/lib/stores/auth.ts`](src/lib/stores/auth.ts#L445)
- **Line:** 445
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
- **File:** [`src-tauri/src/credentials.rs`](src-tauri/src/credentials.rs#L10)
- **Line:** 10
- **Context:** `Unknown`
### UR-013
**Locations:** 2 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.ts`](src/lib/stores/downloads.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-014
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/playlist.rs`](src-tauri/src/commands/playlist.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### UR-015
**Locations:** 13 file(s)
- **File:** [`src/lib/stores/queue.test.ts`](src/lib/stores/queue.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L105)
- **Line:** 105
- **Context:** `Unknown`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L110)
- **Line:** 110
- **Context:** `async function next() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L115)
- **Line:** 115
- **Context:** `async function previous() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L120)
- **Line:** 120
- **Context:** `async function skipTo(index: number) {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L125)
- **Line:** 125
- **Context:** `async function toggleShuffle() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L130)
- **Line:** 130
- **Context:** `async function cycleRepeat() {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L135)
- **Line:** 135
- **Context:** `async function removeFromQueue(index: number) {`
- **File:** [`src/lib/stores/queue.ts`](src/lib/stores/queue.ts#L140)
- **Line:** 140
- **Context:** `async function moveInQueue(fromIndex: number, toIndex: number) {`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L20)
- **Line:** 20
- **Context:** `pub enum RepeatMode {`
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
- **File:** [`src-tauri/src/commands/player/queue.rs`](src-tauri/src/commands/player/queue.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-016
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L62)
- **Line:** 62
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L251)
- **Line:** 251
- **Context:** `Unknown`
### UR-017
**Locations:** 9 file(s)
- **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/services/favorites.test.ts`](src/lib/services/favorites.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L64)
- **Line:** 64
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L188)
- **Line:** 188
- **Context:** `Unknown`
- **File:** [`src/lib/services/favorites.ts`](src/lib/services/favorites.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sync.rs`](src-tauri/src/commands/sync.rs#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-018
**Locations:** 3 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/stores/downloads.ts`](src/lib/stores/downloads.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
### UR-019
**Locations:** 12 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UR-020
**Locations:** 4 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-021
**Locations:** 5 file(s)
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/html5Adapter.ts`](src/lib/player/adapters/html5Adapter.ts#L19)
- **Line:** 19
- **Context:** `Unknown`
- **File:** [`src/lib/player/adapters/types.ts`](src/lib/player/adapters/types.ts#L15)
- **Line:** 15
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/series_prefs.rs`](src-tauri/src/commands/storage/series_prefs.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-023
**Locations:** 19 file(s)
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/settings/+page.svelte`](src/routes/settings/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/stores/nextEpisode.ts`](src/lib/stores/nextEpisode.ts#L9)
- **Line:** 9
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/nextEpisodeService.ts`](src/lib/services/nextEpisodeService.ts#L11)
- **Line:** 11
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L264)
- **Line:** 264
- **Context:** `function handleMediaLoaded(duration: number): void {`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L340)
- **Line:** 340
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/timers.rs`](src-tauri/src/commands/player/timers.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-026
**Locations:** 16 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2031)
- **Line:** 2031
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L2221)
- **Line:** 2221
- **Context:** `export type SessionInfo = { id?: string | null; userId?: string | null...`
- **File:** [`src/lib/components/player/SleepTimerModal.svelte`](src/lib/components/player/SleepTimerModal.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/sleepTimer.ts`](src/lib/stores/sleepTimer.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.test.ts`](src/lib/services/playerEvents.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L264)
- **Line:** 264
- **Context:** `function handleMediaLoaded(duration: number): void {`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L301)
- **Line:** 301
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/autoplay.rs`](src-tauri/src/player/autoplay.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81)
- **Line:** 81
- **Context:** `pub fn cancel(&mut self) {`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L6)
- **Line:** 6
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/events.rs`](src-tauri/src/player/events.rs#L23)
- **Line:** 23
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/mod.rs`](src-tauri/src/player/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/timers.rs`](src-tauri/src/commands/player/timers.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-028
**Locations:** 2 file(s)
- **File:** [`src/lib/components/player/AudioPlayer.svelte`](src/lib/components/player/AudioPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/MiniPlayer.svelte`](src/lib/components/player/MiniPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-029
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-030
**Locations:** 2 file(s)
- **File:** [`src/lib/components/library/GenericMediaListPage.svelte`](src/lib/components/library/GenericMediaListPage.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/library.ts`](src/lib/stores/library.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UR-034
**Locations:** 10 file(s)
- **File:** [`src/routes/library/music/+page.svelte`](src/routes/library/music/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/movies/+page.svelte`](src/routes/library/movies/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/routes/library/tv/+page.svelte`](src/routes/library/tv/+page.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/home/Carousel.svelte`](src/lib/components/home/Carousel.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/home/HeroBanner.svelte`](src/lib/components/home/HeroBanner.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/stores/movies.ts`](src/lib/stores/movies.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/tv.ts`](src/lib/stores/tv.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/music.ts`](src/lib/stores/music.ts#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src/lib/utils/heroMix.ts`](src/lib/utils/heroMix.ts#L8)
- **Line:** 8
- **Context:** `Unknown`
### UR-035
**Locations:** 4 file(s)
- **File:** [`src/lib/components/library/CastSection.svelte`](src/lib/components/library/CastSection.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/library/CrewLinks.svelte`](src/lib/components/library/CrewLinks.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/people.rs`](src-tauri/src/commands/storage/people.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### UR-040
**Locations:** 18 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L38)
- **Line:** 38
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L51)
- **Line:** 51
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1246)
- **Line:** 1246
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.ts`](src/lib/api/repository-client.ts#L178)
- **Line:** 178
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L394)
- **Line:** 394
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L411)
- **Line:** 411
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.ts`](src/lib/components/player/backgroundAudioHandoff.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/VideoPlayer.svelte`](src/lib/components/player/VideoPlayer.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.test.ts`](src/lib/components/player/backgroundAudioHandoff.test.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/utils/backgroundAudio.ts`](src/lib/utils/backgroundAudio.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/player/backgroundAudio.commands.test.ts`](src/lib/player/backgroundAudio.commands.test.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L543)
- **Line:** 543
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L623)
- **Line:** 623
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L444)
- **Line:** 444
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/hybrid.rs`](src-tauri/src/repository/hybrid.rs#L80)
- **Line:** 80
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L435)
- **Line:** 435
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2084)
- **Line:** 2084
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2125)
- **Line:** 2125
- **Context:** `Unknown`
### IT-013
**Locations:** 4 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L38)
- **Line:** 38
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L51)
- **Line:** 51
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L543)
- **Line:** 543
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L623)
- **Line:** 623
- **Context:** `Unknown`
### UT-010
**Locations:** 1 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UT-017
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-018
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-019
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-021
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-022
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-023
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-024
**Locations:** 1 file(s)
- **File:** [`src/lib/stores/downloads.test.ts`](src/lib/stores/downloads.test.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
### UT-060
**Locations:** 2 file(s)
- **File:** [`src/lib/components/player/backgroundAudioHandoff.ts`](src/lib/components/player/backgroundAudioHandoff.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/components/player/backgroundAudioHandoff.test.ts`](src/lib/components/player/backgroundAudioHandoff.test.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
### UT-061
**Locations:** 9 file(s)
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L38)
- **Line:** 38
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L51)
- **Line:** 51
- **Context:** `Unknown`
- **File:** [`src/lib/api/bindings.ts`](src/lib/api/bindings.ts#L1246)
- **Line:** 1246
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L394)
- **Line:** 394
- **Context:** `Unknown`
- **File:** [`src/lib/api/repository-client.test.ts`](src/lib/api/repository-client.test.ts#L411)
- **Line:** 411
- **Context:** `Unknown`
- **File:** [`src/lib/player/backgroundAudio.commands.test.ts`](src/lib/player/backgroundAudio.commands.test.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L543)
- **Line:** 543
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/player/mod.rs`](src-tauri/src/commands/player/mod.rs#L623)
- **Line:** 623
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L444)
- **Line:** 444
- **Context:** `Unknown`
### UR-024
**Locations:** 2 file(s)
- **File:** [`src/lib/stores/home.ts`](src/lib/stores/home.ts#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/catalog.rs`](src-tauri/src/commands/catalog.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-025
**Locations:** 14 file(s)
- **File:** [`src/lib/utils/validation.test.ts`](src/lib/utils/validation.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.test.ts`](src/lib/services/playbackReporting.test.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L10)
- **Line:** 10
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L21)
- **Line:** 21
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L89)
- **Line:** 89
- **Context:** `Unknown`
- **File:** [`src/lib/services/playbackReporting.ts`](src/lib/services/playbackReporting.ts#L122)
- **Line:** 122
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L7)
- **Line:** 7
- **Context:** `Unknown`
- **File:** [`src/lib/services/syncService.ts`](src/lib/services/syncService.ts#L64)
- **Line:** 64
- **Context:** `Unknown`
- **File:** [`src/lib/services/playerEvents.ts`](src/lib/services/playerEvents.ts#L156)
- **Line:** 156
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/sync.rs`](src-tauri/src/commands/sync.rs#L5)
- **Line:** 5
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/mod.rs`](src-tauri/src/commands/mod.rs#L2)
- **Line:** 2
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/playback_reporting.rs`](src-tauri/src/commands/playback_reporting.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UR-036
**Locations:** 3 file(s)
- **File:** [`src/lib/components/library/PersonDetailView.svelte`](src/lib/components/library/PersonDetailView.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/storage/people.rs`](src-tauri/src/commands/storage/people.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/commands/repository.rs`](src-tauri/src/commands/repository.rs#L4)
- **Line:** 4
- **Context:** `Unknown`
### UR-039
**Locations:** 1 file(s)
- **File:** [`src/lib/components/BottomNav.svelte`](src/lib/components/BottomNav.svelte#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-041
**Locations:** 1 file(s)
- **File:** [`src/lib/utils/pictureInPicture.ts`](src/lib/utils/pictureInPicture.ts#L4)
- **Line:** 4
- **Context:** `Unknown`
### IT-003
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
### IT-004
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/mpv_backend_test.rs`](src-tauri/src/player/mpv_backend_test.rs#L8)
- **Line:** 8
- **Context:** `Unknown`
### UT-003
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
### UT-004
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
### UT-005
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/queue.rs`](src-tauri/src/player/queue.rs#L535)
- **Line:** 535
- **Context:** `pub enum AddPosition {`
### UT-012
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/sleep_timer.rs`](src-tauri/src/player/sleep_timer.rs#L81)
- **Line:** 81
- **Context:** `pub fn cancel(&mut self) {`
### UT-026
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L251)
- **Line:** 251
- **Context:** `Unknown`
### UT-027
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-028
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-029
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-030
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-031
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-032
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UT-033
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/player/backend.rs`](src-tauri/src/player/backend.rs#L245)
- **Line:** 245
- **Context:** `Unknown`
### UR-022
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-031
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-032
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-033
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/commands/player/settings.rs`](src-tauri/src/commands/player/settings.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
- **File:** [`src-tauri/src/settings.rs`](src-tauri/src/settings.rs#L1)
- **Line:** 1
- **Context:** `Unknown`
### UR-044
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/pinning.rs`](src-tauri/src/commands/download/pinning.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-045
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/smart_cache.rs`](src-tauri/src/commands/download/smart_cache.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-046
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/player/remote.rs`](src-tauri/src/commands/player/remote.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UT-042
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
### UT-043
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/download/mod.rs`](src-tauri/src/commands/download/mod.rs#L1841)
- **Line:** 1841
- **Context:** `Unknown`
### UR-047
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/storage/mod.rs`](src-tauri/src/commands/storage/mod.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UT-044
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/offline.rs`](src-tauri/src/commands/offline.rs#L136)
- **Line:** 136
- **Context:** `Unknown`
### UR-042
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/auth.rs`](src-tauri/src/commands/auth.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UR-043
**Locations:** 1 file(s)
- **File:** [`src-tauri/src/commands/connectivity.rs`](src-tauri/src/commands/connectivity.rs#L3)
- **Line:** 3
- **Context:** `Unknown`
### UT-014
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-015
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-016
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-020
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-025
**Locations:** 2 file(s)
- **File:** [`src-tauri/src/storage/db_service.rs`](src-tauri/src/storage/db_service.rs#L311)
- **Line:** 311
- **Context:** `Unknown`
- **File:** [`src-tauri/src/storage/mod.rs`](src-tauri/src/storage/mod.rs#L157)
- **Line:** 157
- **Context:** `pub fn file_size(&self) -> Option<u64> {`
### UT-059
**Locations:** 3 file(s)
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L435)
- **Line:** 435
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2084)
- **Line:** 2084
- **Context:** `Unknown`
- **File:** [`src-tauri/src/repository/online.rs`](src-tauri/src/repository/online.rs#L2125)
- **Line:** 2125
- **Context:** `Unknown`