Skip to content

Commit e51afff

Browse files
authored
[Windows] Upgrade to m97. (#977)
* Add PeerConnectionState. * Cleanup when peerconnection disposed.
1 parent baa5a2b commit e51afff

File tree

7 files changed

+80
-729
lines changed

7 files changed

+80
-729
lines changed

common/cpp/include/flutter_peerconnection.h

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class FlutterPeerConnectionObserver : public RTCPeerConnectionObserver {
1616
std::string& peerConnectionId);
1717

1818
virtual void OnSignalingState(RTCSignalingState state) override;
19+
virtual void OnPeerConnectionState(RTCPeerConnectionState state) override;
1920
virtual void OnIceGatheringState(RTCIceGatheringState state) override;
2021
virtual void OnIceConnectionState(RTCIceConnectionState state) override;
2122
virtual void OnIceCandidate(

common/cpp/src/flutter_peerconnection.cc

+33
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,9 @@ void FlutterPeerConnection::RTCPeerConnectionDispose(
255255
auto it = base_->peerconnection_observers_.find(uuid);
256256
if (it != base_->peerconnection_observers_.end())
257257
base_->peerconnection_observers_.erase(it);
258+
auto it2 = base_->peerconnections_.find(uuid);
259+
if (it2 != base_->peerconnections_.end())
260+
base_->peerconnections_.erase(it2);
258261
result->Success();
259262
}
260263

@@ -900,6 +903,7 @@ static const char* signalingStateString(RTCSignalingState state) {
900903
}
901904
return "";
902905
}
906+
903907
void FlutterPeerConnectionObserver::OnSignalingState(RTCSignalingState state) {
904908
if (event_sink_ != nullptr) {
905909
EncodableMap params;
@@ -909,6 +913,35 @@ void FlutterPeerConnectionObserver::OnSignalingState(RTCSignalingState state) {
909913
}
910914
}
911915

916+
917+
static const char *peerConnectionStateString(RTCPeerConnectionState state) {
918+
switch (state) {
919+
case RTCPeerConnectionStateNew:
920+
return "new";
921+
case RTCPeerConnectionStateConnecting:
922+
return "connecting";
923+
case RTCPeerConnectionStateConnected:
924+
return "connected";
925+
case RTCPeerConnectionStateDisconnected:
926+
return "disconnected";
927+
case RTCPeerConnectionStateFailed:
928+
return "failed";
929+
case RTCPeerConnectionStateClosed:
930+
return "closed";
931+
}
932+
return "";
933+
}
934+
935+
936+
void FlutterPeerConnectionObserver::OnPeerConnectionState(RTCPeerConnectionState state) {
937+
if (event_sink_ != nullptr) {
938+
EncodableMap params;
939+
params[EncodableValue("event")] = "peerConnectionState";
940+
params[EncodableValue("state")] = peerConnectionStateString(state);
941+
event_sink_->Success(EncodableValue(params));
942+
}
943+
}
944+
912945
static const char* iceGatheringStateString(RTCIceGatheringState state) {
913946
switch (state) {
914947
case RTCIceGatheringStateNew:

0 commit comments

Comments
 (0)