diff --git a/livekit-api/livekit/api/__init__.py b/livekit-api/livekit/api/__init__.py index b5581cc5..709a142e 100644 --- a/livekit-api/livekit/api/__init__.py +++ b/livekit-api/livekit/api/__init__.py @@ -17,11 +17,11 @@ # flake8: noqa # re-export packages from protocol -from livekit.protocol.egress import * -from livekit.protocol.ingress import * -from livekit.protocol.models import * -from livekit.protocol.room import * -from livekit.protocol.webhook import * +from livekit.protocol.egress import * # type: ignore +from livekit.protocol.ingress import * # type: ignore +from livekit.protocol.models import * # type: ignore +from livekit.protocol.room import * # type: ignore +from livekit.protocol.webhook import * # type: ignore from .twirp_client import TwirpError, TwirpErrorCode from .livekit_api import LiveKitAPI diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index aa5ad879..be9f8400 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -76,6 +76,16 @@ class RoomOptions: rtc_config: Optional[RtcConfiguration] = None +@dataclass +class DataPacket: + data: bytes + kind: proto_room.DataPacketKind.ValueType + participant: Optional[ + RemoteParticipant + ] = None # None when the data has been sent by a server SDK + topic: Optional[str] = None + + class ConnectError(Exception): def __init__(self, message: str): self.message = message @@ -372,10 +382,12 @@ def _on_room_event(self, event: proto_room.RoomEvent): rparticipant = self.participants[event.data_received.participant_sid] self.emit( "data_received", - data, - event.data_received.kind, - rparticipant, - event.data_received.topic, + DataPacket( + data=data, + kind=event.data_received.kind, + participant=rparticipant, + topic=event.data_received.topic, + ), ) elif which == "e2ee_state_changed": sid = event.e2ee_state_changed.participant_sid