Rockbox open source high quality audio player as a Music Player Daemon
mpris
rockbox
mpd
libadwaita
audio
rust
zig
deno
1"""Python SDK for Rockbox.
2
3Quick start::
4
5 import asyncio
6 from rockbox_sdk import RockboxClient, PlaybackStatus
7
8 async def main():
9 async with RockboxClient(host="localhost") as client:
10 track = await client.playback.current_track()
11 if track:
12 print(f"Now: {track.title} — {track.artist}")
13 await client.playback.play()
14
15 asyncio.run(main())
16"""
17
18from __future__ import annotations
19
20from .api import (
21 BluetoothApi,
22 BrowseApi,
23 CreatePlaylistInput,
24 CreateSmartPlaylistInput,
25 DevicesApi,
26 LibraryApi,
27 PlaybackApi,
28 PlaylistApi,
29 SavedPlaylistsApi,
30 SettingsApi,
31 SmartPlaylistsApi,
32 SoundApi,
33 SystemApi,
34 UpdatePlaylistInput,
35 UpdateSmartPlaylistInput,
36)
37from .client import RockboxClient, RockboxClientBuilder, RockboxClientConfig
38from .errors import RockboxError, RockboxGraphQLError, RockboxNetworkError
39from .events import (
40 PLAYLIST_CHANGED,
41 STATUS_CHANGED,
42 TRACK_CHANGED,
43 WS_CLOSE,
44 WS_ERROR,
45 WS_OPEN,
46 EventEmitter,
47)
48from .plugin import PluginContext, PluginRegistry, RockboxPlugin
49from .types import (
50 Album,
51 Artist,
52 BluetoothDevice,
53 ChannelConfig,
54 CompressorSettings,
55 Device,
56 Entry,
57 EqBandSetting,
58 InsertPosition,
59 PartialUserSettings,
60 PlaybackStatus,
61 Playlist,
62 RepeatMode,
63 ReplaygainSettings,
64 ReplaygainType,
65 SavedPlaylist,
66 SavedPlaylistFolder,
67 SearchResults,
68 SmartPlaylist,
69 SystemStatus,
70 Track,
71 TrackStats,
72 UserSettings,
73 VolumeInfo,
74 is_directory,
75)
76
77__version__ = "0.1.0"
78
79__all__ = [
80 # Client
81 "RockboxClient",
82 "RockboxClientBuilder",
83 "RockboxClientConfig",
84 # APIs (re-exported in case users want to mock them)
85 "BluetoothApi",
86 "BrowseApi",
87 "DevicesApi",
88 "LibraryApi",
89 "PlaybackApi",
90 "PlaylistApi",
91 "SavedPlaylistsApi",
92 "SettingsApi",
93 "SmartPlaylistsApi",
94 "SoundApi",
95 "SystemApi",
96 # Inputs
97 "CreatePlaylistInput",
98 "CreateSmartPlaylistInput",
99 "UpdatePlaylistInput",
100 "UpdateSmartPlaylistInput",
101 # Errors
102 "RockboxError",
103 "RockboxGraphQLError",
104 "RockboxNetworkError",
105 # Plugin system
106 "PluginContext",
107 "PluginRegistry",
108 "RockboxPlugin",
109 # Events
110 "EventEmitter",
111 "TRACK_CHANGED",
112 "STATUS_CHANGED",
113 "PLAYLIST_CHANGED",
114 "WS_OPEN",
115 "WS_CLOSE",
116 "WS_ERROR",
117 # Enums
118 "ChannelConfig",
119 "InsertPosition",
120 "PlaybackStatus",
121 "RepeatMode",
122 "ReplaygainType",
123 # Models
124 "Album",
125 "Artist",
126 "BluetoothDevice",
127 "CompressorSettings",
128 "Device",
129 "Entry",
130 "EqBandSetting",
131 "PartialUserSettings",
132 "Playlist",
133 "ReplaygainSettings",
134 "SavedPlaylist",
135 "SavedPlaylistFolder",
136 "SearchResults",
137 "SmartPlaylist",
138 "SystemStatus",
139 "Track",
140 "TrackStats",
141 "UserSettings",
142 "VolumeInfo",
143 # Helpers
144 "is_directory",
145 "__version__",
146]