Skip to content

Commit c082ac3

Browse files
committed
chore: add fromMap/toMap.
1 parent 0a64f33 commit c082ac3

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

lib/src/rtc_rtp_capabilities.dart

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,73 @@ class RTCRtpCodecCapability {
44
required this.clockRate,
55
required this.mimeType,
66
this.sdpFmtpLine});
7+
factory RTCRtpCodecCapability.fromMap(Map<dynamic, dynamic> map) {
8+
return RTCRtpCodecCapability(
9+
channels: map['channels'],
10+
clockRate: map['clockRate'],
11+
mimeType: map['mimeType'],
12+
sdpFmtpLine: map['sdpFmtpLine'],
13+
);
14+
}
715
num? channels;
816
num clockRate;
917
String mimeType;
1018
String? sdpFmtpLine;
19+
Map<String, dynamic> toMap() {
20+
return {
21+
'channels': channels,
22+
'clockRate': clockRate,
23+
'mimeType': mimeType,
24+
if (sdpFmtpLine != null) 'sdpFmtpLine': sdpFmtpLine,
25+
};
26+
}
1127
}
1228

1329
class RTCRtpHeaderExtensionCapability {
1430
RTCRtpHeaderExtensionCapability(this.uri);
31+
factory RTCRtpHeaderExtensionCapability.fromMap(Map<dynamic, dynamic> map) {
32+
return RTCRtpHeaderExtensionCapability(map['uri']);
33+
}
1534
String uri;
35+
Map<String, dynamic> toMap() {
36+
return {
37+
'uri': uri,
38+
};
39+
}
1640
}
1741

1842
class RTCRtpCapabilities {
1943
RTCRtpCapabilities({this.codecs, this.headerExtensions, this.fecMechanisms});
44+
factory RTCRtpCapabilities.fromMap(Map<dynamic, dynamic> map) {
45+
var codecs = <RTCRtpCodecCapability>[];
46+
dynamic codecsMap = map['codecs'];
47+
codecsMap.forEach((params) {
48+
codecs.add(RTCRtpCodecCapability.fromMap(params));
49+
});
50+
var headerExtensions = <RTCRtpHeaderExtensionCapability>[];
51+
dynamic headerExtensionsMap = map['headerExtensions'];
52+
headerExtensionsMap.forEach((params) {
53+
headerExtensions.add(RTCRtpHeaderExtensionCapability.fromMap(params));
54+
});
55+
var fecMechanisms = <String>[];
56+
dynamic fecMechanismsMap = map['fecMechanisms'];
57+
fecMechanismsMap.forEach((params) {
58+
fecMechanisms.add(params);
59+
});
60+
return RTCRtpCapabilities(
61+
codecs: codecs,
62+
headerExtensions: headerExtensions,
63+
fecMechanisms: fecMechanisms);
64+
}
2065
List<RTCRtpCodecCapability>? codecs;
2166
List<RTCRtpHeaderExtensionCapability>? headerExtensions;
2267
List<String>? fecMechanisms;
68+
69+
Map<String, dynamic> toMap() {
70+
return {
71+
'codecs': codecs?.map((e) => e.toMap()).toList(),
72+
'headerExtensions': headerExtensions?.map((e) => e.toMap()).toList(),
73+
'fecMechanisms': fecMechanisms,
74+
};
75+
}
2376
}

0 commit comments

Comments
 (0)