@@ -30,7 +30,11 @@ import 'types/participant_state.dart' show ParticipantState;
3030import 'types/transcription_segment.dart' ;
3131
3232/// Base type for all LiveKit events.
33- mixin LiveKitEvent {}
33+ mixin LiveKitEvent {
34+ /// Every event must provide a useful textual representation for logging.
35+ @override
36+ String toString ();
37+ }
3438
3539/// Base type for all [Room] events.
3640mixin RoomEvent implements LiveKitEvent {}
@@ -47,6 +51,9 @@ mixin EngineEvent implements LiveKitEvent {}
4751/// Base type for all [SignalClient] events.
4852mixin SignalEvent implements LiveKitEvent {}
4953
54+ /// Base type for internal-only events.
55+ mixin InternalEvent implements LiveKitEvent {}
56+
5057class RoomConnectedEvent with RoomEvent {
5158 final Room room;
5259 final String ? metadata;
@@ -56,7 +63,7 @@ class RoomConnectedEvent with RoomEvent {
5663 });
5764
5865 @override
59- String toString () => '${runtimeType }(room: ${room })' ;
66+ String toString () => '${runtimeType }(room: ${room }, metadata: ${ metadata } )' ;
6067}
6168
6269/// When the connection to the server has been interrupted and it's attempting
@@ -81,7 +88,9 @@ class RoomAttemptReconnectEvent with RoomEvent {
8188 });
8289
8390 @override
84- String toString () => '${runtimeType }()' ;
91+ String toString () => '${runtimeType }'
92+ '(attempt: ${attempt }, maxAttemptsRetry: ${maxAttemptsRetry }, '
93+ 'nextRetryDelaysInMs: ${nextRetryDelaysInMs })' ;
8594}
8695
8796/// Connection to room is re-established. All existing state is preserved.
@@ -102,7 +111,7 @@ class RoomDisconnectedEvent with RoomEvent {
102111 });
103112
104113 @override
105- String toString () => '${runtimeType }($ reason )' ;
114+ String toString () => '${runtimeType }(reason: ${ reason } )' ;
106115}
107116
108117/// Room metadata has changed.
@@ -115,7 +124,7 @@ class RoomMetadataChangedEvent with RoomEvent {
115124 });
116125
117126 @override
118- String toString () => '${runtimeType }()' ;
127+ String toString () => '${runtimeType }(metadata: ${ metadata } )' ;
119128}
120129
121130/// Participant's attributes have changed.
@@ -130,7 +139,8 @@ class ParticipantAttributesChanged with RoomEvent, ParticipantEvent {
130139 });
131140
132141 @override
133- String toString () => '${runtimeType }(participant: ${participant })' ;
142+ String toString () => '${runtimeType }'
143+ '(participant: ${participant }, attributes: ${attributes })' ;
134144}
135145
136146/// Room recording status has changed.
@@ -143,7 +153,7 @@ class RoomRecordingStatusChanged with RoomEvent {
143153 });
144154
145155 @override
146- String toString () => '${runtimeType }(activeRecording = $ activeRecording )' ;
156+ String toString () => '${runtimeType }(activeRecording: ${ activeRecording } )' ;
147157}
148158
149159/// When a new [RemoteParticipant] joins *after* the current participant has connected
@@ -238,8 +248,7 @@ class LocalTrackSubscribedEvent with RoomEvent, ParticipantEvent {
238248 });
239249
240250 @override
241- String toString () => '${runtimeType }'
242- '(trakSid: ${trackSid }})' ;
251+ String toString () => '${runtimeType }(trackSid: ${trackSid })' ;
243252}
244253
245254/// The local participant has unpublished one of their [Track] .
@@ -287,6 +296,10 @@ class TrackSubscriptionExceptionEvent with RoomEvent, ParticipantEvent {
287296 this .sid,
288297 required this .reason,
289298 });
299+
300+ @override
301+ String toString () => '${runtimeType }'
302+ '(participant: ${participant }, sid: ${sid }, reason: ${reason })' ;
290303}
291304
292305/// The [LocalParticipant] has unsubscribed from a track published by a
@@ -370,7 +383,8 @@ class ParticipantMetadataUpdatedEvent with RoomEvent, ParticipantEvent {
370383 });
371384
372385 @override
373- String toString () => '${runtimeType }(participant: ${participant })' ;
386+ String toString () => '${runtimeType }'
387+ '(participant: ${participant }, metadata: ${metadata })' ;
374388}
375389
376390class ParticipantStateUpdatedEvent with RoomEvent , ParticipantEvent {
@@ -417,7 +431,7 @@ class DataReceivedEvent with RoomEvent, ParticipantEvent {
417431
418432 @override
419433 String toString () => '${runtimeType }'
420- '(participant: ${participant }, data: ${data })' ;
434+ '(participant: ${participant }, topic: ${ topic }, data: ${data })' ;
421435}
422436
423437/// The participant's isSpeaking property has changed
@@ -470,7 +484,8 @@ class ParticipantPermissionsUpdatedEvent with RoomEvent, ParticipantEvent {
470484
471485 @override
472486 String toString () => '${runtimeType }'
473- '(participant: ${participant }, permissions: ${permissions })' ;
487+ '(participant: ${participant }, permissions: ${permissions }, '
488+ 'oldPermissions: ${oldPermissions })' ;
474489}
475490
476491/// Transcription event received from the server.
@@ -483,6 +498,11 @@ class TranscriptionEvent with RoomEvent, ParticipantEvent {
483498 required this .publication,
484499 required this .segments,
485500 });
501+
502+ @override
503+ String toString () => '${runtimeType }'
504+ '(participant: ${participant }, publication: ${publication }, '
505+ 'segments: ${segments })' ;
486506}
487507
488508class ParticipantNameUpdatedEvent with RoomEvent , ParticipantEvent {
@@ -505,8 +525,7 @@ class AudioPlaybackStatusChanged with RoomEvent {
505525 });
506526
507527 @override
508- String toString () => '${runtimeType }'
509- 'Audio Playback Status Changed, isPlaying: ${isPlaying })' ;
528+ String toString () => '${runtimeType }(isPlaying: ${isPlaying })' ;
510529}
511530
512531class AudioSenderStatsEvent with TrackEvent {
@@ -519,7 +538,7 @@ class AudioSenderStatsEvent with TrackEvent {
519538
520539 @override
521540 String toString () => '${runtimeType }'
522- 'stats: ${stats })' ;
541+ '( stats: ${stats }, currentBitrate: ${ currentBitrate })' ;
523542}
524543
525544class VideoSenderStatsEvent with TrackEvent {
@@ -534,7 +553,8 @@ class VideoSenderStatsEvent with TrackEvent {
534553
535554 @override
536555 String toString () => '${runtimeType }'
537- 'stats: ${stats })' ;
556+ '(stats: ${stats }, bitrateForLayers: ${bitrateForLayers }, '
557+ 'currentBitrate: ${currentBitrate })' ;
538558}
539559
540560class AudioReceiverStatsEvent with TrackEvent {
@@ -547,7 +567,7 @@ class AudioReceiverStatsEvent with TrackEvent {
547567
548568 @override
549569 String toString () => '${runtimeType }'
550- 'stats: ${stats })' ;
570+ '( stats: ${stats }, currentBitrate: ${ currentBitrate })' ;
551571}
552572
553573class VideoReceiverStatsEvent with TrackEvent {
@@ -560,7 +580,7 @@ class VideoReceiverStatsEvent with TrackEvent {
560580
561581 @override
562582 String toString () => '${runtimeType }'
563- 'stats: ${stats })' ;
583+ '( stats: ${stats }, currentBitrate: ${ currentBitrate })' ;
564584}
565585
566586class AudioVisualizerEvent with TrackEvent {
@@ -572,8 +592,7 @@ class AudioVisualizerEvent with TrackEvent {
572592 });
573593
574594 @override
575- String toString () => '${runtimeType }'
576- 'track: ${track })' ;
595+ String toString () => '${runtimeType }(track: ${track }, event: ${event })' ;
577596}
578597
579598class TrackProcessorUpdateEvent with TrackEvent {
@@ -586,7 +605,7 @@ class TrackProcessorUpdateEvent with TrackEvent {
586605
587606 @override
588607 String toString () => '${runtimeType }'
589- 'track: ${track })' ;
608+ '( track: ${track }, processor: ${ processor })' ;
590609}
591610
592611/// Pre-connect audio buffer has started recording.
0 commit comments