participant to parent (TrackPublication)

This commit is contained in:
Hiroshi Horie
2021-12-03 00:57:42 +07:00
parent 2fe32f7d72
commit 4c66704427
6 changed files with 53 additions and 32 deletions
@@ -35,7 +35,9 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
@override
covariant T? track;
final RemoteParticipant _participant;
@override
final RemoteParticipant participant;
bool _enabled = true;
lk_rtc.VideoQuality _videoQuality = lk_rtc.VideoQuality.HIGH;
lk_rtc.VideoQuality get videoQuality => _videoQuality;
@@ -46,11 +48,11 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
Function(void)? _visibilityDidUpdate;
Function? _cancelVisibilityDebounceFunc;
RemoteTrackPublication(
lk_models.TrackInfo info,
this._participant, [
RemoteTrackPublication({
required this.participant,
required lk_models.TrackInfo info,
Track? track,
]) : super.fromInfo(info) {
}) : super(info: info) {
// register dispose func
onDispose(() async {
_cancelVisibilityDebounceFunc?.call();
@@ -142,7 +144,7 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
}
logger.fine('[Visibility] Sending to server ${settings.toProto3Json()}');
_participant.engine.signalClient.sendUpdateTrackSettings(settings);
participant.engine.signalClient.sendUpdateTrackSettings(settings);
}
@internal
@@ -154,7 +156,7 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
// and the attached track is a video track
if (didUpdate &&
newValue != null &&
_participant.engine.connectOptions.optimizeVideo &&
participant.engine.connectOptions.optimizeVideo &&
newValue.kind == lk_models.TrackType.VIDEO) {
//
// Attach visibility event listener (if video track)
@@ -195,9 +197,8 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
// Ideally, we should wait for WebRTC's onRemoveTrack event
// but it does not work reliably across platforms.
// So for now we will assume remove track succeeded.
[_participant.events, _participant.roomEvents]
.emit(TrackUnsubscribedEvent(
participant: _participant,
[participant.events, participant.roomEvents].emit(TrackUnsubscribedEvent(
participant: participant,
track: track!,
publication: this,
));
@@ -212,7 +213,7 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
trackSids: [sid],
subscribe: subscribed,
);
_participant.engine.signalClient.sendUpdateSubscription(subscription);
participant.engine.signalClient.sendUpdateSubscription(subscription);
}
void _sendUpdateTrackSettings() {
@@ -223,6 +224,6 @@ class RemoteTrackPublication<T extends RemoteTrack> extends TrackPublication {
if (kind == lk_models.TrackType.VIDEO) {
settings.quality = _videoQuality;
}
_participant.engine.signalClient.sendUpdateTrackSettings(settings);
participant.engine.signalClient.sendUpdateTrackSettings(settings);
}
}