chore: Use `fireCallEvent` instead of emit.
This commit is contained in:
parent
1f519703a8
commit
9bc35a216a
|
|
@ -301,6 +301,7 @@ class CallSession {
|
||||||
late User remoteUser;
|
late User remoteUser;
|
||||||
late CallParty hangupParty;
|
late CallParty hangupParty;
|
||||||
late String hangupReason;
|
late String hangupReason;
|
||||||
|
late CallError lastError;
|
||||||
|
|
||||||
SDPStreamMetadata? remoteSDPStreamMetadata;
|
SDPStreamMetadata? remoteSDPStreamMetadata;
|
||||||
List<RTCRtpSender> usermediaSenders = [];
|
List<RTCRtpSender> usermediaSenders = [];
|
||||||
|
|
@ -383,7 +384,7 @@ class CallSession {
|
||||||
Logs().v('[VOIP] Call invite has expired. Hanging up.');
|
Logs().v('[VOIP] Call invite has expired. Hanging up.');
|
||||||
hangupParty = CallParty.kRemote; // effectively
|
hangupParty = CallParty.kRemote; // effectively
|
||||||
setCallState(CallState.kEnded);
|
setCallState(CallState.kEnded);
|
||||||
emit(CallEvent.kHangup);
|
fireCallEvent(CallEvent.kHangup);
|
||||||
}
|
}
|
||||||
ringingTimer?.cancel();
|
ringingTimer?.cancel();
|
||||||
ringingTimer = null;
|
ringingTimer = null;
|
||||||
|
|
@ -447,7 +448,7 @@ class CallSession {
|
||||||
final newLocalOnHold = await isLocalOnHold();
|
final newLocalOnHold = await isLocalOnHold();
|
||||||
if (prevLocalOnHold != newLocalOnHold) {
|
if (prevLocalOnHold != newLocalOnHold) {
|
||||||
localHold = newLocalOnHold;
|
localHold = newLocalOnHold;
|
||||||
emit(CallEvent.kLocalHoldUnhold, newLocalOnHold);
|
fireCallEvent(CallEvent.kLocalHoldUnhold);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -470,14 +471,14 @@ class CallSession {
|
||||||
} else {
|
} else {
|
||||||
Logs().i('Not found purpose for remote stream $streamId, remove it?');
|
Logs().i('Not found purpose for remote stream $streamId, remove it?');
|
||||||
wpstream.stopped = true;
|
wpstream.stopped = true;
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void onSDPStreamMetadataReceived(SDPStreamMetadata metadata) async {
|
void onSDPStreamMetadataReceived(SDPStreamMetadata metadata) async {
|
||||||
_updateRemoteSDPStreamMetadata(metadata);
|
_updateRemoteSDPStreamMetadata(metadata);
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onCandidatesReceived(List<dynamic> candidates) {
|
void onCandidatesReceived(List<dynamic> candidates) {
|
||||||
|
|
@ -508,7 +509,7 @@ class CallSession {
|
||||||
|
|
||||||
void onAssertedIdentityReceived(AssertedIdentity identity) async {
|
void onAssertedIdentityReceived(AssertedIdentity identity) async {
|
||||||
remoteAssertedIdentity = identity;
|
remoteAssertedIdentity = identity;
|
||||||
emit(CallEvent.kAssertedIdentityChanged);
|
fireCallEvent(CallEvent.kAssertedIdentityChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get screensharingEnabled => localScreenSharingStream != null;
|
bool get screensharingEnabled => localScreenSharingStream != null;
|
||||||
|
|
@ -536,10 +537,9 @@ class CallSession {
|
||||||
_addLocalStream(stream, SDPStreamMetadataPurpose.Screenshare);
|
_addLocalStream(stream, SDPStreamMetadataPurpose.Screenshare);
|
||||||
return true;
|
return true;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
emit(
|
fireCallEvent(CallEvent.kError);
|
||||||
CallEvent.kError,
|
lastError = CallError(CallErrorCode.NoUserMedia,
|
||||||
CallError(CallErrorCode.NoUserMedia,
|
'Failed to get screen-sharing stream: ', err);
|
||||||
'Failed to get screen-sharing stream: ', err));
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -550,8 +550,8 @@ class CallSession {
|
||||||
await track.stop();
|
await track.stop();
|
||||||
}
|
}
|
||||||
localScreenSharingStream!.stopped = true;
|
localScreenSharingStream!.stopped = true;
|
||||||
_removeStream(localScreenSharingStream!.stream!);
|
await _removeStream(localScreenSharingStream!.stream!);
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -576,7 +576,7 @@ class CallSession {
|
||||||
);
|
);
|
||||||
await newStream.initialize();
|
await newStream.initialize();
|
||||||
streams.add(newStream);
|
streams.add(newStream);
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addToPeerConnection) {
|
if (addToPeerConnection) {
|
||||||
|
|
@ -591,7 +591,7 @@ class CallSession {
|
||||||
usermediaSenders.add(await pc!.addTrack(track, stream));
|
usermediaSenders.add(await pc!.addTrack(track, stream));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (purpose == SDPStreamMetadataPurpose.Usermedia) {
|
if (purpose == SDPStreamMetadataPurpose.Usermedia) {
|
||||||
|
|
@ -637,15 +637,13 @@ class CallSession {
|
||||||
await newStream.initialize();
|
await newStream.initialize();
|
||||||
streams.add(newStream);
|
streams.add(newStream);
|
||||||
}
|
}
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
Logs().i('Pushed remote stream (id="${stream.id}", purpose=$purpose)');
|
Logs().i('Pushed remote stream (id="${stream.id}", purpose=$purpose)');
|
||||||
}
|
}
|
||||||
|
|
||||||
void setCallState(CallState newState) {
|
void setCallState(CallState newState) {
|
||||||
final oldState = state;
|
|
||||||
state = newState;
|
|
||||||
_callStateController.add(newState);
|
_callStateController.add(newState);
|
||||||
emit(CallEvent.kState, state, oldState);
|
fireCallEvent(CallEvent.kState);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setLocalVideoMuted(bool muted) {
|
void setLocalVideoMuted(bool muted) {
|
||||||
|
|
@ -672,7 +670,7 @@ class CallSession {
|
||||||
: TransceiverDirection.SendRecv);
|
: TransceiverDirection.SendRecv);
|
||||||
}
|
}
|
||||||
_updateMuteStatus();
|
_updateMuteStatus();
|
||||||
emit(CallEvent.kRemoteHoldUnhold, remoteOnHold);
|
fireCallEvent(CallEvent.kRemoteHoldUnhold);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get isRemoteOnHold => remoteOnHold;
|
bool get isRemoteOnHold => remoteOnHold;
|
||||||
|
|
@ -792,7 +790,7 @@ class CallSession {
|
||||||
cleanUp();
|
cleanUp();
|
||||||
voip.delegate.handleCallEnded(this);
|
voip.delegate.handleCallEnded(this);
|
||||||
if (shouldEmit) {
|
if (shouldEmit) {
|
||||||
emit(CallEvent.kHangup, this);
|
fireCallEvent(CallEvent.kHangup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1048,7 +1046,7 @@ class CallSession {
|
||||||
}
|
}
|
||||||
final wpstream = it.first;
|
final wpstream = it.first;
|
||||||
streams.removeWhere((element) => element.stream!.id == stream.id);
|
streams.removeWhere((element) => element.stream!.id == stream.id);
|
||||||
emit(CallEvent.kFeedsChanged, streams);
|
fireCallEvent(CallEvent.kFeedsChanged);
|
||||||
await wpstream.dispose();
|
await wpstream.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1078,7 +1076,7 @@ class CallSession {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void emit(CallEvent event, [dynamic arg1, dynamic arg2, dynamic arg3]) {
|
void fireCallEvent(CallEvent event) {
|
||||||
_callEventController.add(event);
|
_callEventController.add(event);
|
||||||
Logs().i('CallEvent: ${event.toString()}');
|
Logs().i('CallEvent: ${event.toString()}');
|
||||||
switch (event) {
|
switch (event) {
|
||||||
|
|
@ -1104,28 +1102,19 @@ class CallSession {
|
||||||
|
|
||||||
void _getLocalOfferFailed(dynamic err) {
|
void _getLocalOfferFailed(dynamic err) {
|
||||||
Logs().e('Failed to get local offer ${err.toString()}');
|
Logs().e('Failed to get local offer ${err.toString()}');
|
||||||
|
fireCallEvent(CallEvent.kError);
|
||||||
emit(
|
lastError = CallError(
|
||||||
CallEvent.kError,
|
CallErrorCode.LocalOfferFailed, 'Failed to get local offer!', err);
|
||||||
CallError(
|
|
||||||
CallErrorCode.LocalOfferFailed,
|
|
||||||
'Failed to get local offer!',
|
|
||||||
err,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
terminate(CallParty.kLocal, CallErrorCode.LocalOfferFailed, false);
|
terminate(CallParty.kLocal, CallErrorCode.LocalOfferFailed, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getUserMediaFailed(dynamic err) {
|
void _getUserMediaFailed(dynamic err) {
|
||||||
Logs().w('Failed to get user media - ending call ${err.toString()}');
|
Logs().w('Failed to get user media - ending call ${err.toString()}');
|
||||||
emit(
|
fireCallEvent(CallEvent.kError);
|
||||||
CallEvent.kError,
|
lastError = CallError(
|
||||||
CallError(
|
|
||||||
CallErrorCode.NoUserMedia,
|
CallErrorCode.NoUserMedia,
|
||||||
'Couldn\'t start capturing media! Is your microphone set up and does this app have permission?',
|
'Couldn\'t start capturing media! Is your microphone set up and does this app have permission?',
|
||||||
err,
|
err);
|
||||||
),
|
|
||||||
);
|
|
||||||
terminate(CallParty.kLocal, CallErrorCode.NoUserMedia, false);
|
terminate(CallParty.kLocal, CallErrorCode.NoUserMedia, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue