Package-level declarations

Types

Link copied to clipboard
class BunnyCastOptionsProvider : OptionsProvider

Points the Cast framework at the Bunny Stream receiver application.

Link copied to clipboard

Converts Media3 MediaItems to the Cast MediaInfo shape the Bunny receiver expects. media3's DefaultMediaItemConverter serializes a Media3-specific JSON payload the Bunny receiver ignores; this converter instead emits the documented Bunny sender contract:

Link copied to clipboard

Builds the Bunny receiver's LoadRequest customData: Widevine DRM configuration plus embed theming, mirroring what the web sender ships. The receiver validates every value and falls back to its defaults for anything missing, so fields are simply omitted when not configured.

Link copied to clipboard

Applies local track/rate selections to the active cast session via the standard media commands — the same messages the receiver gets from every other sender platform, so it needs no custom handling.

Link copied to clipboard

Receiver track IDs are assigned by the receiver from its own manifest parse (plus the sender's sideloaded caption tracks), so local track order need not match. Matching mirrors the web sender: language exact → language primary subtag → name.

Link copied to clipboard
data class RemoteTrack(val id: Long, val isAudio: Boolean, val language: String?, val name: String?)

A receiver media track, decoupled from the GMS MediaTrack class so the matching logic stays pure and unit-testable.