@100mslive/react-native-hms 1.3.0 → 1.5.0

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 (165) hide show
  1. package/README.md +59 -5
  2. package/android/build.gradle +3 -2
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +189 -55
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +1 -0
  5. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +49 -14
  6. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +240 -46
  7. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +5 -0
  8. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +29 -21
  9. package/android/src/main/res/layout/hms_view.xml +2 -2
  10. package/ios/HMSConstants.swift +31 -0
  11. package/ios/HMSDecoder.swift +371 -156
  12. package/ios/HMSManager.m +10 -2
  13. package/ios/HMSManager.swift +149 -74
  14. package/ios/HMSRNSDK.swift +431 -181
  15. package/ios/HMSView.m +1 -0
  16. package/ios/HMSView.swift +21 -19
  17. package/lib/commonjs/classes/HMSAudioTrackSettings.js +1 -1
  18. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  19. package/lib/commonjs/classes/HMSCameraControl.js +28 -0
  20. package/lib/commonjs/classes/HMSCameraControl.js.map +1 -0
  21. package/lib/commonjs/classes/HMSEncoder.js +95 -13
  22. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  23. package/lib/commonjs/classes/HMSException.js +3 -4
  24. package/lib/commonjs/classes/HMSException.js.map +1 -1
  25. package/lib/commonjs/classes/HMSLayer.js +14 -0
  26. package/lib/commonjs/classes/HMSLayer.js.map +1 -0
  27. package/lib/commonjs/classes/HMSLocalVideoStats.js +11 -0
  28. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  29. package/lib/commonjs/classes/HMSLocalVideoTrack.js +5 -6
  30. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  31. package/lib/commonjs/classes/HMSMessage.js +1 -2
  32. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  33. package/lib/commonjs/classes/HMSPeer.js +3 -4
  34. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  35. package/lib/commonjs/classes/HMSPublishSettings.js +2 -0
  36. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  37. package/lib/commonjs/classes/HMSQualityLimitationReason.js +16 -0
  38. package/lib/commonjs/classes/HMSQualityLimitationReason.js.map +1 -0
  39. package/lib/commonjs/classes/HMSQualityLimitationReasons.js +27 -0
  40. package/lib/commonjs/classes/HMSQualityLimitationReasons.js.map +1 -0
  41. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  42. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +39 -4
  43. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  44. package/lib/commonjs/classes/HMSRoom.js +4 -0
  45. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  46. package/lib/commonjs/classes/HMSRoomUpdate.js +1 -0
  47. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  48. package/lib/commonjs/classes/HMSSDK.js +70 -62
  49. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  50. package/lib/commonjs/classes/HMSSimulcastLayerDefinition.js +19 -0
  51. package/lib/commonjs/classes/HMSSimulcastLayerDefinition.js.map +1 -0
  52. package/lib/commonjs/classes/HMSSimulcastLayerSettingsPolicy.js +23 -0
  53. package/lib/commonjs/classes/HMSSimulcastLayerSettingsPolicy.js.map +1 -0
  54. package/lib/commonjs/classes/HMSSimulcastSettings.js +5 -4
  55. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  56. package/lib/commonjs/classes/HMSSimulcastSettingsPolicy.js +17 -0
  57. package/lib/commonjs/classes/HMSSimulcastSettingsPolicy.js.map +1 -0
  58. package/lib/commonjs/classes/HMSSubscribeDegradationPolicy.js +21 -0
  59. package/lib/commonjs/classes/HMSSubscribeDegradationPolicy.js.map +1 -0
  60. package/lib/commonjs/classes/HMSSubscribeSettings.js +2 -0
  61. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  62. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  63. package/lib/commonjs/classes/HMSVideoTrackSettings.js +1 -1
  64. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  65. package/lib/commonjs/classes/HmsView.js +2 -0
  66. package/lib/commonjs/classes/HmsView.js.map +1 -1
  67. package/lib/commonjs/index.js +60 -0
  68. package/lib/commonjs/index.js.map +1 -1
  69. package/lib/module/classes/HMSAudioTrackSettings.js +1 -1
  70. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  71. package/lib/module/classes/HMSCameraControl.js +21 -0
  72. package/lib/module/classes/HMSCameraControl.js.map +1 -0
  73. package/lib/module/classes/HMSEncoder.js +95 -13
  74. package/lib/module/classes/HMSEncoder.js.map +1 -1
  75. package/lib/module/classes/HMSException.js +3 -4
  76. package/lib/module/classes/HMSException.js.map +1 -1
  77. package/lib/module/classes/HMSLayer.js +7 -0
  78. package/lib/module/classes/HMSLayer.js.map +1 -0
  79. package/lib/module/classes/HMSLocalVideoStats.js +11 -0
  80. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  81. package/lib/module/classes/HMSLocalVideoTrack.js +5 -6
  82. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  83. package/lib/module/classes/HMSMessage.js +1 -2
  84. package/lib/module/classes/HMSMessage.js.map +1 -1
  85. package/lib/module/classes/HMSPeer.js +3 -4
  86. package/lib/module/classes/HMSPeer.js.map +1 -1
  87. package/lib/module/classes/HMSPublishSettings.js +2 -0
  88. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  89. package/lib/module/classes/HMSQualityLimitationReason.js +9 -0
  90. package/lib/module/classes/HMSQualityLimitationReason.js.map +1 -0
  91. package/lib/module/classes/HMSQualityLimitationReasons.js +20 -0
  92. package/lib/module/classes/HMSQualityLimitationReasons.js.map +1 -0
  93. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  94. package/lib/module/classes/HMSRemoteVideoTrack.js +39 -4
  95. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  96. package/lib/module/classes/HMSRoom.js +4 -0
  97. package/lib/module/classes/HMSRoom.js.map +1 -1
  98. package/lib/module/classes/HMSRoomUpdate.js +1 -0
  99. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  100. package/lib/module/classes/HMSSDK.js +71 -62
  101. package/lib/module/classes/HMSSDK.js.map +1 -1
  102. package/lib/module/classes/HMSSimulcastLayerDefinition.js +12 -0
  103. package/lib/module/classes/HMSSimulcastLayerDefinition.js.map +1 -0
  104. package/lib/module/classes/HMSSimulcastLayerSettingsPolicy.js +16 -0
  105. package/lib/module/classes/HMSSimulcastLayerSettingsPolicy.js.map +1 -0
  106. package/lib/module/classes/HMSSimulcastSettings.js +5 -4
  107. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  108. package/lib/module/classes/HMSSimulcastSettingsPolicy.js +10 -0
  109. package/lib/module/classes/HMSSimulcastSettingsPolicy.js.map +1 -0
  110. package/lib/module/classes/HMSSubscribeDegradationPolicy.js +14 -0
  111. package/lib/module/classes/HMSSubscribeDegradationPolicy.js.map +1 -0
  112. package/lib/module/classes/HMSSubscribeSettings.js +2 -0
  113. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  114. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  115. package/lib/module/classes/HMSVideoTrackSettings.js +1 -1
  116. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  117. package/lib/module/classes/HmsView.js +2 -0
  118. package/lib/module/classes/HmsView.js.map +1 -1
  119. package/lib/module/index.js +5 -0
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/typescript/classes/HMSCameraControl.d.ts +9 -0
  122. package/lib/typescript/classes/HMSEncoder.d.ts +13 -1
  123. package/lib/typescript/classes/HMSLayer.d.ts +5 -0
  124. package/lib/typescript/classes/HMSLocalVideoStats.d.ts +6 -0
  125. package/lib/typescript/classes/HMSPeer.d.ts +1 -1
  126. package/lib/typescript/classes/HMSPublishSettings.d.ts +3 -0
  127. package/lib/typescript/classes/HMSQualityLimitationReason.d.ts +7 -0
  128. package/lib/typescript/classes/HMSQualityLimitationReasons.d.ts +17 -0
  129. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -1
  130. package/lib/typescript/classes/HMSRemoteVideoTrack.d.ts +6 -2
  131. package/lib/typescript/classes/HMSRoomUpdate.d.ts +2 -1
  132. package/lib/typescript/classes/HMSSDK.d.ts +24 -42
  133. package/lib/typescript/classes/HMSSimulcastLayerDefinition.d.ts +10 -0
  134. package/lib/typescript/classes/HMSSimulcastLayerSettingsPolicy.d.ts +12 -0
  135. package/lib/typescript/classes/HMSSimulcastSettings.d.ts +7 -3
  136. package/lib/typescript/classes/HMSSimulcastSettingsPolicy.d.ts +7 -0
  137. package/lib/typescript/classes/HMSSubscribeDegradationPolicy.d.ts +10 -0
  138. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +5 -2
  139. package/lib/typescript/classes/HMSVideoResolution.d.ts +2 -2
  140. package/lib/typescript/classes/HmsView.d.ts +2 -2
  141. package/lib/typescript/index.d.ts +5 -0
  142. package/package.json +2 -2
  143. package/sdk-versions.json +3 -3
  144. package/src/classes/HMSCameraControl.ts +21 -0
  145. package/src/classes/HMSEncoder.ts +125 -11
  146. package/src/classes/HMSLayer.ts +5 -0
  147. package/src/classes/HMSLocalVideoStats.ts +21 -0
  148. package/src/classes/HMSPeer.ts +1 -1
  149. package/src/classes/HMSPublishSettings.ts +4 -0
  150. package/src/classes/HMSQualityLimitationReason.ts +7 -0
  151. package/src/classes/HMSQualityLimitationReasons.ts +27 -0
  152. package/src/classes/HMSRemotePeer.ts +0 -1
  153. package/src/classes/HMSRemoteVideoTrack.ts +52 -4
  154. package/src/classes/HMSRoom.ts +2 -0
  155. package/src/classes/HMSRoomUpdate.ts +1 -0
  156. package/src/classes/HMSSDK.tsx +99 -67
  157. package/src/classes/HMSSimulcastLayerDefinition.ts +12 -0
  158. package/src/classes/HMSSimulcastLayerSettingsPolicy.ts +18 -0
  159. package/src/classes/HMSSimulcastSettings.ts +12 -3
  160. package/src/classes/HMSSimulcastSettingsPolicy.ts +9 -0
  161. package/src/classes/HMSSubscribeDegradationPolicy.ts +15 -0
  162. package/src/classes/HMSSubscribeSettings.ts +10 -2
  163. package/src/classes/HMSVideoResolution.ts +1 -1
  164. package/src/classes/HmsView.tsx +5 -1
  165. package/src/index.ts +5 -0
package/ios/HMSManager.m CHANGED
@@ -34,8 +34,6 @@ RCT_EXTERN_METHOD(stopRtmpAndRecording: (NSDictionary) data :(RCTPromiseResolveB
34
34
  RCT_EXTERN_METHOD(startHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
35
35
  RCT_EXTERN_METHOD(stopHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
36
36
  RCT_EXTERN_METHOD(changeName: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
37
- RCT_EXTERN_METHOD(enableRTCStats: (NSDictionary) data)
38
- RCT_EXTERN_METHOD(disableRTCStats: (NSDictionary) data)
39
37
  RCT_EXTERN_METHOD(destroy: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
40
38
  RCT_EXTERN_METHOD(startScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
41
39
  RCT_EXTERN_METHOD(stopScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
@@ -64,4 +62,14 @@ RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getRoomProperty: (NSDictionary) data)
64
62
  RCT_EXTERN_METHOD(enableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
65
63
  RCT_EXTERN_METHOD(disableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
66
64
  RCT_EXTERN_METHOD(restrictData: (NSDictionary) data)
65
+ RCT_EXTERN_METHOD(getAuthTokenByRoomCode: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
66
+ RCT_EXTERN_METHOD(getRemoteVideoTrackFromTrackId: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
67
+ RCT_EXTERN_METHOD(getRemoteAudioTrackFromTrackId: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
68
+ RCT_EXTERN_METHOD(getVideoTrackLayerDefinition: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
69
+ RCT_EXTERN_METHOD(getVideoTrackLayer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
70
+ RCT_EXTERN_METHOD(setVideoTrackLayer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
71
+
72
+ #pragma mark - Advanced Camera Controls
73
+
74
+ RCT_EXTERN_METHOD(captureImageAtMaxSupportedResolution: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
67
75
  @end
@@ -39,7 +39,12 @@ class HMSManager: RCTEventEmitter {
39
39
  return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED]
40
40
  }
41
41
 
42
- // MARK: - HMS SDK Actions
42
+ // MARK: - HMS SDK Delegate Callbacks
43
+ func emitEvent(_ name: String, _ data: [String: Any]) {
44
+ self.sendEvent(withName: name, body: data)
45
+ }
46
+
47
+ // MARK: - Setup HMSSDK
43
48
 
44
49
  @objc
45
50
  func build(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
@@ -62,6 +67,15 @@ class HMSManager: RCTEventEmitter {
62
67
  }
63
68
  }
64
69
 
70
+ @objc
71
+ func destroy(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
72
+ let id = data.value(forKey: "id") as? String ?? "12345"
73
+ hmsCollection.removeValue(forKey: id)
74
+ resolve?(["success": id + " removed"])
75
+ }
76
+
77
+ // MARK: - Preview
78
+
65
79
  @objc
66
80
  func preview(_ credentials: NSDictionary) {
67
81
  let hms = HMSHelper.getHms(credentials, hmsCollection)
@@ -82,12 +96,25 @@ class HMSManager: RCTEventEmitter {
82
96
  hms?.cancelPreview()
83
97
  }
84
98
 
99
+ // MARK: - Join Room
100
+
85
101
  @objc
86
102
  func join(_ credentials: NSDictionary) {
87
103
  let hms = HMSHelper.getHms(credentials, hmsCollection)
88
104
  hms?.join(credentials)
89
105
  }
90
106
 
107
+ // MARK: - Leave Room Actions
108
+
109
+ @objc
110
+ func leave(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
111
+ let hms = HMSHelper.getHms(data, hmsCollection)
112
+
113
+ hms?.leave(resolve, reject)
114
+ }
115
+
116
+ // MARK: - Audio & Video Actions
117
+
91
118
  @objc
92
119
  func setLocalMute(_ data: NSDictionary) {
93
120
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -110,129 +137,137 @@ class HMSManager: RCTEventEmitter {
110
137
  }
111
138
 
112
139
  @objc
113
- func leave(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
140
+ func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
114
141
  let hms = HMSHelper.getHms(data, hmsCollection)
115
-
116
- hms?.leave(resolve, reject)
142
+ if let hmsInstance = hms {
143
+ hmsInstance.isMute(data, resolve, reject)
144
+ } else {
145
+ reject?(nil, "NO_INSTANCE", nil)
146
+ return
147
+ }
117
148
  }
118
149
 
119
150
  @objc
120
- func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
151
+ func setPlaybackAllowed(_ data: NSDictionary) {
121
152
  let hms = HMSHelper.getHms(data, hmsCollection)
122
153
 
123
- hms?.sendBroadcastMessage(data, resolve, reject)
154
+ hms?.setPlaybackAllowed(data)
124
155
  }
125
156
 
126
157
  @objc
127
- func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
158
+ func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
128
159
  let hms = HMSHelper.getHms(data, hmsCollection)
129
160
 
130
- hms?.sendGroupMessage(data, resolve, reject)
161
+ hms?.isPlaybackAllowed(data, resolve, reject)
131
162
  }
132
163
 
133
164
  @objc
134
- func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
165
+ func setPlaybackForAllAudio(_ data: NSDictionary) {
135
166
  let hms = HMSHelper.getHms(data, hmsCollection)
136
167
 
137
- hms?.sendDirectMessage(data, resolve, reject)
168
+ hms?.setPlaybackForAllAudio(data)
138
169
  }
139
170
 
140
171
  @objc
141
- func acceptRoleChange(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
172
+ func remoteMuteAllAudio(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
142
173
  let hms = HMSHelper.getHms(data, hmsCollection)
143
174
 
144
- hms?.acceptRoleChange(resolve, reject)
175
+ hms?.remoteMuteAllAudio(resolve, reject)
145
176
  }
146
177
 
147
- @available(*, deprecated, message: "Use changeRoleOfPeer function")
148
178
  @objc
149
- func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
179
+ func setVolume(_ data: NSDictionary) {
150
180
  let hms = HMSHelper.getHms(data, hmsCollection)
151
181
 
152
- hms?.changeRole(data, resolve, reject)
182
+ hms?.setVolume(data)
153
183
  }
154
184
 
185
+ // MARK: - Messaging
186
+
155
187
  @objc
156
- func changeRoleOfPeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
188
+ func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
157
189
  let hms = HMSHelper.getHms(data, hmsCollection)
158
190
 
159
- hms?.changeRole(data, resolve, reject)
191
+ hms?.sendBroadcastMessage(data, resolve, reject)
160
192
  }
161
193
 
162
194
  @objc
163
- func changeRoleOfPeersWithRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
195
+ func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
164
196
  let hms = HMSHelper.getHms(data, hmsCollection)
165
197
 
166
- hms?.changeRolesOfAllPeers(data, resolve, reject)
198
+ hms?.sendGroupMessage(data, resolve, reject)
167
199
  }
168
200
 
169
201
  @objc
170
- func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
202
+ func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
171
203
  let hms = HMSHelper.getHms(data, hmsCollection)
172
204
 
173
- hms?.changeTrackState(data, resolve, reject)
205
+ hms?.sendDirectMessage(data, resolve, reject)
174
206
  }
175
207
 
208
+ // MARK: - Change Role
209
+
210
+ @available(*, deprecated, message: "Use changeRoleOfPeer function")
176
211
  @objc
177
- func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
212
+ func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
178
213
  let hms = HMSHelper.getHms(data, hmsCollection)
179
214
 
180
- hms?.changeTrackStateForRoles(data, resolve, reject)
215
+ hms?.changeRole(data, resolve, reject)
181
216
  }
182
217
 
183
218
  @objc
184
- func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
219
+ func changeRoleOfPeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
185
220
  let hms = HMSHelper.getHms(data, hmsCollection)
186
- if let hmsInstance = hms {
187
- hmsInstance.isMute(data, resolve, reject)
188
- } else {
189
- reject?(nil, "NO_INSTANCE", nil)
190
- return
191
- }
221
+
222
+ hms?.changeRole(data, resolve, reject)
192
223
  }
193
224
 
194
225
  @objc
195
- func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
226
+ func changeRoleOfPeersWithRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
196
227
  let hms = HMSHelper.getHms(data, hmsCollection)
197
228
 
198
- hms?.removePeer(data, resolve, reject)
229
+ hms?.changeRolesOfAllPeers(data, resolve, reject)
199
230
  }
200
231
 
201
232
  @objc
202
- func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
233
+ func acceptRoleChange(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
203
234
  let hms = HMSHelper.getHms(data, hmsCollection)
204
235
 
205
- hms?.endRoom(data, resolve, reject)
236
+ hms?.acceptRoleChange(resolve, reject)
206
237
  }
207
238
 
239
+ // MARK: - Role Based Actions
240
+
208
241
  @objc
209
- func setPlaybackAllowed(_ data: NSDictionary) {
242
+ func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
210
243
  let hms = HMSHelper.getHms(data, hmsCollection)
211
244
 
212
- hms?.setPlaybackAllowed(data)
245
+ hms?.changeTrackState(data, resolve, reject)
213
246
  }
214
247
 
215
248
  @objc
216
- func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
249
+ func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
217
250
  let hms = HMSHelper.getHms(data, hmsCollection)
218
251
 
219
- hms?.isPlaybackAllowed(data, resolve, reject)
252
+ hms?.changeTrackStateForRoles(data, resolve, reject)
220
253
  }
221
254
 
222
255
  @objc
223
- func setPlaybackForAllAudio(_ data: NSDictionary) {
256
+ func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
224
257
  let hms = HMSHelper.getHms(data, hmsCollection)
225
258
 
226
- hms?.setPlaybackForAllAudio(data)
259
+ hms?.removePeer(data, resolve, reject)
227
260
  }
228
261
 
229
262
  @objc
230
- func remoteMuteAllAudio(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
263
+ func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
231
264
  let hms = HMSHelper.getHms(data, hmsCollection)
232
265
 
233
- hms?.remoteMuteAllAudio(resolve, reject)
266
+ hms?.endRoom(data, resolve, reject)
234
267
  }
235
268
 
269
+ // MARK: - Peer Actions
270
+
236
271
  @objc
237
272
  func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
238
273
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -241,12 +276,14 @@ class HMSManager: RCTEventEmitter {
241
276
  }
242
277
 
243
278
  @objc
244
- func setVolume(_ data: NSDictionary) {
279
+ func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
245
280
  let hms = HMSHelper.getHms(data, hmsCollection)
246
281
 
247
- hms?.setVolume(data)
282
+ hms?.changeName(data, resolve, reject)
248
283
  }
249
284
 
285
+ // MARK: - RTMP Streaming & Recording
286
+
250
287
  @objc
251
288
  func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
252
289
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -261,6 +298,8 @@ class HMSManager: RCTEventEmitter {
261
298
  hms?.stopRtmpAndRecording(resolve, reject)
262
299
  }
263
300
 
301
+ // MARK: - HLS Streaming & Recording
302
+
264
303
  @objc
265
304
  func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
266
305
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -275,33 +314,7 @@ class HMSManager: RCTEventEmitter {
275
314
  hms?.stopHLSStreaming(resolve, reject)
276
315
  }
277
316
 
278
- @objc
279
- func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
280
- let hms = HMSHelper.getHms(data, hmsCollection)
281
-
282
- hms?.changeName(data, resolve, reject)
283
- }
284
-
285
- @objc
286
- func enableRTCStats(_ data: NSDictionary) {
287
- let hms = HMSHelper.getHms(data, hmsCollection)
288
-
289
- hms?.enableRTCStats()
290
- }
291
-
292
- @objc
293
- func disableRTCStats(_ data: NSDictionary) {
294
- let hms = HMSHelper.getHms(data, hmsCollection)
295
-
296
- hms?.disableRTCStats()
297
- }
298
-
299
- @objc
300
- func destroy(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
301
- let id = data.value(forKey: "id") as? String ?? "12345"
302
- hmsCollection.removeValue(forKey: id)
303
- resolve?(["success": id + " removed"])
304
- }
317
+ // MARK: - Screen Share
305
318
 
306
319
  @objc
307
320
  func startScreenshare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
@@ -324,6 +337,8 @@ class HMSManager: RCTEventEmitter {
324
337
  hms?.isScreenShared(resolve, reject)
325
338
  }
326
339
 
340
+ // MARK: - Audio Playback
341
+
327
342
  @objc
328
343
  func playAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
329
344
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -380,6 +395,8 @@ class HMSManager: RCTEventEmitter {
380
395
  hms?.audioShareDuration(data, resolve, reject)
381
396
  }
382
397
 
398
+ // MARK: - Network Quality Updates
399
+
383
400
  @objc
384
401
  func enableNetworkQualityUpdates(_ data: NSDictionary) {
385
402
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -394,6 +411,8 @@ class HMSManager: RCTEventEmitter {
394
411
  hms?.disableNetworkQualityUpdates()
395
412
  }
396
413
 
414
+ // MARK: - Session Metadata
415
+
397
416
  @objc
398
417
  func setSessionMetaData(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
399
418
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -401,6 +420,8 @@ class HMSManager: RCTEventEmitter {
401
420
  hms?.setSessionMetaData(data, resolve, reject)
402
421
  }
403
422
 
423
+ // MARK: - Peer & Room Property Getter Functions
424
+
404
425
  @objc
405
426
  func getPeerProperty(_ data: NSDictionary) -> [AnyHashable: Any]? {
406
427
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -415,6 +436,8 @@ class HMSManager: RCTEventEmitter {
415
436
  return hms?.getRoomProperty(data)
416
437
  }
417
438
 
439
+ // MARK: - Enable/Disable HMS Events Emitting to JS
440
+
418
441
  @objc
419
442
  func enableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
420
443
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -429,6 +452,8 @@ class HMSManager: RCTEventEmitter {
429
452
  hms?.disableEvent(data, resolve, reject)
430
453
  }
431
454
 
455
+ // MARK: - Restrict sending whole HMSRole object
456
+
432
457
  @objc
433
458
  func restrictData(_ data: NSDictionary) {
434
459
  let hms = HMSHelper.getHms(data, hmsCollection)
@@ -436,6 +461,15 @@ class HMSManager: RCTEventEmitter {
436
461
  hms?.restrictData(data)
437
462
  }
438
463
 
464
+ // MARK: - Room Code Auth Token API
465
+
466
+ @objc
467
+ func getAuthTokenByRoomCode(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
468
+ let hms = HMSHelper.getHms(data, hmsCollection)
469
+
470
+ hms?.getAuthTokenByRoomCode(data, resolve, reject)
471
+ }
472
+
439
473
  // MARK: - HMS SDK Get APIs
440
474
  @objc
441
475
  func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
@@ -472,8 +506,49 @@ class HMSManager: RCTEventEmitter {
472
506
  hms?.getSessionMetaData(resolve, reject)
473
507
  }
474
508
 
475
- // MARK: - HMS SDK Delegate Callbacks
476
- func emitEvent(_ name: String, _ data: [String: Any]) {
477
- self.sendEvent(withName: name, body: data)
509
+ @objc
510
+ func getRemoteVideoTrackFromTrackId(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
511
+ let hms = HMSHelper.getHms(data, hmsCollection)
512
+
513
+ hms?.getRemoteVideoTrackFromTrackId(data, resolve, reject)
514
+ }
515
+
516
+ @objc
517
+ func getRemoteAudioTrackFromTrackId(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
518
+ let hms = HMSHelper.getHms(data, hmsCollection)
519
+
520
+ hms?.getRemoteAudioTrackFromTrackId(data, resolve, reject)
521
+ }
522
+
523
+ // MARK: - Simulcast
524
+
525
+ @objc
526
+ func getVideoTrackLayerDefinition(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
527
+ let hms = HMSHelper.getHms(data, hmsCollection)
528
+
529
+ hms?.getVideoTrackLayerDefinition(data, resolve, reject)
530
+ }
531
+
532
+ @objc
533
+ func getVideoTrackLayer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
534
+ let hms = HMSHelper.getHms(data, hmsCollection)
535
+
536
+ hms?.getVideoTrackLayer(data, resolve, reject)
537
+ }
538
+
539
+ @objc
540
+ func setVideoTrackLayer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
541
+ let hms = HMSHelper.getHms(data, hmsCollection)
542
+
543
+ hms?.setVideoTrackLayer(data, resolve, reject)
544
+ }
545
+
546
+ // MARK: - Advanced Camera Controls
547
+
548
+ @objc
549
+ func captureImageAtMaxSupportedResolution(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
550
+ let hms = HMSHelper.getHms(data, hmsCollection)
551
+
552
+ hms?.captureImageAtMaxSupportedResolution(data, resolve, reject)
478
553
  }
479
554
  }