Skip to content

Commit 0929ca9

Browse files
authored
feat: support LocalTrackSubscribedEvent. (#578)
1 parent c3f5ff2 commit 0929ca9

File tree

6 files changed

+48
-0
lines changed

6 files changed

+48
-0
lines changed

example/lib/pages/room.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ class _RoomPageState extends State<RoomPage> {
9999
'Attempting to reconnect ${event.attempt}/${event.maxAttemptsRetry}, '
100100
'(${event.nextRetryDelaysInMs}ms delay until next attempt)');
101101
})
102+
..on<LocalTrackSubscribedEvent>((event) {
103+
print('Local track subscribed: ${event.trackSid}');
104+
})
102105
..on<LocalTrackPublishedEvent>((_) => _sortParticipants())
103106
..on<LocalTrackUnpublishedEvent>((_) => _sortParticipants())
104107
..on<TrackSubscribedEvent>((_) => _sortParticipants())

lib/src/core/engine.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,11 @@ class Engine extends Disposable with EventsEmittable<EngineEvent> {
10151015
await publisher!.addIceCandidate(event.candidate);
10161016
}
10171017
})
1018+
..on<SignalLocalTrackSubscribedEvent>((event) async {
1019+
events.emit(EngineLocalTrackSubscribedEvent(
1020+
trackSid: event.trackSid,
1021+
));
1022+
})
10181023
..on<SignalTokenUpdatedEvent>((event) {
10191024
logger.fine('Server refreshed the token');
10201025
token = event.token;

lib/src/core/room.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,13 @@ class Room extends DisposableChangeNotifier with EventsEmittable<RoomEvent> {
526526
notifyListeners();
527527
}
528528
})
529+
..on<EngineLocalTrackSubscribedEvent>(
530+
(event) => events.emit(
531+
LocalTrackSubscribedEvent(
532+
trackSid: event.trackSid,
533+
),
534+
),
535+
)
529536
..on<EngineActiveSpeakersUpdateEvent>(
530537
(event) => _onEngineActiveSpeakersUpdateEvent(event.speakers))
531538
..on<EngineDataPacketReceivedEvent>(_onDataMessageEvent)

lib/src/core/signal_client.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,11 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
281281
trackSid: msg.trackUnpublished.trackSid,
282282
));
283283
break;
284+
case lk_rtc.SignalResponse_Message.trackSubscribed:
285+
events.emit(SignalLocalTrackSubscribedEvent(
286+
trackSid: msg.trackSubscribed.trackSid,
287+
));
288+
break;
284289
case lk_rtc.SignalResponse_Message.speakersChanged:
285290
events.emit(
286291
SignalSpeakersChangedEvent(speakers: msg.speakersChanged.speakers));

lib/src/events.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,17 @@ class LocalTrackPublishedEvent with RoomEvent, ParticipantEvent {
228228
'(participant: ${participant}, publication: ${publication})';
229229
}
230230

231+
class LocalTrackSubscribedEvent with RoomEvent, ParticipantEvent {
232+
final String trackSid;
233+
const LocalTrackSubscribedEvent({
234+
required this.trackSid,
235+
});
236+
237+
@override
238+
String toString() => '${runtimeType}'
239+
'(trakSid: ${trackSid}})';
240+
}
241+
231242
/// The local participant has unpublished one of their [Track].
232243
/// Emitted by [Room] and [LocalParticipant].
233244
class LocalTrackUnpublishedEvent with RoomEvent, ParticipantEvent {

lib/src/internal/events.dart

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,14 @@ class EngineDisconnectedEvent with InternalEvent, EngineEvent {
169169
});
170170
}
171171

172+
@internal
173+
class EngineLocalTrackSubscribedEvent with InternalEvent, EngineEvent {
174+
final String trackSid;
175+
const EngineLocalTrackSubscribedEvent({
176+
required this.trackSid,
177+
});
178+
}
179+
172180
@internal
173181
class EngineFullRestartingEvent with InternalEvent, EngineEvent {
174182
const EngineFullRestartingEvent();
@@ -297,6 +305,15 @@ class SignalTrackUnpublishedEvent with SignalEvent, InternalEvent {
297305
});
298306
}
299307

308+
@internal
309+
class SignalLocalTrackSubscribedEvent with SignalEvent, InternalEvent {
310+
final String trackSid;
311+
312+
const SignalLocalTrackSubscribedEvent({
313+
required this.trackSid,
314+
});
315+
}
316+
300317
@internal
301318
class SignalRoomUpdateEvent with SignalEvent, InternalEvent {
302319
final lk_models.Room room;

0 commit comments

Comments
 (0)