@@ -172,15 +172,72 @@ class RTCPeerConnectionWeb extends RTCPeerConnection {
172
172
@override
173
173
RTCSignalingState ? get signalingState => _signalingState;
174
174
175
+ @override
176
+ Future <RTCSignalingState ?> getSignalingState () async {
177
+ _signalingState = signalingStateForString (_jsPc.signalingState);
178
+ return signalingState;
179
+ }
180
+
175
181
@override
176
182
RTCIceGatheringState ? get iceGatheringState => _iceGatheringState;
177
183
184
+ @override
185
+ Future <RTCIceGatheringState ?> getIceGatheringState () async {
186
+ _iceGatheringState = iceGatheringStateforString (_jsPc.iceGatheringState);
187
+ return _iceGatheringState;
188
+ }
189
+
178
190
@override
179
191
RTCIceConnectionState ? get iceConnectionState => _iceConnectionState;
180
192
193
+ @override
194
+ Future <RTCIceConnectionState ?> getIceConnectionState () async {
195
+ _iceConnectionState = iceConnectionStateForString (_jsPc.iceConnectionState);
196
+ if (browser.isFirefox) {
197
+ switch (_iceConnectionState! ) {
198
+ case RTCIceConnectionState .RTCIceConnectionStateNew :
199
+ _connectionState = RTCPeerConnectionState .RTCPeerConnectionStateNew ;
200
+ break ;
201
+ case RTCIceConnectionState .RTCIceConnectionStateChecking :
202
+ _connectionState =
203
+ RTCPeerConnectionState .RTCPeerConnectionStateConnecting ;
204
+ break ;
205
+ case RTCIceConnectionState .RTCIceConnectionStateConnected :
206
+ _connectionState =
207
+ RTCPeerConnectionState .RTCPeerConnectionStateConnected ;
208
+ break ;
209
+ case RTCIceConnectionState .RTCIceConnectionStateFailed :
210
+ _connectionState =
211
+ RTCPeerConnectionState .RTCPeerConnectionStateFailed ;
212
+ break ;
213
+ case RTCIceConnectionState .RTCIceConnectionStateDisconnected :
214
+ _connectionState =
215
+ RTCPeerConnectionState .RTCPeerConnectionStateDisconnected ;
216
+ break ;
217
+ case RTCIceConnectionState .RTCIceConnectionStateClosed :
218
+ _connectionState =
219
+ RTCPeerConnectionState .RTCPeerConnectionStateClosed ;
220
+ break ;
221
+ default :
222
+ break ;
223
+ }
224
+ }
225
+ return _iceConnectionState;
226
+ }
227
+
181
228
@override
182
229
RTCPeerConnectionState ? get connectionState => _connectionState;
183
230
231
+ @override
232
+ Future <RTCPeerConnectionState ?> getConnectionState () async {
233
+ if (browser.isFirefox) {
234
+ await getIceConnectionState ();
235
+ } else {
236
+ _connectionState = peerConnectionStateForString (_jsPc.connectionState);
237
+ }
238
+ return _connectionState;
239
+ }
240
+
184
241
@override
185
242
Future <void > dispose () {
186
243
_jsPc.close ();
0 commit comments