Something went wrong. Try again.
A modern, network-enabled music player platform built on Rockbox technology. rockboxd.tsiry-sandratraina.com
rust deno navidrome airplay libadwaita zig mpris snapcast mpd rockbox audio subsonic
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556#!/usr/bin/env python"""Interactive IPython console with the Python binding preloaded.
Run: `uv run python console.py` (install IPython first: `uv pip install ipython`;falls back to the plain REPL when IPython is absent).
Loads rockbox_ffi and points FIXTURE at a bundled sample track so you can pokeat metadata / Dsp / Player straight away."""
from __future__ import annotations
from pathlib import Path
import rockbox_ffi as rbfrom rockbox_ffi import Dsp, Player, metadatafrom rockbox_ffi.enums import ( ChannelConfig, CrossfadeMode, DspReplayGainMode, MixMode, ReplayGainMode,)
REPO = Path(__file__).resolve().parents[2] # bindings/python/console.py -> repo rootFIXTURE = REPO / "crates" / "rocksky" / "fixtures" / "08 - Internet Money - Speak(Explicit).m4a"
BANNER = f"""rockbox_ffi — ABI {rb.abi_version()}Loaded: rb, metadata, Dsp, Player + enums. FIXTURE = a sample track.Try: metadata.read(str(FIXTURE)) metadata.probe("song.flac") p = Player(volume=0.6); p.set_queue([str(FIXTURE)]); p.play()"""
def main() -> None: ns = { "rb": rb, "metadata": metadata, "Dsp": Dsp, "Player": Player, "FIXTURE": FIXTURE, "DspReplayGainMode": DspReplayGainMode, "ReplayGainMode": ReplayGainMode, "CrossfadeMode": CrossfadeMode, "MixMode": MixMode, "ChannelConfig": ChannelConfig, } try: from IPython import start_ipython start_ipython(argv=[], user_ns=ns, display_banner=False) print() # IPython prints its own; keep our banner above it except ImportError: import code code.interact(banner=BANNER, local=ns)
if __name__ == "__main__": print(BANNER) main()