8000 Add platformIs[Desktop|Mobile|Web] methods. · hicodeboy/flutter-webrtc@b5e64f9 · GitHub
[go: up one dir, main page]

Skip to content

Commit b5e64f9

Browse files
committed
Add platformIs[Desktop|Mobile|Web] methods.
1 parent eeeb76f commit b5e64f9

File tree

5 files changed

+88
-75
lines changed

5 files changed

+88
-75
lines changed

example/lib/main.dart

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
import 'dart:core';
2-
import 'dart:io';
32
import 'package:flutter/material.dart';
43
import 'package:flutter/foundation.dart'
54
show debugDefaultTargetPlatformOverride;
5+
import 'package:flutter_webrtc/webrtc.dart';
66

77
import 'src/loopback_sample.dart';
88
import 'src/get_user_media_sample.dart'
9-
if (dart.library.js) 'src/get_user_media_sample_web.dart';
9+
if (dart.library.js) 'src/get_user_media_sample_web.dart';
1010
import 'src/get_display_media_sample.dart';
1111
import 'src/data_channel_sample.dart';
1212
import 'src/route_item.dart';
1313

14-
bool isDesktop() {
15-
return Platform.isWindows || Platform.isLinux || Platform.isMacOS;
16-
}
17-
18-
void main(){
19-
if(isDesktop())
20-
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
14+
void main() {
15+
if (WebRTC.platformIsDesktop)
16+
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
2117
runApp(new MyApp());
2218
}
2319

lib/enums.dart

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,70 @@ enum RTCVideoViewObjectFit {
4040
RTCVideoViewObjectFitContain,
4141
RTCVideoViewObjectFitCover,
4242
}
43+
44+
RTCIceConnectionState iceConnectionStateForString(String state) {
45+
switch (state) {
46+
case "new":
47+
return RTCIceConnectionState.RTCIceConnectionStateNew;
48+
case "checking":
49+
return RTCIceConnectionState.RTCIceConnectionStateChecking;
50+
case "connected":
51+
return RTCIceConnectionState.RTCIceConnectionStateConnected;
52+
case "completed":
53+
return RTCIceConnectionState.RTCIceConnectionStateCompleted;
54+
case "failed":
55+
return RTCIceConnectionState.RTCIceConnectionStateFailed;
56+
case "disconnected":
57+
return RTCIceConnectionState.RTCIceConnectionStateDisconnected;
58+
case "closed":
59+
return RTCIceConnectionState.RTCIceConnectionStateClosed;
60+
case "count":
61+
return RTCIceConnectionState.RTCIceConnectionStateCount;
62+
}
63+
return RTCIceConnectionState.RTCIceConnectionStateClosed;
64+
}
65+
66+
RTCIceGatheringState iceGatheringStateforString(String state) {
67+
switch (state) {
68+
case "new":
69+
return RTCIceGatheringState.RTCIceGatheringStateNew;
70+
case "gathering":
71+
return RTCIceGatheringState.RTCIceGatheringStateGathering;
72+
case "complete":
73+
return RTCIceGatheringState.RTCIceGatheringStateComplete;
74+
}
75+
return RTCIceGatheringState.RTCIceGatheringStateNew;
76+
}
77+
78+
RTCSignalingState signalingStateForString(String state) {
79+
switch (state) {
80+
case "stable":
81+
return RTCSignalingState.RTCSignalingStateStable;
82+
case "have-local-offer":
83+
return RTCSignalingState.RTCSignalingStateHaveLocalOffer;
84+
case "have-local-pranswer":
85+
return RTCSignalingState.RTCSignalingStateHaveLocalPrAnswer;
86+
case "have-remote-offer":
87+
return RTCSignalingState.RTCSignalingStateHaveRemoteOffer;
88+
case "have-remote-pranswer":
89+
return RTCSignalingState.RTCSignalingStateHaveRemotePrAnswer;
90+
case "closed":
91+
return RTCSignalingState.RTCSignalingStateClosed;
92+
}
93+
return RTCSignalingState.RTCSignalingStateClosed;
94+
}
95+
96+
RTCDataChannelState rtcDataChannelStateForString(String state) {
97+
switch (state) {
98+
case "connecting":
99+
return RTCDataChannelState.RTCDataChannelConnecting;
100+
case "open":
101+
return RTCDataChannelState.RTCDataChannelOpen;
102+
case "closing":
103+
return RTCDataChannelState.RTCDataChannelClosing;
104+
case "closed":
105+
return RTCDataChannelState.RTCDataChannelClosed;
106+
}
107+
return RTCDataChannelState.RTCDataChannelClosed;
108+
}
109+

lib/utils.dart

Lines changed: 7 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,15 @@
1-
import 'dart:io' show Platform;
1+
import 'dart:io';
22
import 'package:flutter/services.dart';
3-
import 'enums.dart';
43

54
class WebRT 10000 C {
6-
static const MethodChannel _channel = const MethodChannel('FlutterWebRTC.Method');
5+
static const MethodChannel _channel =
6+
const MethodChannel('FlutterWebRTC.Method');
77
static MethodChannel methodChannel() => _channel;
8-
}
98

10-
RTCIceConnectionState iceConnectionStateForString(String state) {
11-
switch (state) {
12-
case "new":
13-
return RTCIceConnectionState.RTCIceConnectionStateNew;
14-
case "checking":
15-
return RTCIceConnectionState.RTCIceConnectionStateChecking;
16-
case "connected":
17-
return RTCIceConnectionState.RTCIceConnectionStateConnected;
18-
case "completed":
19-
return RTCIceConnectionState.RTCIceConnectionStateCompleted;
20-
case "failed":
21-
return RTCIceConnectionState.RTCIceConnectionStateFailed;
22-
case "disconnected":
23-
return RTCIceConnectionState.RTCIceConnectionStateDisconnected;
24-
case "closed":
25-
return RTCIceConnectionState.RTCIceConnectionStateClosed;
26-
case "count":
27-
return RTCIceConnectionState.RTCIceConnectionStateCount;
28-
}
29-
return RTCIceConnectionState.RTCIceConnectionStateClosed;
30-
}
9+
static bool get platformIsDesktop =>
10+
Platform.isWindows || Platform.isLinux || Platform.isMacOS;
3111

32-
RTCIceGatheringState iceGatheringStateforString(String state) {
33-
switch (state) {
34-
case "new":
35-
return RTCIceGatheringState.RTCIceGatheringStateNew;
36-
case "gathering":
37-
return RTCIceGatheringState.RTCIceGatheringStateGathering;
38-
case "complete":
39-
return RTCIceGatheringState.RTCIceGatheringStateComplete;
40-
}
41-
return RTCIceGatheringState.RTCIceGatheringStateNew;
42-
}
43-
44-
RTCSignalingState signalingStateForString(String state) {
45-
switch (state) {
46-
case "stable":
47-
return RTCSignalingState.RTCSignalingStateStable;
48-
case "have-local-offer":
49-
return RTCSignalingState.RTCSignalingStateHaveLocalOffer;
50-
case "have-local-pranswer":
51-
return RTCSignalingState.RTCSignalingStateHaveLocalPrAnswer;
52-
case "have-remote-offer":
53-
return RTCSignalingState.RTCSignalingStateHaveRemoteOffer;
54-
case "have-remote-pranswer":
55-
return RTCSignalingState.RTCSignalingStateHaveRemotePrAnswer;
56-
case "closed":
57-
return RTCSignalingState.RTCSignalingStateClosed;
58-
}
59-
return RTCSignalingState.RTCSignalingStateClosed;
60-
}
12+
static bool get platformIsMobile => Platform.isIOS || Platform.isAndroid;
6113

62-
RTCDataChannelState rtcDataChannelStateForString(String state) {
63-
switch (state) {
64-
case "connecting":
65-
return RTCDataChannelState.RTCDataChannelConnecting;
66-
case "open":
67-
return RTCDataChannelState.RTCDataChannelOpen;
68-
case "closing":
69-
return RTCDataChannelState.RTCDataChannelClosing;
70-
case "closed":
71-
return RTCDataChannelState.RTCDataChannelClosed;
72-
}
73-
return RTCDataChannelState.RTCDataChannelClosed;
14+
static bool get platformIsWeb => false;
7415
}

lib/web/utils.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
class WebRTC {
3+
static bool get platformIsDesktop => false;
4+
5+
static bool get platformIsMobile => false;
6+
7+
static bool get platformIsWeb => true;
8+
}

lib/webrtc.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ export 'rtc_peerconnection_factory.dart'
1414
if (dart.library.js) 'web/rtc_peerconnection_factory.dart';
1515
export 'rtc_stats_report.dart';
1616
export 'media_recorder.dart' if (dart.library.js) 'web/media_recorder.dart';
17+
export 'utils.dart' if (dart.library.js) 'web/utils.dart';
1718
export 'enums.dart';

0 commit comments

Comments
 (0)
0