LiveKit C++ SDK
Real-time audio/video SDK for C++
Loading...
Searching...
No Matches
room_delegate.h
1/*
2 * Copyright 2025 LiveKit
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an “AS IS” BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#pragma once
18
19#include "livekit/room_event_types.h"
20
21namespace livekit {
22
23class Room;
24
35public:
36 virtual ~RoomDelegate() = default;
37
38 // ------------------------------------------------------------------
39 // Participant lifecycle
40 // ------------------------------------------------------------------
41
47
54
55 // ------------------------------------------------------------------
56 // Local track publication events
57 // ------------------------------------------------------------------
58
63 }
64
70
76
77 // ------------------------------------------------------------------
78 // Remote track publication/subscription
79 // ------------------------------------------------------------------
80
84 virtual void onTrackPublished(Room &, const TrackPublishedEvent &) {}
85
89 virtual void onTrackUnpublished(Room &, const TrackUnpublishedEvent &) {}
90
94 virtual void onTrackSubscribed(Room &, const TrackSubscribedEvent &) {}
95
100
106 }
107
111 virtual void onTrackMuted(Room &, const TrackMutedEvent &) {}
112
116 virtual void onTrackUnmuted(Room &, const TrackUnmutedEvent &) {}
117
118 // ------------------------------------------------------------------
119 // Active speakers
120 // ------------------------------------------------------------------
121
127
128 // ------------------------------------------------------------------
129 // Room info / metadata
130 // ------------------------------------------------------------------
131
136 }
137
141 virtual void onRoomSidChanged(Room &, const RoomSidChangedEvent &) {}
142
146 virtual void onRoomUpdated(Room &, const RoomUpdatedEvent &) {}
147
151 virtual void onRoomMoved(Room &, const RoomMovedEvent &) {}
152
153 // ------------------------------------------------------------------
154 // Participant info changes
155 // ------------------------------------------------------------------
156
160 virtual void
163
169
173 virtual void
176
182
183 // ------------------------------------------------------------------
184 // Connection quality / state
185 // ------------------------------------------------------------------
186
190 virtual void
192
198
202 virtual void onDisconnected(Room &, const DisconnectedEvent &) {}
203
207 virtual void onReconnecting(Room &, const ReconnectingEvent &) {}
208
212 virtual void onReconnected(Room &, const ReconnectedEvent &) {}
213
214 // ------------------------------------------------------------------
215 // E2EE
216 // ------------------------------------------------------------------
217
222
223 // ------------------------------------------------------------------
224 // EOS
225 // ------------------------------------------------------------------
226
231 virtual void onRoomEos(Room &, const RoomEosEvent &) {}
232
233 // ------------------------------------------------------------------
234 // Data / transcription / chat
235 // ------------------------------------------------------------------
236
241
245 virtual void onSipDtmfReceived(Room &, const SipDtmfReceivedEvent &) {}
246
247 // ------------------------------------------------------------------
248 // Data streams
249 // ------------------------------------------------------------------
250
254 virtual void
256
262 }
263
267 virtual void
269
275
276 // ------------------------------------------------------------------
277 // High-level byte/text streams
278 // ------------------------------------------------------------------
279
284
289
290 // ------------------------------------------------------------------
291 // Participants snapshot
292 // ------------------------------------------------------------------
293
298 }
299};
300
301} // namespace livekit
Definition room_delegate.h:34
virtual void onTrackUnmuted(Room &, const TrackUnmutedEvent &)
Definition room_delegate.h:116
virtual void onByteStreamOpened(Room &, const ByteStreamOpenedEvent &)
Definition room_delegate.h:283
virtual void onLocalTrackUnpublished(Room &, const LocalTrackUnpublishedEvent &)
Definition room_delegate.h:68
virtual void onRoomSidChanged(Room &, const RoomSidChangedEvent &)
Definition room_delegate.h:141
virtual void onParticipantsUpdated(Room &, const ParticipantsUpdatedEvent &)
Definition room_delegate.h:297
virtual void onRoomUpdated(Room &, const RoomUpdatedEvent &)
Definition room_delegate.h:146
virtual void onLocalTrackPublished(Room &, const LocalTrackPublishedEvent &)
Definition room_delegate.h:62
virtual void onParticipantConnected(Room &, const ParticipantConnectedEvent &)
Definition room_delegate.h:45
virtual void onParticipantMetadataChanged(Room &, const ParticipantMetadataChangedEvent &)
Definition room_delegate.h:161
virtual void onUserPacketReceived(Room &, const UserDataPacketEvent &)
Definition room_delegate.h:240
virtual void onActiveSpeakersChanged(Room &, const ActiveSpeakersChangedEvent &)
Definition room_delegate.h:125
virtual void onTrackPublished(Room &, const TrackPublishedEvent &)
Definition room_delegate.h:84
virtual void onTrackSubscriptionFailed(Room &, const TrackSubscriptionFailedEvent &)
Definition room_delegate.h:104
virtual void onConnectionQualityChanged(Room &, const ConnectionQualityChangedEvent &)
Definition room_delegate.h:191
virtual void onDisconnected(Room &, const DisconnectedEvent &)
Definition room_delegate.h:202
virtual void onParticipantAttributesChanged(Room &, const ParticipantAttributesChangedEvent &)
Definition room_delegate.h:174
virtual void onTrackMuted(Room &, const TrackMutedEvent &)
Definition room_delegate.h:111
virtual void onReconnecting(Room &, const ReconnectingEvent &)
Definition room_delegate.h:207
virtual void onLocalTrackSubscribed(Room &, const LocalTrackSubscribedEvent &)
Definition room_delegate.h:74
virtual void onParticipantNameChanged(Room &, const ParticipantNameChangedEvent &)
Definition room_delegate.h:167
virtual void onRoomEos(Room &, const RoomEosEvent &)
Definition room_delegate.h:231
virtual void onDataChannelBufferedAmountLowThresholdChanged(Room &, const DataChannelBufferedAmountLowThresholdChangedEvent &)
Definition room_delegate.h:273
virtual void onTrackUnsubscribed(Room &, const TrackUnsubscribedEvent &)
Definition room_delegate.h:99
virtual void onSipDtmfReceived(Room &, const SipDtmfReceivedEvent &)
Definition room_delegate.h:245
virtual void onConnectionStateChanged(Room &, const ConnectionStateChangedEvent &)
Definition room_delegate.h:196
virtual void onDataStreamHeaderReceived(Room &, const DataStreamHeaderReceivedEvent &)
Definition room_delegate.h:255
virtual void onParticipantDisconnected(Room &, const ParticipantDisconnectedEvent &)
Definition room_delegate.h:51
virtual void onRoomMoved(Room &, const RoomMovedEvent &)
Definition room_delegate.h:151
virtual void onRoomMetadataChanged(Room &, const RoomMetadataChangedEvent &)
Definition room_delegate.h:135
virtual void onReconnected(Room &, const ReconnectedEvent &)
Definition room_delegate.h:212
virtual void onParticipantEncryptionStatusChanged(Room &, const ParticipantEncryptionStatusChangedEvent &)
Definition room_delegate.h:180
virtual void onDataStreamTrailerReceived(Room &, const DataStreamTrailerReceivedEvent &)
Definition room_delegate.h:268
virtual void onTextStreamOpened(Room &, const TextStreamOpenedEvent &)
Definition room_delegate.h:288
virtual void onTrackUnpublished(Room &, const TrackUnpublishedEvent &)
Definition room_delegate.h:89
virtual void onE2eeStateChanged(Room &, const E2eeStateChangedEvent &)
Definition room_delegate.h:221
virtual void onDataStreamChunkReceived(Room &, const DataStreamChunkReceivedEvent &)
Definition room_delegate.h:260
virtual void onTrackSubscribed(Room &, const TrackSubscribedEvent &)
Definition room_delegate.h:94
Definition room.h:89
Definition room_event_types.h:473
Definition room_event_types.h:668
Definition room_event_types.h:550
Definition room_event_types.h:593
Definition room_event_types.h:635
Definition room_event_types.h:624
Definition room_event_types.h:646
Definition room_event_types.h:601
Definition room_event_types.h:714
Definition room_event_types.h:360
Definition room_event_types.h:379
Definition room_event_types.h:371
Definition room_event_types.h:528
Definition room_event_types.h:341
Definition room_event_types.h:349
Definition room_event_types.h:539
Definition room_event_types.h:500
Definition room_event_types.h:514
Definition room_event_types.h:706
Definition room_event_types.h:614
Definition room_event_types.h:609
Definition room_event_types.h:619
Definition room_event_types.h:481
Definition room_event_types.h:698
Definition room_event_types.h:492
Definition room_event_types.h:690
Definition room_event_types.h:579
Definition room_event_types.h:679
Definition room_event_types.h:451
Definition room_event_types.h:387
Definition room_event_types.h:409
Definition room_event_types.h:437
Definition room_event_types.h:462
Definition room_event_types.h:398
Definition room_event_types.h:423
Definition room_event_types.h:561