tirtc-react-native 2.4.0-alpha.3 → 2.4.0-alpha.4

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 (34) hide show
  1. package/README.md +6 -6
  2. package/TiRtcReactNative.podspec +1 -1
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcModule.kt +146 -109
  5. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeCleanup.kt +23 -23
  6. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeEventBinder.kt +21 -24
  7. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeEventSink.kt +6 -10
  8. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeMaps.kt +5 -5
  9. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeRegistry.kt +11 -11
  10. package/android/src/main/java/com/tange/ai/tirtc/reactnative/{TiRtcReactNativeStoreSupport.kt → TiRtcReactNativeStorageSupport.kt} +9 -9
  11. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcVideoOutputViewManager.kt +2 -2
  12. package/ios/TiRtcReactNative+Conn.mm +5 -5
  13. package/ios/TiRtcReactNative+Storage.mm +513 -0
  14. package/ios/TiRtcReactNative.mm +19 -19
  15. package/ios/TiRtcReactNativeEventBinder.h +8 -8
  16. package/ios/TiRtcReactNativeEventBinder.mm +31 -33
  17. package/ios/TiRtcReactNativeEventSink.h +3 -4
  18. package/ios/TiRtcReactNativeEventSink.mm +6 -10
  19. package/ios/TiRtcVideoOutputView.mm +4 -4
  20. package/lib/module/index.js +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/{store.js → storage.js} +184 -176
  23. package/lib/module/storage.js.map +1 -0
  24. package/lib/typescript/index.d.ts +2 -2
  25. package/lib/typescript/specs/NativeTiRtc.d.ts +42 -42
  26. package/lib/typescript/storage.d.ts +204 -0
  27. package/package.json +1 -1
  28. package/src/index.ts +44 -44
  29. package/src/specs/NativeTiRtc.ts +47 -47
  30. package/src/storage.ts +769 -0
  31. package/ios/TiRtcReactNative+Store.mm +0 -496
  32. package/lib/module/store.js.map +0 -1
  33. package/lib/typescript/store.d.ts +0 -202
  34. package/src/store.ts +0 -760
@@ -1,496 +0,0 @@
1
- #import "TiRtcReactNative+Private.h"
2
-
3
- #import "TiRtcReactNativeErrors.h"
4
- #import "TiRtcReactNativeMaps.h"
5
-
6
- #pragma clang diagnostic push
7
- #pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
8
-
9
- static NSInteger TiRtcReactNativeStoreReplaySpeedValue(TiStoreReplaySpeed speed) {
10
- switch (speed) {
11
- case TiStoreReplaySpeedX1: return 0;
12
- case TiStoreReplaySpeedX2: return 1;
13
- case TiStoreReplaySpeedX4: return 2;
14
- case TiStoreReplaySpeedX8: return 3;
15
- }
16
- return 0;
17
- }
18
-
19
- static BOOL TiRtcReactNativeStoreReplaySpeedFromValue(NSInteger value, TiStoreReplaySpeed* speed) {
20
- switch (value) {
21
- case 0: *speed = TiStoreReplaySpeedX1; return YES;
22
- case 1: *speed = TiStoreReplaySpeedX2; return YES;
23
- case 2: *speed = TiStoreReplaySpeedX4; return YES;
24
- case 3: *speed = TiStoreReplaySpeedX8; return YES;
25
- default: return NO;
26
- }
27
- }
28
-
29
- static NSString* TiRtcReactNativeStoreAudioState(TiStoreAudioOutputState state) {
30
- switch (state) {
31
- case TiStoreAudioOutputStateIdle: return @"idle";
32
- case TiStoreAudioOutputStateBuffering: return @"buffering";
33
- case TiStoreAudioOutputStatePlaying: return @"playing";
34
- case TiStoreAudioOutputStateFailed: return @"failed";
35
- case TiStoreAudioOutputStatePaused: return @"paused";
36
- case TiStoreAudioOutputStateCompleted: return @"completed";
37
- }
38
- return @"failed";
39
- }
40
-
41
- static NSString* TiRtcReactNativeStoreVideoState(TiStoreVideoOutputState state) {
42
- switch (state) {
43
- case TiStoreVideoOutputStateIdle: return @"idle";
44
- case TiStoreVideoOutputStateBuffering: return @"buffering";
45
- case TiStoreVideoOutputStateRendering: return @"rendering";
46
- case TiStoreVideoOutputStateFailed: return @"failed";
47
- case TiStoreVideoOutputStatePaused: return @"paused";
48
- case TiStoreVideoOutputStateCompleted: return @"completed";
49
- }
50
- return @"failed";
51
- }
52
-
53
- static NSDictionary* TiRtcReactNativeStoreMp4Result(
54
- TiRtcReactNativeRegistry* registry, TiStoreRecordingResult* result) {
55
- NSInteger fileId = result.file == nil ? 0 : [registry addTransientObject:result.file];
56
- return @{
57
- @"code" : @(TiRtcReactNativeNormalizeDarwin(result.code)),
58
- @"fileId" : fileId == 0 ? (id)kCFNull : @(fileId),
59
- @"filePath" : result.file.path ?: (id)kCFNull,
60
- @"durationMs" : result.file == nil ? (id)kCFNull : @(result.file.durationMs),
61
- };
62
- }
63
-
64
- @interface TiRtcReactNativeStoreExportBridge : NSObject <TiRtcReactNativeReloadTask>
65
- @property(nonatomic, strong) TiStoreExportTask* task;
66
- @property(nonatomic, assign) NSInteger objectId;
67
- - (instancetype)initWithRegistry:(TiRtcReactNativeRegistry*)registry;
68
- - (void)complete:(TiStoreRecordingResult*)result;
69
- - (void)await:(RCTPromiseResolveBlock)resolve;
70
- @end
71
-
72
- @implementation TiRtcReactNativeStoreExportBridge {
73
- TiRtcReactNativeRegistry* _registry;
74
- TiStoreRecordingResult* _result;
75
- NSMutableArray<RCTPromiseResolveBlock>* _waiters;
76
- BOOL _invalidated;
77
- void (^_invalidationCompletion)(id file);
78
- }
79
-
80
- - (instancetype)initWithRegistry:(TiRtcReactNativeRegistry*)registry {
81
- if (self = [super init]) {
82
- _registry = registry;
83
- _waiters = [NSMutableArray new];
84
- }
85
- return self;
86
- }
87
-
88
- - (void)complete:(TiStoreRecordingResult*)result {
89
- NSArray<RCTPromiseResolveBlock>* waiters;
90
- void (^invalidationCompletion)(id file);
91
- @synchronized(self) {
92
- if (_result != nil) return;
93
- _result = result;
94
- waiters = _invalidated ? @[] : [_waiters copy];
95
- [_waiters removeAllObjects];
96
- invalidationCompletion = _invalidationCompletion;
97
- _invalidationCompletion = nil;
98
- }
99
- for (RCTPromiseResolveBlock resolve in waiters) {
100
- resolve(TiRtcReactNativeStoreMp4Result(_registry, result));
101
- }
102
- if (waiters.count > 0 && self.objectId > 0) [_registry releaseObject:self.objectId];
103
- if (invalidationCompletion != nil) invalidationCompletion(result.file);
104
- }
105
-
106
- - (void)await:(RCTPromiseResolveBlock)resolve {
107
- TiStoreRecordingResult* result;
108
- @synchronized(self) {
109
- result = _result;
110
- if (result == nil) {
111
- [_waiters addObject:[resolve copy]];
112
- return;
113
- }
114
- }
115
- resolve(TiRtcReactNativeStoreMp4Result(_registry, result));
116
- if (self.objectId > 0) [_registry releaseObject:self.objectId];
117
- }
118
-
119
- - (void)stopForReactNativeInvalidation:(void (^)(id file))completion {
120
- TiStoreRecordingResult* result;
121
- @synchronized(self) {
122
- _invalidated = YES;
123
- [_waiters removeAllObjects];
124
- result = _result;
125
- if (result == nil) _invalidationCompletion = [completion copy];
126
- }
127
- if (result != nil) {
128
- completion(result.file);
129
- return;
130
- }
131
- int32_t code = [self.task stop];
132
- if (code != 0) {
133
- @synchronized(self) {
134
- _invalidationCompletion = nil;
135
- }
136
- completion(nil);
137
- }
138
- }
139
-
140
- @end
141
-
142
- @implementation TiRtcReactNative (Store)
143
-
144
- - (void)storeInitialize:(JS::NativeTiRtc::NativeInitOptions&)options
145
- resolve:(RCTPromiseResolveBlock)resolve
146
- reject:(RCTPromiseRejectBlock)reject {
147
- int32_t code = [TiStore initializeWithAppId:options.appId() ?: @""
148
- endpoint:options.endpoint() ?: @""
149
- consoleLogEnabled:options.consoleLogEnabled()];
150
- resolve(@(TiRtcReactNativeNormalizeDarwin(code)));
151
- }
152
-
153
- - (NSNumber*)storeShutdown {
154
- return @(TiRtcReactNativeNormalizeDarwin([TiStore shutdown]));
155
- }
156
-
157
- - (NSDictionary*)storeCreate:(NSString*)token {
158
- return [self
159
- registerObject:^id { return [[TiStore alloc] initWithToken:token]; }
160
- wire:^id(NSInteger objectId, id object) {
161
- return [[self eventBinder] wireStore:(TiStore*)object objectId:objectId];
162
- }];
163
- }
164
-
165
- - (NSNumber*)storeUpdateToken:(double)objectId token:(NSString*)token {
166
- id object = [[self registry] objectForId:(NSInteger)objectId];
167
- return [object isKindOfClass:[TiStore class]]
168
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStore*)object updateToken:token]))
169
- : @(TiRtcReactNativeErrorObjectReleased);
170
- }
171
-
172
- - (void)storeListRecordings:(double)objectId
173
- startTimeMs:(double)startTimeMs
174
- endTimeMs:(double)endTimeMs
175
- resolve:(RCTPromiseResolveBlock)resolve
176
- reject:(RCTPromiseRejectBlock)reject {
177
- id object = [[self registry] objectForId:(NSInteger)objectId];
178
- if (![object isKindOfClass:[TiStore class]]) {
179
- resolve(@{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"recordings" : @[]});
180
- return;
181
- }
182
- TiStore* store = (TiStore*)object;
183
- dispatch_async(dispatch_get_main_queue(), ^{
184
- [store listRecordingsWithStartTimeMs:(int64_t)startTimeMs
185
- endTimeMs:(int64_t)endTimeMs
186
- completion:^(TiStoreRecordingRangesResult* result) {
187
- NSMutableArray* ranges = [NSMutableArray arrayWithCapacity:result.recordings.count];
188
- for (TiStoreRecordingRange* range in result.recordings) {
189
- [ranges addObject:@{@"startTimeMs" : @(range.startTimeMs), @"endTimeMs" : @(range.endTimeMs)}];
190
- }
191
- resolve(@{@"code" : @(TiRtcReactNativeNormalizeDarwin(result.code)), @"recordings" : ranges});
192
- }];
193
- });
194
- }
195
-
196
- - (void)storeListRecordingDays:(double)objectId
197
- startDate:(NSString*)startDate
198
- endDate:(NSString*)endDate
199
- timeZoneId:(NSString*)timeZoneId
200
- resolve:(RCTPromiseResolveBlock)resolve
201
- reject:(RCTPromiseRejectBlock)reject {
202
- id object = [[self registry] objectForId:(NSInteger)objectId];
203
- if (![object isKindOfClass:[TiStore class]]) {
204
- resolve(@{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"days" : @[]});
205
- return;
206
- }
207
- TiStore* store = (TiStore*)object;
208
- dispatch_async(dispatch_get_main_queue(), ^{
209
- [store listRecordingDaysWithStartDate:startDate
210
- endDate:endDate
211
- timeZoneId:timeZoneId
212
- completion:^(TiStoreRecordingDaysResult* result) {
213
- NSMutableArray* days = [NSMutableArray arrayWithCapacity:result.days.count];
214
- for (TiStoreRecordingDay* day in result.days) {
215
- [days addObject:@{@"date" : day.date, @"hasRecording" : @(day.hasRecording)}];
216
- }
217
- resolve(@{@"code" : @(TiRtcReactNativeNormalizeDarwin(result.code)), @"days" : days});
218
- }];
219
- });
220
- }
221
-
222
- - (NSDictionary*)storeCreateReplay:(double)objectId {
223
- id object = [[self registry] objectForId:(NSInteger)objectId];
224
- if (![object isKindOfClass:[TiStore class]]) {
225
- return TiRtcReactNativeCreateResult(TiRtcReactNativeErrorObjectReleased, 0, 0, nil);
226
- }
227
- return [self
228
- registerObject:^id { return [(TiStore*)object createReplay]; }
229
- wire:^id(NSInteger replayId, id replay) {
230
- return [[self eventBinder] wireStoreReplay:(TiStoreReplay*)replay objectId:replayId];
231
- }];
232
- }
233
-
234
- - (NSDictionary*)storeExportRecording:(double)objectId
235
- startTimeMs:(double)startTimeMs
236
- endTimeMs:(double)endTimeMs
237
- videoChannelId:(double)videoChannelId
238
- audioChannelId:(NSNumber*)audioChannelId {
239
- id object = [[self registry] objectForId:(NSInteger)objectId];
240
- if (![object isKindOfClass:[TiStore class]]) {
241
- return @{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"taskId" : (id)kCFNull};
242
- }
243
- TiRtcReactNativeStoreExportBridge* bridge =
244
- [[TiRtcReactNativeStoreExportBridge alloc] initWithRegistry:[self registry]];
245
- TiStoreExportRequest* request = [[TiStoreExportRequest alloc]
246
- initWithStartTimeMs:(int64_t)startTimeMs
247
- endTimeMs:(int64_t)endTimeMs
248
- videoChannelId:(NSInteger)videoChannelId
249
- audioChannelId:audioChannelId];
250
- TiStoreExportTaskStartResult* started = [(TiStore*)object
251
- exportRecording:request
252
- progress:nil
253
- completion:^(TiStoreRecordingResult* result) { [bridge complete:result]; }];
254
- if (started.code != 0 || started.task == nil) {
255
- return @{@"code" : @(TiRtcReactNativeNormalizeDarwin(started.code)), @"taskId" : (id)kCFNull};
256
- }
257
- bridge.task = started.task;
258
- bridge.objectId = [[self registry] addObject:bridge];
259
- return @{@"code" : @0, @"taskId" : @(bridge.objectId)};
260
- }
261
-
262
- - (NSNumber*)storeExportProgress:(double)objectId {
263
- id object = [[self registry] objectForId:(NSInteger)objectId];
264
- return [object isKindOfClass:[TiRtcReactNativeStoreExportBridge class]]
265
- ? @(((TiRtcReactNativeStoreExportBridge*)object).task.progress)
266
- : @0;
267
- }
268
-
269
- - (void)storeExportResult:(double)objectId
270
- resolve:(RCTPromiseResolveBlock)resolve
271
- reject:(RCTPromiseRejectBlock)reject {
272
- id object = [[self registry] objectForId:(NSInteger)objectId];
273
- if (![object isKindOfClass:[TiRtcReactNativeStoreExportBridge class]]) {
274
- resolve(@{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"fileId" : (id)kCFNull,
275
- @"filePath" : (id)kCFNull, @"durationMs" : (id)kCFNull});
276
- return;
277
- }
278
- [(TiRtcReactNativeStoreExportBridge*)object await:resolve];
279
- }
280
-
281
- - (NSNumber*)storeExportStop:(double)objectId {
282
- id object = [[self registry] objectForId:(NSInteger)objectId];
283
- if (![object isKindOfClass:[TiRtcReactNativeStoreExportBridge class]]) {
284
- return @(TiRtcReactNativeErrorObjectReleased);
285
- }
286
- TiStoreExportTask* task = ((TiRtcReactNativeStoreExportBridge*)object).task;
287
- return @(TiRtcReactNativeNormalizeDarwin([task stop]));
288
- }
289
-
290
- - (NSNumber*)storeDispose:(double)objectId {
291
- id object = [[self registry] objectForId:(NSInteger)objectId];
292
- if (![object isKindOfClass:[TiStore class]]) return @(TiRtcReactNativeErrorObjectReleased);
293
- int32_t code = [(TiStore*)object dispose];
294
- if (code == 0) [[self registry] releaseObject:(NSInteger)objectId];
295
- return @(TiRtcReactNativeNormalizeDarwin(code));
296
- }
297
-
298
- - (NSDictionary*)storeReplayGetInfo:(double)objectId {
299
- id object = [[self registry] objectForId:(NSInteger)objectId];
300
- if (![object isKindOfClass:[TiStoreReplay class]]) {
301
- return @{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"speed" : @0,
302
- @"currentTimeMs" : (id)kCFNull};
303
- }
304
- TiStoreReplay* replay = (TiStoreReplay*)object;
305
- return @{@"code" : @0, @"speed" : @(TiRtcReactNativeStoreReplaySpeedValue(replay.speed)),
306
- @"currentTimeMs" : replay.currentTimeMs ?: (id)kCFNull};
307
- }
308
-
309
- - (NSNumber*)storeReplayPlay:(double)objectId
310
- startTimeMs:(double)startTimeMs
311
- endTimeMs:(double)endTimeMs
312
- initialTimeMs:(NSNumber*)initialTimeMs {
313
- id object = [[self registry] objectForId:(NSInteger)objectId];
314
- return [object isKindOfClass:[TiStoreReplay class]]
315
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreReplay*)object
316
- playWithStartTimeMs:(int64_t)startTimeMs
317
- endTimeMs:(int64_t)endTimeMs
318
- initialTimeMs:initialTimeMs]))
319
- : @(TiRtcReactNativeErrorObjectReleased);
320
- }
321
-
322
- - (NSNumber*)storeReplayPause:(double)objectId { return [self storeReplayCode:objectId selector:@selector(pause)]; }
323
- - (NSNumber*)storeReplayResume:(double)objectId { return [self storeReplayCode:objectId selector:@selector(resume)]; }
324
- - (NSNumber*)storeReplayStop:(double)objectId { return [self storeReplayCode:objectId selector:@selector(stop)]; }
325
-
326
- - (NSNumber*)storeReplaySeek:(double)objectId timeMs:(double)timeMs {
327
- id object = [[self registry] objectForId:(NSInteger)objectId];
328
- return [object isKindOfClass:[TiStoreReplay class]]
329
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreReplay*)object seekToTimeMs:(int64_t)timeMs]))
330
- : @(TiRtcReactNativeErrorObjectReleased);
331
- }
332
-
333
- - (NSNumber*)storeReplaySetSpeed:(double)objectId speed:(double)speed {
334
- id object = [[self registry] objectForId:(NSInteger)objectId];
335
- if (![object isKindOfClass:[TiStoreReplay class]]) return @(TiRtcReactNativeErrorObjectReleased);
336
- TiStoreReplaySpeed mapped;
337
- if (!TiRtcReactNativeStoreReplaySpeedFromValue((NSInteger)speed, &mapped)) return @(6000);
338
- return @(TiRtcReactNativeNormalizeDarwin([(TiStoreReplay*)object setSpeed:mapped]));
339
- }
340
-
341
- - (NSDictionary*)storeReplayStartRecording:(double)objectId
342
- videoChannelId:(double)videoChannelId
343
- audioChannelId:(NSNumber*)audioChannelId {
344
- id object = [[self registry] objectForId:(NSInteger)objectId];
345
- if (![object isKindOfClass:[TiStoreReplay class]]) {
346
- return @{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"taskId" : (id)kCFNull};
347
- }
348
- TiStoreRecordingTaskStartResult* started = [(TiStoreReplay*)object
349
- startRecordingWithVideoChannelId:(NSInteger)videoChannelId audioChannelId:audioChannelId];
350
- if (started.code != 0 || started.task == nil) {
351
- return @{@"code" : @(TiRtcReactNativeNormalizeDarwin(started.code)), @"taskId" : (id)kCFNull};
352
- }
353
- NSInteger taskId = [[self registry] addObject:started.task];
354
- return @{@"code" : @0, @"taskId" : @(taskId)};
355
- }
356
-
357
- - (void)storeRecordingTaskStop:(double)objectId
358
- resolve:(RCTPromiseResolveBlock)resolve
359
- reject:(RCTPromiseRejectBlock)reject {
360
- id object = [[self registry] objectForId:(NSInteger)objectId];
361
- if (![object isKindOfClass:[TiStoreRecordingTask class]]) {
362
- resolve(@{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"fileId" : (id)kCFNull,
363
- @"filePath" : (id)kCFNull, @"durationMs" : (id)kCFNull});
364
- return;
365
- }
366
- [(TiStoreRecordingTask*)object stopWithCompletion:^(TiStoreRecordingResult* result) {
367
- [[self registry] releaseObject:(NSInteger)objectId];
368
- resolve(TiRtcReactNativeStoreMp4Result([self registry], result));
369
- }];
370
- }
371
-
372
- - (NSNumber*)storeReplayDispose:(double)objectId {
373
- id object = [[self registry] objectForId:(NSInteger)objectId];
374
- if (![object isKindOfClass:[TiStoreReplay class]]) return @(TiRtcReactNativeErrorObjectReleased);
375
- int32_t code = [(TiStoreReplay*)object dispose];
376
- if (code == 0) [[self registry] releaseObject:(NSInteger)objectId];
377
- return @(TiRtcReactNativeNormalizeDarwin(code));
378
- }
379
-
380
- - (NSNumber*)storeReplayCode:(double)objectId selector:(SEL)selector {
381
- id object = [[self registry] objectForId:(NSInteger)objectId];
382
- if (![object isKindOfClass:[TiStoreReplay class]]) return @(TiRtcReactNativeErrorObjectReleased);
383
- IMP implementation = [object methodForSelector:selector];
384
- int32_t (*call)(id, SEL) = (int32_t (*)(id, SEL))implementation;
385
- return @(TiRtcReactNativeNormalizeDarwin(call(object, selector)));
386
- }
387
-
388
- - (NSDictionary*)storeCreateAudioOutput {
389
- return [self
390
- registerObject:^id { return [TiStoreAudioOutput new]; }
391
- wire:^id(NSInteger objectId, id object) {
392
- return [[self eventBinder] wireStoreAudioOutput:(TiStoreAudioOutput*)object objectId:objectId];
393
- }];
394
- }
395
-
396
- - (NSDictionary*)storeAudioOutputGetState:(double)objectId {
397
- id object = [[self registry] objectForId:(NSInteger)objectId];
398
- if (![object isKindOfClass:[TiStoreAudioOutput class]]) {
399
- return TiRtcReactNativeStateResult(TiRtcReactNativeErrorObjectReleased, nil);
400
- }
401
- return TiRtcReactNativeStateResult(0, TiRtcReactNativeStoreAudioState(((TiStoreAudioOutput*)object).state));
402
- }
403
-
404
- - (NSNumber*)storeAudioOutputSetVolume:(double)objectId volumePercent:(double)volumePercent {
405
- id object = [[self registry] objectForId:(NSInteger)objectId];
406
- return [object isKindOfClass:[TiStoreAudioOutput class]]
407
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreAudioOutput*)object setVolume:(uint32_t)volumePercent]))
408
- : @(TiRtcReactNativeErrorObjectReleased);
409
- }
410
-
411
- - (NSNumber*)storeAudioOutputAttach:(double)outputId replayId:(double)replayId channelId:(double)channelId {
412
- id output = [[self registry] objectForId:(NSInteger)outputId];
413
- id replay = [[self registry] objectForId:(NSInteger)replayId];
414
- return [output isKindOfClass:[TiStoreAudioOutput class]] && [replay isKindOfClass:[TiStoreReplay class]]
415
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreAudioOutput*)output
416
- attachWithReplay:(TiStoreReplay*)replay channelId:(uint8_t)channelId]))
417
- : @(TiRtcReactNativeErrorObjectReleased);
418
- }
419
-
420
- - (NSNumber*)storeAudioOutputDetach:(double)objectId {
421
- id object = [[self registry] objectForId:(NSInteger)objectId];
422
- return [object isKindOfClass:[TiStoreAudioOutput class]]
423
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreAudioOutput*)object detach]))
424
- : @(TiRtcReactNativeErrorObjectReleased);
425
- }
426
-
427
- - (NSNumber*)storeAudioOutputDispose:(double)objectId {
428
- id object = [[self registry] objectForId:(NSInteger)objectId];
429
- if (![object isKindOfClass:[TiStoreAudioOutput class]]) return @(TiRtcReactNativeErrorObjectReleased);
430
- int32_t code = [(TiStoreAudioOutput*)object dispose];
431
- if (code == 0) [[self registry] releaseObject:(NSInteger)objectId];
432
- return @(TiRtcReactNativeNormalizeDarwin(code));
433
- }
434
-
435
- - (NSDictionary*)storeCreateVideoOutput {
436
- return [self
437
- registerObject:^id { return [TiStoreVideoOutput new]; }
438
- wire:^id(NSInteger objectId, id object) {
439
- return [[self eventBinder] wireStoreVideoOutput:(TiStoreVideoOutput*)object objectId:objectId];
440
- }];
441
- }
442
-
443
- - (NSDictionary*)storeVideoOutputGetState:(double)objectId {
444
- id object = [[self registry] objectForId:(NSInteger)objectId];
445
- if (![object isKindOfClass:[TiStoreVideoOutput class]]) {
446
- return TiRtcReactNativeStateResult(TiRtcReactNativeErrorObjectReleased, nil);
447
- }
448
- return TiRtcReactNativeStateResult(0, TiRtcReactNativeStoreVideoState(((TiStoreVideoOutput*)object).state));
449
- }
450
-
451
- - (NSNumber*)storeVideoOutputAttach:(double)outputId replayId:(double)replayId channelId:(double)channelId {
452
- id output = [[self registry] objectForId:(NSInteger)outputId];
453
- id replay = [[self registry] objectForId:(NSInteger)replayId];
454
- return [output isKindOfClass:[TiStoreVideoOutput class]] && [replay isKindOfClass:[TiStoreReplay class]]
455
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreVideoOutput*)output
456
- attachWithReplay:(TiStoreReplay*)replay channelId:(uint8_t)channelId]))
457
- : @(TiRtcReactNativeErrorObjectReleased);
458
- }
459
-
460
- - (NSNumber*)storeVideoOutputDetach:(double)objectId {
461
- id object = [[self registry] objectForId:(NSInteger)objectId];
462
- return [object isKindOfClass:[TiStoreVideoOutput class]]
463
- ? @(TiRtcReactNativeNormalizeDarwin([(TiStoreVideoOutput*)object detach]))
464
- : @(TiRtcReactNativeErrorObjectReleased);
465
- }
466
-
467
- - (void)storeVideoOutputTakeSnapshot:(double)objectId
468
- resolve:(RCTPromiseResolveBlock)resolve
469
- reject:(RCTPromiseRejectBlock)reject {
470
- id object = [[self registry] objectForId:(NSInteger)objectId];
471
- if (![object isKindOfClass:[TiStoreVideoOutput class]]) {
472
- resolve(@{@"code" : @(TiRtcReactNativeErrorObjectReleased), @"fileId" : (id)kCFNull,
473
- @"filePath" : (id)kCFNull});
474
- return;
475
- }
476
- TiStoreVideoOutput* output = (TiStoreVideoOutput*)object;
477
- dispatch_async(dispatch_get_main_queue(), ^{
478
- [output takeSnapshotWithCompletion:^(TiStoreSnapshotResult* result) {
479
- NSInteger fileId = result.file == nil ? 0 : [[self registry] addTransientObject:result.file];
480
- resolve(@{@"code" : @(TiRtcReactNativeNormalizeDarwin(result.code)),
481
- @"fileId" : fileId == 0 ? (id)kCFNull : @(fileId),
482
- @"filePath" : result.file.path ?: (id)kCFNull});
483
- }];
484
- });
485
- }
486
-
487
- - (NSNumber*)storeVideoOutputDispose:(double)objectId {
488
- id object = [[self registry] objectForId:(NSInteger)objectId];
489
- if (![object isKindOfClass:[TiStoreVideoOutput class]]) return @(TiRtcReactNativeErrorObjectReleased);
490
- int32_t code = [(TiStoreVideoOutput*)object dispose];
491
- if (code == 0) [[self registry] releaseObject:(NSInteger)objectId];
492
- return @(TiRtcReactNativeNormalizeDarwin(code));
493
- }
494
-
495
- @end
496
- #pragma clang diagnostic pop
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}