PlaybackRemote: pause, unpause, and seek a Playback Session #14
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
mobrule/kurageyomi#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#1
What to build
The plugin gains the ability to act on a Playback Session rather than only observe one.
PlaybackRemotepauses, unpauses, and seeks the session the phone is following, exposed over authenticated data endpoints alongside the existing ones.Seeking takes a position in ticks. The caller decides where that came from — the phone knows where Cues begin, the server does not need to.
This is the module the PRD lists and the one ADR 0007 said would arrive eventually. It is deliberately thin: it forwards to Jellyfin's session APIs and holds no policy. Auto-pause, per-Cue transport, and follow mode are all built on it later and none of their behaviour belongs here.
The PRD marks this module as one where a test would assert the mock rather than any behaviour of ours, and that judgement stands for the pass-through itself. It does not extend to anything this slice adds on top: argument construction, tick conversion, or refusing a command for a session that is not playing all get tests.
Acceptance criteria
Blocked by
None - can start immediately
Merged to
maininaf73452. Suites at merge: 79 C#, 335 phone.Pause, unpause and seek a Playback Session, over authenticated endpoints. Deliberately thin: it forwards to Jellyfin and holds no policy.
The acceptance criterion about converting ticks was wrong — Jellyfin's
SeekPositionTicksis already the same 100ns unit as the Playhead, verified by reflecting overMediaBrowser.Model.dllrather than from memory. A comment records it so nobody adds a conversion later.Another user's Playback Session returns 404, not 403: a housemate's television is not ours to drive, and 404 does not confirm the session exists.