utd_live_room_kit library

Classes

RoomSeatState
Full seat state from the backend _seats namespace.
SeatState
Represents one tile in the live room: index 0 = host, 1..N = guest tiles. (On the wire this is a backend "seat" — the tile IS the seat.)
SpeakerRequest
Represents a pending speaker request.
UTDApiClient
HTTP client for the UTD Stream Engine API.
UTDAvatarWaves
A circular avatar with animated "sound wave" pulse rings.
UTDBanApi
REST API client for the UTD Stream Engine user-ban endpoints.
UTDBanListPage
One page of the paginated bans list.
UTDBanManagementSheet
Default host/admin view of the project's active bans, with an unban action.
UTDBannedUser
A single active ban row from GET /api/v1/rooms/bans.
UTDBanNotice
A ban notice delivered to the local (banned) user.
UTDBanUserAttributes
Attributes snapshotted for a banned user (mirrors the participant attributes the client set: fr, frt, avatar, cn). All fields are optional — the whole object is null when the user was offline at ban time.
UTDChatController
UTDChatMessage
UTDConnectErrorView
Default view shown when the room fails to connect and the consumer did not supply onConnectError. Replaces the otherwise-infinite loader with a clear message and Retry / Exit actions.
UTDConstants
UTD Audio Room Kit constants.
UTDDefaultAvatar
Default circular avatar for a seat occupant.
UTDDefaultControlsBar
The package's built-in role-aware controls bar (used when the consumer does not supply controlsBarWidget).
UTDDefaultRoomHeader
Built-in header shown when the host app does not supply its own config.headerWidget. It is intentionally minimal — a transparent bar with a top SafeArea holding just two affordances so a room is usable out of the box: a minimize button (left) and an exit button (right).
UTDLiveRoom
A LiveKit-based video live room.
UTDLiveRoomConfig
Configuration for UTDLiveRoom.
UTDLiveStage
The live video stage.
UTDLiveTile
A single live video tile.
UTDLiveTileActionSheet
Per-tile actions for a live room, opened by tapping a guest tile.
UTDMediaController
Controls mic, camera, and speaker state. Mic/camera/speaker controls.
UTDMemberListSheet
Default member list: every participant, with host/admin moderation actions (mute/unmute, remove from seat, invite, ban) and owner-only promote/demote.
UTDMemberRow
A single participant row used by the default member list / invite sheets: avatar + name + optional role badge + trailing action widgets.
UTDMessageBatcher
UTDMessageInputSheet
UTDMessageRouter
UTDMinimizeConfig
UTDMinimizeController
UTDMinimizeData
UTDMiniOverlayMachine
UTDMiniOverlayPage
UTDMiniPopScope
UTDParticipant
Represents a participant in the audio room. Replaces UTDParticipant.
UTDParticipantApi
REST API client for participant-level, server-authoritative media control.
UTDPipController
Drives Android OS-level Picture-in-Picture for the audio room, alongside the in-app minimize overlay (UTDMinimizeController).
UTDPipView
Compact, view-only content rendered inside the Android system PiP window while UTDRoomController.pip reports isInPip == true.
UTDReconnectionHandler
UTDRequestQueueSheet
Default host/admin queue of pending speak requests, with approve / reject.
UTDRoleApi
REST API client for the UTD Stream Engine role endpoints.
UTDRoleChangeEvent
The realtime _role_change data message, broadcast to ALL participants whenever a role changes.
UTDRoleChangeResult
Result of PUT .../role{ identity, role, previous_role }.
UTDRoleListPage
One page of the paginated list-by-role response.
UTDRoleUser
A single participant row from GET .../participants/by-role.
UTDRoleUserAttributes
Attributes returned for a participant by list-by-role (mirrors the participant attributes the client set: fr, frt, avatar, cn). Fields are empty strings if the user is not currently connected.
UTDRoomController
UTDRoomManager
Wraps LiveKit Room and exposes a simplified API. The kit's central RTC engine + UI handle.
UTDRoomScope
Carries the room's theme, strings, controller and a few config flags down to the package's built-in default widgets via the element tree.
UTDRoomStrings
User-facing strings for the package's built-in default UI.
UTDRoomTheme
Color tokens for the package's built-in default UI (seats, controls bar, action sheets, dialogs, chat bubbles…).
UTDSeatController
Drives the live_stream stage: the host plus host-invited co-publishers.
UTDSheetAction
A simple tappable row used inside the default sheets: leading icon + label, with an optional destructive color.
UTDSheetInlineError
A compact, in-context error banner for use INSIDE a modal sheet that stays open after a failed action (member list, request queue, ban list). A snackbar there renders behind the sheet, so these sheets surface failures inline instead. Pair with a String? state field that you set on failure and clear after a few seconds.
UTDStageApi
REST client for the live_stream stage endpoints.
UTDSyncManager
UTDTokenApi
UTDTokenResponse
Response model returned by the UTD Stream Engine token generation API.

Enums

UTDBanSource
Where a forced-exit notice originated — affects how much info is available and which message is shown. (Most are bans; signedInElsewhere is a single-active-session takeover, surfaced through the same exit funnel.)
UTDConnectionState
Connection state for the room.
UTDMiniOverlayState
UTDRole
The known engine roles, lowest → highest privilege.
UTDVideoQuality
Video publish quality for the local camera (host and guests).

Functions

showUTDRoomSheet<T>(BuildContext context, {required WidgetBuilder builder}) Future<T?>
Shows a themed modal bottom sheet for the package's built-in default UI.
utdRoleFromString(String? value) UTDRole?
Parses a wire role string to a UTDRole; returns null if unknown.
utdRoleToString(UTDRole role) String
Serializes a UTDRole to its wire string (e.g. UTDRole.admin'admin').
utdShowSnack(BuildContext context, String message) → void
Shows a brief snackbar using the nearest ScaffoldMessenger. Safe no-op if the context is no longer mounted or has no messenger.
utdShowSnackVia(ScaffoldMessengerState? messenger, String message) → void
Shows a snackbar via an already-captured ScaffoldMessengerState.

Typedefs

MessageHandler = void Function(Map<String, dynamic> data, BuildContext context)
MiniOverlayBuilder = Widget Function({required VoidCallback onClose, required VoidCallback onRestore})

Exceptions / Errors

UTDBannedException
Thrown by token generation when the server returns 403 User is banned.
UTDRateLimitedException
Thrown on a 429 from the token endpoint — either the per-(project, identity, device) issuance rate limit, or the single-session takeover cooldown (a session is already active on another device and was claimed too recently to supersede). Callers should back off and retry, NOT hammer the endpoint.
UTDServiceNotAvailableException
Thrown on a non-ban 403 from the token endpoint — the project has NOT activated live streaming (e.g. Type 'live_stream' is not enabled for this project) in the dashboard. Distinct from UTDBannedException so the UI can say "not available" (retrying can't help) instead of showing the ban flow.
UTDTokenException
Thrown when token generation fails for a non-ban reason (network/timeout, engine 5xx, malformed body). Carries the HTTP statusCode when available so callers can tell a transport failure apart from an engine error.