Rockbox open source high quality audio player as a Music Player Daemon
mpris
rockbox
mpd
libadwaita
audio
rust
zig
deno
1"""01 — Basic playback.
2
3Inspect the current track, then either pause or resume based on state.
4Idempotent: run twice and it toggles between Playing and Paused.
5
6 uv run python examples/01_basic_playback.py
7"""
8
9from __future__ import annotations
10
11import asyncio
12
13from _client import create_client, fmt_time # type: ignore[import-not-found]
14
15from rockbox_sdk import PlaybackStatus
16
17
18async def main() -> None:
19 async with create_client() as client:
20 status = await client.playback.status()
21 print(f"Status: {status.name}")
22
23 track = await client.playback.current_track()
24 if track:
25 pct = round((track.elapsed / track.length) * 100) if track.length else 0
26 print(f"Now: {track.title} — {track.artist}")
27 print(f" {fmt_time(track.elapsed)} / {fmt_time(track.length)} ({pct}%)")
28 else:
29 print("Nothing is playing.")
30
31 if status == PlaybackStatus.PLAYING:
32 await client.playback.pause()
33 print("→ paused")
34 elif status == PlaybackStatus.PAUSED:
35 await client.playback.resume()
36 print("→ resumed")
37
38
39if __name__ == "__main__":
40 asyncio.run(main())