Connection quality (#27)
* update protos * signal event * implemented * format * implement example * protocol 5 * icon size
This commit is contained in:
@@ -8,6 +8,7 @@ import '../managers/event.dart';
|
||||
import '../proto/livekit_models.pb.dart' as lk_models;
|
||||
import '../support/disposable.dart';
|
||||
import '../track/track_publication.dart';
|
||||
import '../types.dart';
|
||||
import 'remote_participant.dart';
|
||||
|
||||
/// Represents a Participant in the room, notifies changes via delegates as
|
||||
@@ -43,6 +44,8 @@ abstract class Participant extends DisposableChangeNotifier
|
||||
lk_models.ParticipantInfo? _participantInfo;
|
||||
bool _isSpeaking = false;
|
||||
|
||||
ConnectionQuality _connectionQuality = ConnectionQuality.unknown;
|
||||
|
||||
// suppport for multiple event listeners
|
||||
final EventsEmitter<RoomEvent> roomEvents;
|
||||
|
||||
@@ -66,6 +69,9 @@ abstract class Participant extends DisposableChangeNotifier
|
||||
|
||||
bool get hasVideo => videoTracks.isNotEmpty;
|
||||
|
||||
/// Connection quality of the participant
|
||||
ConnectionQuality get connectionQuality => _connectionQuality;
|
||||
|
||||
/// tracks that are subscribed to
|
||||
List<TrackPublication> get subscribedTracks =>
|
||||
trackPublications.values.where((e) => e.subscribed).toList();
|
||||
@@ -120,6 +126,16 @@ abstract class Participant extends DisposableChangeNotifier
|
||||
}
|
||||
}
|
||||
|
||||
@internal
|
||||
void updateConnectionQuality(ConnectionQuality quality) {
|
||||
if (_connectionQuality == quality) return;
|
||||
_connectionQuality = quality;
|
||||
[events, roomEvents].emit(ParticipantConnectionQualityUpdatedEvent(
|
||||
participant: this,
|
||||
connectionQuality: _connectionQuality,
|
||||
));
|
||||
}
|
||||
|
||||
/// for internal use
|
||||
/// {@nodoc}
|
||||
@internal
|
||||
|
||||
Reference in New Issue
Block a user