@100mslive/react-native-hms 0.7.3 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +37 -39
  2. package/android/.gradle/checksums/checksums.lock +0 -0
  3. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  4. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  5. package/android/.project +34 -0
  6. package/android/build.gradle +1 -2
  7. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +268 -232
  8. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +122 -12
  9. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +143 -508
  10. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +935 -0
  11. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +34 -22
  12. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  13. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +9 -13
  14. package/ios/HmsDecoder.swift +168 -33
  15. package/ios/HmsHelper.swift +121 -1
  16. package/ios/HmsManager.m +20 -14
  17. package/ios/HmsManager.swift +122 -394
  18. package/ios/HmsSDK.swift +784 -0
  19. package/ios/HmsView.swift +16 -8
  20. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  21. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
  22. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  23. package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
  24. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
  25. package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
  26. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
  27. package/lib/commonjs/classes/HMSConfig.js +3 -7
  28. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  29. package/lib/commonjs/classes/HMSEncoder.js +65 -35
  30. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  31. package/lib/commonjs/classes/HMSException.js +30 -0
  32. package/lib/commonjs/classes/HMSException.js.map +1 -0
  33. package/lib/commonjs/classes/HMSHelper.js +2 -2
  34. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  35. package/lib/commonjs/classes/HMSLocalAudioTrack.js +39 -1
  36. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  37. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  38. package/lib/commonjs/classes/HMSLocalVideoTrack.js +28 -2
  39. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  40. package/lib/commonjs/classes/HMSLogger.js +28 -1
  41. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  42. package/lib/commonjs/classes/HMSPeer.js +3 -0
  43. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  44. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  45. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  46. package/lib/commonjs/classes/HMSPermissions.js +6 -0
  47. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  48. package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
  49. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
  50. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +21 -0
  51. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  52. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  53. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +21 -0
  54. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  55. package/lib/commonjs/classes/HMSRoom.js +9 -0
  56. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  57. package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
  58. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
  59. package/lib/commonjs/classes/HMSSDK.js +419 -151
  60. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  61. package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
  62. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
  63. package/lib/commonjs/classes/HMSTrack.js +8 -18
  64. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  65. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  66. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  67. package/lib/commonjs/classes/HMSTrackType.js +14 -0
  68. package/lib/commonjs/classes/HMSTrackType.js.map +1 -0
  69. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  70. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  71. package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
  72. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
  73. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  74. package/lib/commonjs/classes/HMSVideoTrack.js +2 -0
  75. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  76. package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
  77. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  78. package/lib/commonjs/classes/HmsView.js +10 -7
  79. package/lib/commonjs/classes/HmsView.js.map +1 -1
  80. package/lib/commonjs/index.js +112 -0
  81. package/lib/commonjs/index.js.map +1 -1
  82. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  83. package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
  84. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  85. package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
  86. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
  87. package/lib/module/classes/HMSCameraFacing.js +7 -0
  88. package/lib/module/classes/HMSCameraFacing.js.map +1 -0
  89. package/lib/module/classes/HMSConfig.js +3 -7
  90. package/lib/module/classes/HMSConfig.js.map +1 -1
  91. package/lib/module/classes/HMSEncoder.js +64 -35
  92. package/lib/module/classes/HMSEncoder.js.map +1 -1
  93. package/lib/module/classes/HMSException.js +21 -0
  94. package/lib/module/classes/HMSException.js.map +1 -0
  95. package/lib/module/classes/HMSHelper.js +2 -2
  96. package/lib/module/classes/HMSHelper.js.map +1 -1
  97. package/lib/module/classes/HMSLocalAudioTrack.js +37 -2
  98. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  99. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  100. package/lib/module/classes/HMSLocalVideoTrack.js +25 -2
  101. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  102. package/lib/module/classes/HMSLogger.js +28 -1
  103. package/lib/module/classes/HMSLogger.js.map +1 -1
  104. package/lib/module/classes/HMSPeer.js +3 -0
  105. package/lib/module/classes/HMSPeer.js.map +1 -1
  106. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  107. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  108. package/lib/module/classes/HMSPermissions.js +6 -0
  109. package/lib/module/classes/HMSPermissions.js.map +1 -1
  110. package/lib/module/classes/HMSRTMPConfig.js +17 -0
  111. package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
  112. package/lib/module/classes/HMSRemoteAudioTrack.js +18 -0
  113. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  114. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  115. package/lib/module/classes/HMSRemoteVideoTrack.js +18 -0
  116. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  117. package/lib/module/classes/HMSRoom.js +9 -0
  118. package/lib/module/classes/HMSRoom.js.map +1 -1
  119. package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
  120. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
  121. package/lib/module/classes/HMSSDK.js +408 -151
  122. package/lib/module/classes/HMSSDK.js.map +1 -1
  123. package/lib/module/classes/HMSServerRecordingState.js +14 -0
  124. package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
  125. package/lib/module/classes/HMSTrack.js +8 -16
  126. package/lib/module/classes/HMSTrack.js.map +1 -1
  127. package/lib/module/classes/HMSTrackSettings.js +3 -0
  128. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  129. package/lib/module/classes/HMSTrackType.js +7 -0
  130. package/lib/module/classes/HMSTrackType.js.map +1 -0
  131. package/lib/module/classes/HMSVideoCodec.js +4 -4
  132. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  133. package/lib/module/classes/HMSVideoResolution.js +14 -0
  134. package/lib/module/classes/HMSVideoResolution.js.map +1 -0
  135. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  136. package/lib/module/classes/HMSVideoTrack.js +2 -0
  137. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  138. package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
  139. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  140. package/lib/module/classes/HmsView.js +10 -7
  141. package/lib/module/classes/HmsView.js.map +1 -1
  142. package/lib/module/index.js +8 -0
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/typescript/classes/HMSAudioTrack.d.ts +3 -0
  145. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
  146. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
  147. package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
  148. package/lib/typescript/classes/HMSConfig.d.ts +2 -4
  149. package/lib/typescript/classes/HMSEncoder.d.ts +14 -12
  150. package/lib/typescript/classes/HMSException.d.ts +22 -0
  151. package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +5 -0
  152. package/lib/typescript/classes/HMSLocalPeer.d.ts +6 -0
  153. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +4 -0
  154. package/lib/typescript/classes/HMSLogger.d.ts +11 -4
  155. package/lib/typescript/classes/HMSPeer.d.ts +2 -0
  156. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  157. package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
  158. package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
  159. package/lib/typescript/classes/HMSRemoteAudioTrack.d.ts +4 -0
  160. package/lib/typescript/classes/HMSRemotePeer.d.ts +3 -0
  161. package/lib/typescript/classes/HMSRemoteVideoTrack.d.ts +4 -0
  162. package/lib/typescript/classes/HMSRoom.d.ts +9 -0
  163. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
  164. package/lib/typescript/classes/HMSSDK.d.ts +41 -11
  165. package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
  166. package/lib/typescript/classes/HMSTrack.d.ts +6 -1
  167. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  168. package/lib/typescript/classes/HMSTrackType.d.ts +4 -0
  169. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  170. package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
  171. package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
  172. package/lib/typescript/classes/HMSVideoTrack.d.ts +5 -1
  173. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
  174. package/lib/typescript/classes/HmsView.d.ts +2 -1
  175. package/lib/typescript/index.d.ts +8 -0
  176. package/package.json +1 -1
  177. package/src/classes/HMSAudioTrack.ts +3 -0
  178. package/src/classes/HMSAudioTrackSettings.ts +9 -1
  179. package/src/classes/HMSBrowserRecordingState.ts +11 -0
  180. package/src/classes/HMSCameraFacing.ts +4 -0
  181. package/src/classes/HMSConfig.ts +3 -7
  182. package/src/classes/HMSEncoder.ts +64 -28
  183. package/src/classes/HMSException.ts +33 -0
  184. package/src/classes/HMSHelper.ts +2 -2
  185. package/src/classes/HMSLocalAudioTrack.ts +35 -2
  186. package/src/classes/HMSLocalPeer.ts +6 -0
  187. package/src/classes/HMSLocalVideoTrack.ts +22 -2
  188. package/src/classes/HMSLogger.ts +19 -6
  189. package/src/classes/HMSPeer.ts +3 -0
  190. package/src/classes/HMSPeerUpdate.ts +1 -0
  191. package/src/classes/HMSPermissions.ts +6 -0
  192. package/src/classes/HMSRTMPConfig.ts +15 -0
  193. package/src/classes/HMSRemoteAudioTrack.ts +29 -2
  194. package/src/classes/HMSRemotePeer.ts +3 -0
  195. package/src/classes/HMSRemoteVideoTrack.ts +29 -2
  196. package/src/classes/HMSRoom.ts +12 -0
  197. package/src/classes/HMSRtmpStreamingState.ts +11 -0
  198. package/src/classes/{HMSSDK.ts → HMSSDK.tsx} +396 -97
  199. package/src/classes/HMSServerRecordingState.ts +11 -0
  200. package/src/classes/HMSTrack.ts +9 -15
  201. package/src/classes/HMSTrackSettings.ts +3 -0
  202. package/src/classes/HMSTrackType.ts +4 -0
  203. package/src/classes/HMSVideoCodec.ts +4 -4
  204. package/src/classes/HMSVideoResolution.ts +9 -0
  205. package/src/classes/HMSVideoSettings.ts +3 -3
  206. package/src/classes/HMSVideoTrack.ts +6 -1
  207. package/src/classes/HMSVideoTrackSettings.ts +13 -10
  208. package/src/classes/HmsView.tsx +4 -0
  209. package/src/index.ts +8 -0
  210. package/ios/Hmssdk.m +0 -8
  211. package/ios/Hmssdk.swift +0 -8
@@ -1,8 +1,9 @@
1
1
  package com.reactnativehmssdk
2
2
 
3
3
  import com.facebook.react.bridge.*
4
- import java.util.*
4
+ import live.hms.video.error.HMSException
5
5
  import live.hms.video.media.settings.HMSAudioTrackSettings
6
+ import live.hms.video.media.settings.HMSVideoResolution
6
7
  import live.hms.video.media.settings.HMSVideoTrackSettings
7
8
  import live.hms.video.media.tracks.*
8
9
  import live.hms.video.sdk.models.*
@@ -17,11 +18,21 @@ object HmsDecoder {
17
18
  room.putString("id", hmsRoom.roomId)
18
19
  room.putString("name", hmsRoom.name)
19
20
  room.putString("metaData", null)
20
- var peers: WritableArray = Arguments.createArray()
21
- for (peer in hmsRoom.peerList) {
22
- peers.pushMap(getHmsPeer(peer))
23
- }
24
- room.putArray("peers", peers)
21
+ room.putString("startedAt", hmsRoom.startedAt.toString())
22
+ room.putMap(
23
+ "browserRecordingState",
24
+ this.getHMSBrowserRecordingState(hmsRoom.browserRecordingState)
25
+ )
26
+ room.putMap(
27
+ "rtmpHMSRtmpStreamingState",
28
+ this.getHMSRtmpStreamingState(hmsRoom.rtmpHMSRtmpStreamingState)
29
+ )
30
+ room.putMap(
31
+ "serverRecordingState",
32
+ this.getHMSServerRecordingState(hmsRoom.serverRecordingState)
33
+ )
34
+ room.putMap("localPeer", this.getHmsLocalPeer(hmsRoom.localPeer))
35
+ room.putArray("peers", this.getAllPeers(hmsRoom.peerList))
25
36
  }
26
37
  return room
27
38
  }
@@ -32,29 +43,20 @@ object HmsDecoder {
32
43
  peer.putString("peerID", hmsPeer.peerID)
33
44
  peer.putString("name", hmsPeer.name)
34
45
  peer.putBoolean("isLocal", hmsPeer.isLocal)
35
- peer.putString(
36
- "customerUserID",
37
- if (hmsPeer.customerUserID == null) hmsPeer.customerUserID else ""
38
- )
39
- peer.putString(
40
- "customerDescription",
41
- if (hmsPeer.customerDescription == null) hmsPeer.customerDescription else ""
42
- )
43
- peer.putMap("audioTrack", getHmsAudioTrack(hmsPeer.audioTrack))
44
- peer.putMap("videoTrack", getHmsVideoTrack(hmsPeer.videoTrack))
45
- peer.putMap("role", getHmsRole(hmsPeer.hmsRole))
46
- var auxiliaryTracks: WritableArray = Arguments.createArray()
47
- for (track in hmsPeer.auxiliaryTracks) {
48
- auxiliaryTracks.pushMap(getHmsTrack(track))
49
- }
50
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
46
+ peer.putString("customerUserID", hmsPeer.customerUserID)
47
+ peer.putString("metadata", hmsPeer.metadata)
48
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
49
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
50
+ peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
51
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsPeer.auxiliaryTracks))
51
52
  }
52
53
  return peer
53
54
  }
54
55
 
55
- fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
56
+ private fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
56
57
  val hmsTrack: WritableMap = Arguments.createMap()
57
58
  if (hmsAudioTrack != null) {
59
+ hmsTrack.putString("type", hmsAudioTrack.type.name)
58
60
  hmsTrack.putString("trackId", hmsAudioTrack.trackId)
59
61
  hmsTrack.putString("source", hmsAudioTrack.source)
60
62
  hmsTrack.putString("trackDescription", hmsAudioTrack.description)
@@ -63,13 +65,15 @@ object HmsDecoder {
63
65
  return hmsTrack
64
66
  }
65
67
 
66
- fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
68
+ private fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
67
69
  val hmsTrack: WritableMap = Arguments.createMap()
68
70
  if (hmsVideoTrack != null) {
71
+ hmsTrack.putString("type", hmsVideoTrack.type.name)
69
72
  hmsTrack.putString("trackId", hmsVideoTrack.trackId)
70
73
  hmsTrack.putString("source", hmsVideoTrack.source)
71
74
  hmsTrack.putString("trackDescription", hmsVideoTrack.description)
72
75
  hmsTrack.putBoolean("isMute", hmsVideoTrack.isMute)
76
+ hmsTrack.putBoolean("isDegraded", hmsVideoTrack.isDegraded)
73
77
  }
74
78
  return hmsTrack
75
79
  }
@@ -81,233 +85,182 @@ object HmsDecoder {
81
85
  hmsTrack.putString("source", track.source)
82
86
  hmsTrack.putString("trackDescription", track.description)
83
87
  hmsTrack.putBoolean("isMute", track.isMute)
88
+ hmsTrack.putString("type", track.type.name)
84
89
  }
85
90
  return hmsTrack
86
91
  }
87
92
 
88
93
  fun getAllRoles(roles: List<HMSRole>?): WritableArray {
89
94
  val decodedRoles: WritableArray = Arguments.createArray()
90
-
91
95
  if (roles != null) {
92
96
  for (role in roles) {
93
- val decodedRole = getHmsRole(role)
94
-
97
+ val decodedRole = this.getHmsRole(role)
95
98
  decodedRoles.pushMap(decodedRole)
96
99
  }
97
100
  }
98
-
99
101
  return decodedRoles
100
102
  }
101
103
 
102
- fun getHmsRole(hmsRole: HMSRole?): WritableMap {
104
+ private fun getHmsRole(hmsRole: HMSRole?): WritableMap {
103
105
  val role: WritableMap = Arguments.createMap()
104
- // val emptyMap: WritableArray = Arguments.createMap();
105
106
  if (hmsRole != null) {
106
107
  role.putString("name", hmsRole.name)
107
- role.putMap("permissions", getHmsPermissions(hmsRole.permission))
108
- role.putMap("publishSettings", getHmsPublishSettings(hmsRole.publishParams))
108
+ role.putMap("permissions", this.getHmsPermissions(hmsRole.permission))
109
+ role.putMap("publishSettings", this.getHmsPublishSettings(hmsRole.publishParams))
110
+ role.putMap("subscribeSettings", this.getHmsSubscribeSettings(hmsRole.subscribeParams))
109
111
  role.putInt("priority", hmsRole.priority)
110
- // role.putArray("generalPermissions",
111
- // if(hmsRole.generalPermissions!=null)hmsRole.generalPermissions else emptyMap);
112
- // role.putArray("internalPlugins",
113
- // if(hmsRole.internalPlugins!=null)hmsRole.internalPlugins else emptyMap);
114
- // role.putArray("externalPlugins",
115
- // if(hmsRole.externalPlugins!=null)hmsRole.externalPlugins else emptyMap);
116
112
  }
117
113
  return role
118
114
  }
119
115
 
120
- fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
116
+ private fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
121
117
  val permissions: WritableMap = Arguments.createMap()
122
118
  if (hmsPermissions != null) {
123
- permissions.putBoolean(
124
- "endRoom",
125
- if (hmsPermissions.endRoom != null) hmsPermissions.endRoom else false
126
- )
127
- permissions.putBoolean(
128
- "removeOthers",
129
- if (hmsPermissions.removeOthers != null) hmsPermissions.removeOthers else false
130
- )
131
- permissions.putBoolean(
132
- "mute",
133
- if (hmsPermissions.mute != null) hmsPermissions.mute else false
134
- )
135
- permissions.putBoolean(
136
- "changeRoleForce",
137
- if (hmsPermissions.changeRoleForce != null) hmsPermissions.changeRoleForce else false
138
- )
139
- permissions.putBoolean(
140
- "unmute",
141
- if (hmsPermissions.unmute != null) hmsPermissions.unmute else false
142
- )
143
- permissions.putBoolean(
144
- "recording",
145
- if (hmsPermissions.recording != null) hmsPermissions.recording else false
146
- )
147
- permissions.putBoolean(
148
- "rtmp",
149
- if (hmsPermissions.rtmp != null) hmsPermissions.rtmp else false
150
- )
151
- permissions.putBoolean(
152
- "changeRole",
153
- if (hmsPermissions.changeRole != null) hmsPermissions.changeRole else false
154
- )
119
+ permissions.putBoolean("endRoom", hmsPermissions.endRoom)
120
+ permissions.putBoolean("removeOthers", hmsPermissions.removeOthers)
121
+ permissions.putBoolean("mute", hmsPermissions.mute)
122
+ permissions.putBoolean("changeRoleForce", hmsPermissions.changeRoleForce)
123
+ permissions.putBoolean("unmute", hmsPermissions.unmute)
124
+ permissions.putBoolean("recording", hmsPermissions.recording)
125
+ permissions.putBoolean("rtmp", hmsPermissions.rtmp)
126
+ permissions.putBoolean("changeRole", hmsPermissions.changeRole)
155
127
  }
156
128
  return permissions
157
129
  }
158
130
 
159
- fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
131
+ private fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
160
132
  val publishSettings: WritableMap = Arguments.createMap()
161
- val emptyArray: WritableArray = Arguments.createArray()
162
133
  if (hmsPublishSettings != null) {
163
- publishSettings.putMap("audio", getHmsAudioSettings(hmsPublishSettings.audio))
164
- publishSettings.putMap("video", getHmsVideoSettings(hmsPublishSettings.video))
165
- publishSettings.putMap("screen", getHmsVideoSettings(hmsPublishSettings.screen))
166
- // publishSettings.putMap("videoSimulcastLayers",
167
- // getHmsSimulcastLayers(hmsPublishSettings.videoSimulcastLayers));
168
- // publishSettings.putMap("screenSimulcastLayers",
169
- // getHmsSimulcastLayers(hmsPublishSettings.screenSimulcastLayers));
134
+ publishSettings.putMap("audio", this.getHmsAudioSettings(hmsPublishSettings.audio))
135
+ publishSettings.putMap("video", this.getHmsVideoSettings(hmsPublishSettings.video))
136
+ publishSettings.putMap("screen", this.getHmsVideoSettings(hmsPublishSettings.screen))
170
137
  publishSettings.putMap("videoSimulcastLayers", null)
171
138
  publishSettings.putMap("screenSimulcastLayers", null)
172
- // publishSettings.putArray("allowed", if (hmsPublishSettings.allowed != null)
173
- // hmsPublishSettings.allowed as WritableArray else emptyArray);
139
+ publishSettings.putArray("allowed", this.getWriteableArray(hmsPublishSettings.allowed))
174
140
  }
175
141
  return publishSettings
176
142
  }
177
- fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
143
+
144
+ private fun getWriteableArray(array: List<String>?): WritableArray {
145
+ val decodedArray: WritableArray = Arguments.createArray()
146
+ if (array != null) {
147
+ for (value in array) {
148
+ decodedArray.pushString(value)
149
+ }
150
+ }
151
+ return decodedArray
152
+ }
153
+
154
+ private fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
178
155
  val audioSettings: WritableMap = Arguments.createMap()
179
156
  if (hmsAudioSettings != null) {
180
157
  audioSettings.putInt("bitRate", hmsAudioSettings.bitRate)
181
- audioSettings.putString("codec", hmsAudioSettings.codec.toString())
158
+ audioSettings.putString("codec", hmsAudioSettings.codec.name)
182
159
  }
183
160
  return audioSettings
184
161
  }
185
162
 
186
- fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
163
+ private fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
187
164
  val videoSettings: WritableMap = Arguments.createMap()
188
165
  if (hmsVideoSettings != null) {
189
166
  videoSettings.putInt("bitRate", hmsVideoSettings.bitRate)
190
167
  videoSettings.putInt("frameRate", hmsVideoSettings.frameRate)
191
168
  videoSettings.putInt("width", hmsVideoSettings.width)
192
169
  videoSettings.putInt("height", hmsVideoSettings.height)
193
- videoSettings.putString("codec", hmsVideoSettings.codec.toString())
170
+ videoSettings.putString("codec", hmsVideoSettings.codec.name)
194
171
  }
195
172
  return videoSettings
196
173
  }
197
174
 
198
- // fun getHmsSimulcastLayers(videoSimulcastLayers: HMSSimulcastSettingsPolicy?): WritableMap {
199
- // val videoLayers: WritableMap = Arguments.createMap();
200
- // if(videoSimulcastLayers != null) {
201
- // videoLayers.putInt("width", videoSimulcastLayers.width);
202
- // videoLayers.putString("height", videoSimulcastLayers.height);
203
- // videoLayers.putArray("layers",
204
- // getHmsSimulcastLayerSettingsPolicy(videoSimulcastLayers.layers));
205
- // }
206
- // return videoLayers;
207
- // }
208
-
209
- // fun getHmsSimulcastLayerSettingsPolicy(layers: HMSSimulcastLayerSettingsPolicy?):
210
- // WritableArray {
211
- // val layersSettingsPolicy: WritableArray = Arguments.createArray();
212
- // val hmsLayersSettingsPolicy: WritableMap = Arguments.createMap();
213
- // if(layers != null) {
214
- // hmsLayersSettingsPolicy.putString("rid", layers.rid);
215
- // hmsLayersSettingsPolicy.putInt("scaleResolutionDownBy", if (layers.scaleResolutionDownBy
216
- // != null) layers.scaleResolutionDownBy else 0);
217
- // hmsLayersSettingsPolicy.putInt("maxBitrate", if (layers.maxBitrate != null)
218
- // layers.maxBitrate else -1);
219
- // hmsLayersSettingsPolicy.putInt("maxFramerate", if (layers.maxFramerate != null)
220
- // layers.maxFramerate else -1);
221
- // }
222
- // layersSettingsPolicy.pushMap(hmsLayersSettingsPolicy)
223
- // return layersSettingsPolicy;
224
- // }
225
-
226
175
  fun getHmsLocalPeer(hmsLocalPeer: HMSLocalPeer?): WritableMap {
227
176
  val peer: WritableMap = Arguments.createMap()
228
177
  if (hmsLocalPeer != null) {
229
178
  peer.putString("peerID", hmsLocalPeer.peerID)
230
179
  peer.putString("name", hmsLocalPeer.name)
231
180
  peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
232
- peer.putString(
233
- "customerUserID",
234
- if (hmsLocalPeer.customerUserID != null) hmsLocalPeer.customerUserID else ""
235
- )
236
- peer.putString(
237
- "customerDescription",
238
- if (hmsLocalPeer.customerDescription != null) hmsLocalPeer.customerDescription else ""
239
- )
240
- peer.putMap("audioTrack", getHmsAudioTrack(hmsLocalPeer.audioTrack))
241
- peer.putMap("videoTrack", getHmsVideoTrack(hmsLocalPeer.videoTrack))
242
- peer.putMap("role", getHmsRole(hmsLocalPeer.hmsRole))
243
-
244
- var auxiliaryTracks: WritableArray = Arguments.createArray()
245
- for (track in hmsLocalPeer.auxiliaryTracks) {
246
- auxiliaryTracks.pushMap(getHmsTrack(track))
247
- }
248
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
249
-
250
- val localAudioTrack = hmsLocalPeer.audioTrack
251
- var localAudioTrackData: WritableMap = Arguments.createMap()
252
- localAudioTrackData.putString("trackId", localAudioTrack?.trackId)
253
- localAudioTrackData.putString("source", localAudioTrack?.source)
254
- localAudioTrackData.putString("trackDescription", localAudioTrack?.description)
255
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(localAudioTrack?.settings))
256
- if (localAudioTrack != null) {
257
- localAudioTrackData.putBoolean("isMute", localAudioTrack.isMute)
258
- }
259
- peer.putMap("localAudioTrackData", localAudioTrackData)
260
-
261
- val localVideoTrack = hmsLocalPeer.videoTrack
262
- var localVideoTrackData: WritableMap = Arguments.createMap()
263
- localVideoTrackData.putString("trackId", localVideoTrack?.trackId)
264
- localVideoTrackData.putString("source", localVideoTrack?.source)
265
- localVideoTrackData.putString("trackDescription", localVideoTrack?.description)
266
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(localVideoTrack?.settings))
267
- if (localVideoTrack != null) {
268
- localVideoTrackData.putBoolean("isMute", localVideoTrack.isMute)
269
- }
270
- peer.putMap("localVideoTrackData", localVideoTrackData)
181
+ peer.putString("customerUserID", hmsLocalPeer.customerUserID)
182
+ peer.putString("metadata", hmsLocalPeer.metadata)
183
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
184
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
185
+ peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
186
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsLocalPeer.auxiliaryTracks))
187
+ peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(hmsLocalPeer.audioTrack))
188
+ peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(hmsLocalPeer.videoTrack))
271
189
  }
272
190
  return peer
273
191
  }
274
192
 
275
- fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
193
+ private fun getHmsLocalAudioTrack(track: HMSLocalAudioTrack?): WritableMap {
194
+ val hmsTrack: WritableMap = Arguments.createMap()
195
+ if (track != null) {
196
+ hmsTrack.putDouble("volume", track.volume)
197
+ hmsTrack.putMap("settings", this.getHmsAudioTrackSettings(track.settings))
198
+ hmsTrack.putString("trackId", track.trackId)
199
+ hmsTrack.putString("source", track.source)
200
+ hmsTrack.putString("trackDescription", track.description)
201
+ hmsTrack.putBoolean("isMute", track.isMute)
202
+ hmsTrack.putString("type", track.type.name)
203
+ }
204
+ return hmsTrack
205
+ }
206
+
207
+ private fun getHmsLocalVideoTrack(track: HMSLocalVideoTrack?): WritableMap {
208
+ val hmsTrack: WritableMap = Arguments.createMap()
209
+ if (track != null) {
210
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
211
+ hmsTrack.putMap("settings", this.getHmsVideoTrackSettings(track.settings))
212
+ hmsTrack.putString("trackId", track.trackId)
213
+ hmsTrack.putString("source", track.source)
214
+ hmsTrack.putString("trackDescription", track.description)
215
+ hmsTrack.putBoolean("isMute", track.isMute)
216
+ hmsTrack.putString("type", track.type.name)
217
+ }
218
+ return hmsTrack
219
+ }
220
+
221
+ private fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
276
222
  val settings: WritableMap = Arguments.createMap()
277
223
  if (hmsAudioTrackSettings != null) {
278
224
  settings.putInt("maxBitrate", hmsAudioTrackSettings.maxBitrate)
279
- // settings.putString("trackDescription", hmsAudioTrackSettings.trackDescription);
225
+ settings.putDouble("volume", hmsAudioTrackSettings.volume)
226
+ settings.putBoolean(
227
+ "useHardwareAcousticEchoCanceler",
228
+ hmsAudioTrackSettings.useHardwareAcousticEchoCanceler
229
+ )
230
+ settings.putString("codec", hmsAudioTrackSettings.codec.name)
280
231
  settings.putString("trackDescription", "")
281
232
  }
282
233
  return settings
283
234
  }
284
235
 
285
- fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
236
+ private fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
286
237
  val settings: WritableMap = Arguments.createMap()
287
238
  if (hmsVideoTrackSettings != null) {
288
- settings.putInt("codec", hmsVideoTrackSettings.codec.ordinal)
289
-
290
- val resolution: WritableMap = Arguments.createMap()
291
- resolution.putInt("height", hmsVideoTrackSettings.resolution.height)
292
- resolution.putInt("width", hmsVideoTrackSettings.resolution.width)
293
- settings.putMap("resolution", resolution)
294
-
239
+ settings.putString("codec", hmsVideoTrackSettings.codec.name)
295
240
  settings.putInt("maxBitrate", hmsVideoTrackSettings.maxBitRate)
296
241
  settings.putInt("maxFrameRate", hmsVideoTrackSettings.maxFrameRate)
297
- settings.putInt("cameraFacing", hmsVideoTrackSettings.cameraFacing.ordinal)
298
- // settings.putString("trackDescription",
299
- // if(hmsVideoTrackSettings.trackDescription!==null)hmsVideoTrackSettings.trackDescription
300
- // else "");
301
- settings.putString("trackDescription", "")
242
+ settings.putString("cameraFacing", hmsVideoTrackSettings.cameraFacing.name)
243
+ settings.putString("trackDescription", hmsVideoTrackSettings.codec.name)
244
+ settings.putMap(
245
+ "resolution",
246
+ this.getHmsVideoTrackResolution(hmsVideoTrackSettings.resolution)
247
+ )
302
248
  }
303
249
  return settings
304
250
  }
305
251
 
252
+ private fun getHmsVideoTrackResolution(hmsResolution: HMSVideoResolution): WritableMap {
253
+ val resolution: WritableMap = Arguments.createMap()
254
+ resolution.putInt("height", hmsResolution.height)
255
+ resolution.putInt("width", hmsResolution.width)
256
+ return resolution
257
+ }
258
+
306
259
  fun getHmsRemotePeers(remotePeers: Array<HMSRemotePeer>?): WritableArray {
307
260
  val peers: WritableArray = Arguments.createArray()
308
261
  if (remotePeers != null) {
309
262
  for (peer in remotePeers) {
310
- peers.pushMap(getHmsRemotePeer(peer))
263
+ peers.pushMap(this.getHmsRemotePeer(peer))
311
264
  }
312
265
  }
313
266
  return peers
@@ -319,94 +272,177 @@ object HmsDecoder {
319
272
  peer.putString("peerID", hmsRemotePeer.peerID)
320
273
  peer.putString("name", hmsRemotePeer.name)
321
274
  peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
322
- peer.putString(
323
- "customerUserID",
324
- if (hmsRemotePeer.customerUserID != null) hmsRemotePeer.customerUserID else ""
325
- )
326
- peer.putString(
327
- "customerDescription",
328
- if (hmsRemotePeer.customerDescription != null) hmsRemotePeer.customerDescription else ""
329
- )
330
- peer.putMap("audioTrack", getHmsAudioTrack(hmsRemotePeer.audioTrack))
331
- peer.putMap("videoTrack", getHmsVideoTrack(hmsRemotePeer.videoTrack))
332
- peer.putMap("role", getHmsRole(hmsRemotePeer.hmsRole))
333
-
334
- var auxiliaryTracks: WritableArray = Arguments.createArray()
335
- for (track in hmsRemotePeer.auxiliaryTracks) {
336
- auxiliaryTracks.pushMap(getHmsTrack(track))
337
- }
338
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
339
-
340
- val remoteAudioTrack = hmsRemotePeer.audioTrack
341
- var remoteAudioTrackData: WritableMap = Arguments.createMap()
342
- remoteAudioTrackData.putString("trackId", remoteAudioTrack?.trackId)
343
- remoteAudioTrackData.putString("source", remoteAudioTrack?.source)
344
- remoteAudioTrackData.putString("trackDescription", remoteAudioTrack?.description)
345
- if (remoteAudioTrack != null) {
346
- remoteAudioTrackData.putBoolean("playbackAllowed", remoteAudioTrack.isPlaybackAllowed)
347
- remoteAudioTrackData.putBoolean("isMute", remoteAudioTrack.isMute)
348
- }
349
- // remoteAudioTrackData.putMap("settings",
350
- // getHmsAudioTrackSettings(remoteAudioTrack.settings));
351
- remoteAudioTrackData.putMap("settings", null)
352
- peer.putMap("remoteAudioTrackData", remoteAudioTrackData)
353
-
354
- val remoteVideoTrack = hmsRemotePeer.videoTrack
355
- var remoteVideoTrackData: WritableMap = Arguments.createMap()
356
- remoteVideoTrackData.putString("trackId", remoteVideoTrack?.trackId)
357
- remoteVideoTrackData.putString("source", remoteVideoTrack?.source)
358
- remoteVideoTrackData.putString("trackDescription", remoteVideoTrack?.description)
359
- if (remoteVideoTrack != null) {
360
- remoteVideoTrackData.putBoolean("playbackAllowed", remoteVideoTrack.isPlaybackAllowed)
361
- remoteVideoTrackData.putBoolean("isMute", remoteVideoTrack.isMute)
362
- }
363
- // remoteVideoTrackData.putMap("settings",
364
- // getHmsVideoTrackSettings(remoteVideoTrack.settings));
365
- remoteVideoTrackData.putMap("settings", null)
366
- peer.putMap("remoteVideoTrackData", remoteVideoTrackData)
275
+ peer.putString("customerUserID", hmsRemotePeer.customerUserID)
276
+ peer.putString("metadata", hmsRemotePeer.metadata)
277
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
278
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
279
+ peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
280
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsRemotePeer.auxiliaryTracks))
281
+ peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(hmsRemotePeer.audioTrack))
282
+ peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
367
283
  }
368
284
  return peer
369
285
  }
370
286
 
287
+ private fun getHmsRemoteAudioTrack(track: HMSRemoteAudioTrack?): WritableMap {
288
+ val hmsTrack: WritableMap = Arguments.createMap()
289
+ if (track != null) {
290
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
291
+ hmsTrack.putString("trackId", track.trackId)
292
+ hmsTrack.putString("source", track.source)
293
+ hmsTrack.putString("trackDescription", track.description)
294
+ hmsTrack.putBoolean("isMute", track.isMute)
295
+ hmsTrack.putString("type", track.type.name)
296
+ }
297
+ return hmsTrack
298
+ }
299
+
300
+ private fun getHmsRemoteVideoTrack(track: HMSRemoteVideoTrack?): WritableMap {
301
+ val hmsTrack: WritableMap = Arguments.createMap()
302
+ if (track != null) {
303
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
304
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
305
+ hmsTrack.putString("trackId", track.trackId)
306
+ hmsTrack.putString("source", track.source)
307
+ hmsTrack.putString("trackDescription", track.description)
308
+ hmsTrack.putBoolean("isMute", track.isMute)
309
+ hmsTrack.putString("type", track.type.name)
310
+ }
311
+ return hmsTrack
312
+ }
313
+
371
314
  fun getPreviewTracks(tracks: Array<HMSTrack>?): WritableMap {
372
315
  val hmsTracks: WritableMap = Arguments.createMap()
373
316
  if (tracks != null) {
374
317
  for (track: HMSTrack in tracks) {
375
318
  if (track is HMSLocalVideoTrack) {
376
- val localVideoTrackData: WritableMap = Arguments.createMap()
377
- localVideoTrackData.putString("trackId", track.trackId)
378
- localVideoTrackData.putString("source", track.source)
379
- localVideoTrackData.putString("trackDescription", track.description)
380
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(track.settings))
381
- hmsTracks.putMap("videoTrack", localVideoTrackData)
319
+ hmsTracks.putMap("videoTrack", this.getHmsLocalVideoTrack(track))
382
320
  }
383
321
  if (track is HMSLocalAudioTrack) {
384
- val localAudioTrackData: WritableMap = Arguments.createMap()
385
- localAudioTrackData.putString("trackId", track.trackId)
386
- localAudioTrackData.putString("source", track.source)
387
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(track.settings))
388
- hmsTracks.putMap("audioTrack", localAudioTrackData)
322
+ hmsTracks.putMap("audioTrack", this.getHmsLocalAudioTrack(track))
389
323
  }
390
324
  }
391
325
  }
392
326
  return hmsTracks
393
327
  }
394
328
 
395
- fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest): WritableMap {
329
+ fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest, id: String?): WritableMap {
396
330
  val roleChangeRequest: WritableMap = Arguments.createMap()
397
-
398
- roleChangeRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
399
- roleChangeRequest.putMap("suggestedRole", getHmsRole(request.suggestedRole))
400
-
331
+ if (id != null) {
332
+ roleChangeRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
333
+ roleChangeRequest.putMap("suggestedRole", this.getHmsRole(request.suggestedRole))
334
+ roleChangeRequest.putString("id", id)
335
+ return roleChangeRequest
336
+ }
401
337
  return roleChangeRequest
402
338
  }
403
339
 
404
- fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest): WritableMap {
340
+ fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest, id: String): WritableMap {
405
341
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
406
342
 
407
- changeTrackStateRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
343
+ changeTrackStateRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
408
344
  changeTrackStateRequest.putString("trackType", request.track.type.name)
345
+ changeTrackStateRequest.putString("id", id)
409
346
 
410
347
  return changeTrackStateRequest
411
348
  }
349
+
350
+ fun getError(error: HMSException): WritableMap {
351
+ val decodedError: WritableMap = Arguments.createMap()
352
+
353
+ decodedError.putInt("code", error.code)
354
+ decodedError.putString("localizedDescription", error.localizedMessage)
355
+ decodedError.putString("description", error.description)
356
+ decodedError.putString("message", error.message)
357
+ decodedError.putString("name", error.name)
358
+ decodedError.putString("action", error.action)
359
+
360
+ return decodedError
361
+ }
362
+
363
+ private fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
364
+ val input = Arguments.createMap()
365
+ if (data !== null) {
366
+ input.putBoolean("running", data.running)
367
+ input.putMap("error", data.error?.let { this.getError(it) })
368
+ }
369
+ return input
370
+ }
371
+
372
+ private fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
373
+ val input = Arguments.createMap()
374
+ if (data !== null) {
375
+ input.putBoolean("running", data.running)
376
+ input.putMap("error", data.error?.let { this.getError(it) })
377
+ }
378
+ return input
379
+ }
380
+
381
+ private fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
382
+ val input = Arguments.createMap()
383
+ if (data !== null) {
384
+ input.putBoolean("running", data.running)
385
+ input.putMap("error", data.error?.let { this.getError(it) })
386
+ }
387
+ return input
388
+ }
389
+
390
+ private fun getHmsSubscribeSettings(hmsSubscribeSettings: SubscribeParams?): WritableMap {
391
+ val subscribeSettings: WritableMap = Arguments.createMap()
392
+ if (hmsSubscribeSettings != null) {
393
+ subscribeSettings.putInt("maxSubsBitRate", hmsSubscribeSettings.maxSubsBitRate)
394
+ subscribeSettings.putMap(
395
+ "subscribeDegradationParam",
396
+ this.getHmsSubscribeDegradationSettings(hmsSubscribeSettings.subscribeDegradationParam)
397
+ )
398
+ subscribeSettings.putArray(
399
+ "subscribeTo",
400
+ this.getWriteableArray(hmsSubscribeSettings.subscribeTo)
401
+ )
402
+ }
403
+ return subscribeSettings
404
+ }
405
+
406
+ private fun getHmsSubscribeDegradationSettings(
407
+ hmsSubscribeDegradationParams: SubscribeDegradationParams?
408
+ ): WritableMap {
409
+ val subscribeDegradationParams: WritableMap = Arguments.createMap()
410
+ if (hmsSubscribeDegradationParams != null) {
411
+ subscribeDegradationParams.putString(
412
+ "degradeGracePeriodSeconds",
413
+ hmsSubscribeDegradationParams.degradeGracePeriodSeconds.toString()
414
+ )
415
+ subscribeDegradationParams.putString(
416
+ "packetLossThreshold",
417
+ hmsSubscribeDegradationParams.packetLossThreshold.toString()
418
+ )
419
+ subscribeDegradationParams.putString(
420
+ "recoverGracePeriodSeconds",
421
+ hmsSubscribeDegradationParams.recoverGracePeriodSeconds.toString()
422
+ )
423
+ }
424
+ return subscribeDegradationParams
425
+ }
426
+
427
+ private fun getAllPeers(peers: Array<HMSPeer>?): WritableArray {
428
+ val decodedPeers: WritableArray = Arguments.createArray()
429
+ if (peers != null) {
430
+ for (peer in peers) {
431
+ val decodedPeer = this.getHmsPeer(peer)
432
+ decodedPeers.pushMap(decodedPeer)
433
+ }
434
+ }
435
+ return decodedPeers
436
+ }
437
+
438
+ private fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
439
+ val decodedTracks: WritableArray = Arguments.createArray()
440
+ if (tracks != null) {
441
+ for (track in tracks) {
442
+ val decodedTrack = this.getHmsTrack(track)
443
+ decodedTracks.pushMap(decodedTrack)
444
+ }
445
+ }
446
+ return decodedTracks
447
+ }
412
448
  }