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

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 (77) hide show
  1. package/README.md +23 -7
  2. package/TiRtcReactNative.podspec +1 -1
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/AndroidManifest.xml +2 -1
  5. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcModule.kt +585 -28
  6. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeCleanup.kt +115 -0
  7. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeEventBinder.kt +35 -8
  8. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeEventSink.kt +20 -0
  9. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeMaps.kt +62 -0
  10. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeModuleSupport.kt +6 -6
  11. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeRegistry.kt +27 -0
  12. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcReactNativeStoreSupport.kt +64 -0
  13. package/android/src/main/java/com/tange/ai/tirtc/reactnative/TiRtcVideoOutputViewManager.kt +17 -2
  14. package/ios/TiRtcReactNative+Conn.mm +173 -2
  15. package/ios/TiRtcReactNative+Input.mm +18 -4
  16. package/ios/TiRtcReactNative+Output.mm +41 -4
  17. package/ios/TiRtcReactNative+Private.h +4 -0
  18. package/ios/TiRtcReactNative+Store.mm +496 -0
  19. package/ios/TiRtcReactNative.h +2 -1
  20. package/ios/TiRtcReactNative.mm +109 -1
  21. package/ios/TiRtcReactNativeEventBinder.h +8 -0
  22. package/ios/TiRtcReactNativeEventBinder.mm +104 -0
  23. package/ios/TiRtcReactNativeEventSink.h +4 -0
  24. package/ios/TiRtcReactNativeEventSink.mm +20 -0
  25. package/ios/TiRtcReactNativeRegistry.h +5 -0
  26. package/ios/TiRtcReactNativeRegistry.mm +43 -0
  27. package/ios/TiRtcVideoOutputView.mm +11 -0
  28. package/lib/module/audio_input.js +33 -17
  29. package/lib/module/audio_input.js.map +1 -1
  30. package/lib/module/audio_output.js +27 -10
  31. package/lib/module/audio_output.js.map +1 -1
  32. package/lib/module/conn.js +31 -7
  33. package/lib/module/conn.js.map +1 -1
  34. package/lib/module/errors.js +4 -3
  35. package/lib/module/errors.js.map +1 -1
  36. package/lib/module/index.js +2 -0
  37. package/lib/module/index.js.map +1 -1
  38. package/lib/module/logging.js +9 -1
  39. package/lib/module/logging.js.map +1 -1
  40. package/lib/module/logging_internal.js +27 -0
  41. package/lib/module/logging_internal.js.map +1 -0
  42. package/lib/module/recording.js +210 -0
  43. package/lib/module/recording.js.map +1 -0
  44. package/lib/module/runtime.js +13 -5
  45. package/lib/module/runtime.js.map +1 -1
  46. package/lib/module/specs/NativeTiRtc.js.map +1 -1
  47. package/lib/module/store.js +698 -0
  48. package/lib/module/store.js.map +1 -0
  49. package/lib/module/video_input.js +40 -22
  50. package/lib/module/video_input.js.map +1 -1
  51. package/lib/module/video_output.js +51 -10
  52. package/lib/module/video_output.js.map +1 -1
  53. package/lib/typescript/audio_input.d.ts +1 -0
  54. package/lib/typescript/conn.d.ts +2 -0
  55. package/lib/typescript/errors.d.ts +3 -2
  56. package/lib/typescript/index.d.ts +4 -0
  57. package/lib/typescript/logging_internal.d.ts +2 -0
  58. package/lib/typescript/recording.d.ts +53 -0
  59. package/lib/typescript/runtime.d.ts +2 -0
  60. package/lib/typescript/specs/NativeTiRtc.d.ts +88 -0
  61. package/lib/typescript/store.d.ts +202 -0
  62. package/lib/typescript/video_input.d.ts +1 -0
  63. package/lib/typescript/video_output.d.ts +3 -0
  64. package/package.json +1 -1
  65. package/src/audio_input.ts +85 -59
  66. package/src/audio_output.ts +30 -17
  67. package/src/conn.ts +46 -28
  68. package/src/errors.ts +4 -3
  69. package/src/index.ts +54 -0
  70. package/src/logging.ts +7 -1
  71. package/src/logging_internal.ts +23 -0
  72. package/src/recording.ts +271 -0
  73. package/src/runtime.ts +14 -5
  74. package/src/specs/NativeTiRtc.ts +123 -0
  75. package/src/store.ts +760 -0
  76. package/src/video_input.ts +97 -62
  77. package/src/video_output.ts +54 -16
@@ -116,6 +116,82 @@
116
116
  eventSink:(TiRtcReactNativeEventSink*)eventSink;
117
117
  @end
118
118
 
119
+ @interface TiRtcReactNativeStoreAudioOutputDelegate : NSObject <TiStoreAudioOutputDelegate>
120
+ - (instancetype)initWithObjectId:(NSInteger)objectId
121
+ eventSink:(TiRtcReactNativeEventSink*)eventSink;
122
+ @end
123
+
124
+ @implementation TiRtcReactNativeStoreAudioOutputDelegate {
125
+ NSInteger _objectId;
126
+ TiRtcReactNativeEventSink* _eventSink;
127
+ }
128
+
129
+ - (instancetype)initWithObjectId:(NSInteger)objectId
130
+ eventSink:(TiRtcReactNativeEventSink*)eventSink {
131
+ if (self = [super init]) {
132
+ _objectId = objectId;
133
+ _eventSink = eventSink;
134
+ }
135
+ return self;
136
+ }
137
+
138
+ - (void)audioOutput:(TiStoreAudioOutput*)output didChangeState:(TiStoreAudioOutputState)state {
139
+ NSString* value;
140
+ switch (state) {
141
+ case TiStoreAudioOutputStateIdle: value = @"idle"; break;
142
+ case TiStoreAudioOutputStateBuffering: value = @"buffering"; break;
143
+ case TiStoreAudioOutputStatePlaying: value = @"playing"; break;
144
+ case TiStoreAudioOutputStatePaused: value = @"paused"; break;
145
+ case TiStoreAudioOutputStateCompleted: value = @"completed"; break;
146
+ case TiStoreAudioOutputStateFailed: default: value = @"failed"; break;
147
+ }
148
+ [_eventSink audioOutputStateChanged:_objectId state:value];
149
+ }
150
+
151
+ - (void)audioOutput:(TiStoreAudioOutput*)output didFailWithCode:(int32_t)code {
152
+ [_eventSink audioOutputError:_objectId code:code message:nil];
153
+ }
154
+
155
+ @end
156
+
157
+ @interface TiRtcReactNativeStoreVideoOutputDelegate : NSObject <TiStoreVideoOutputDelegate>
158
+ - (instancetype)initWithObjectId:(NSInteger)objectId
159
+ eventSink:(TiRtcReactNativeEventSink*)eventSink;
160
+ @end
161
+
162
+ @implementation TiRtcReactNativeStoreVideoOutputDelegate {
163
+ NSInteger _objectId;
164
+ TiRtcReactNativeEventSink* _eventSink;
165
+ }
166
+
167
+ - (instancetype)initWithObjectId:(NSInteger)objectId
168
+ eventSink:(TiRtcReactNativeEventSink*)eventSink {
169
+ if (self = [super init]) {
170
+ _objectId = objectId;
171
+ _eventSink = eventSink;
172
+ }
173
+ return self;
174
+ }
175
+
176
+ - (void)videoOutput:(TiStoreVideoOutput*)output didChangeState:(TiStoreVideoOutputState)state {
177
+ NSString* value;
178
+ switch (state) {
179
+ case TiStoreVideoOutputStateIdle: value = @"idle"; break;
180
+ case TiStoreVideoOutputStateBuffering: value = @"buffering"; break;
181
+ case TiStoreVideoOutputStateRendering: value = @"rendering"; break;
182
+ case TiStoreVideoOutputStatePaused: value = @"paused"; break;
183
+ case TiStoreVideoOutputStateCompleted: value = @"completed"; break;
184
+ case TiStoreVideoOutputStateFailed: default: value = @"failed"; break;
185
+ }
186
+ [_eventSink videoOutputStateChanged:_objectId state:value];
187
+ }
188
+
189
+ - (void)videoOutput:(TiStoreVideoOutput*)output didFailWithCode:(int32_t)code {
190
+ [_eventSink videoOutputError:_objectId code:code message:nil];
191
+ }
192
+
193
+ @end
194
+
119
195
  @implementation TiRtcReactNativeAudioInputDelegate {
120
196
  NSInteger _objectId;
121
197
  TiRtcReactNativeEventSink* _eventSink;
@@ -223,4 +299,32 @@
223
299
  return delegate;
224
300
  }
225
301
 
302
+ - (id)wireStore:(TiStore*)store objectId:(NSInteger)objectId {
303
+ TiRtcReactNativeEventSink* sink = _eventSink;
304
+ store.onTokenExpired = ^{ [sink storeTokenExpired:objectId]; };
305
+ return nil;
306
+ }
307
+
308
+ - (id)wireStoreReplay:(TiStoreReplay*)replay objectId:(NSInteger)objectId {
309
+ TiRtcReactNativeEventSink* sink = _eventSink;
310
+ replay.onTimeChanged = ^(int64_t timeMs) { [sink storeReplayTimeChanged:objectId timestampMs:timeMs]; };
311
+ replay.onCompleted = ^{ [sink storeReplayCompleted:objectId]; };
312
+ replay.onError = ^(int32_t code) { [sink storeReplayError:objectId code:code]; };
313
+ return nil;
314
+ }
315
+
316
+ - (id)wireStoreAudioOutput:(TiStoreAudioOutput*)output objectId:(NSInteger)objectId {
317
+ TiRtcReactNativeStoreAudioOutputDelegate* delegate =
318
+ [[TiRtcReactNativeStoreAudioOutputDelegate alloc] initWithObjectId:objectId eventSink:_eventSink];
319
+ output.delegate = delegate;
320
+ return delegate;
321
+ }
322
+
323
+ - (id)wireStoreVideoOutput:(TiStoreVideoOutput*)output objectId:(NSInteger)objectId {
324
+ TiRtcReactNativeStoreVideoOutputDelegate* delegate =
325
+ [[TiRtcReactNativeStoreVideoOutputDelegate alloc] initWithObjectId:objectId eventSink:_eventSink];
326
+ output.delegate = delegate;
327
+ return delegate;
328
+ }
329
+
226
330
  @end
@@ -15,6 +15,10 @@ typedef void (^TiRtcReactNativeEmitBlock)(NSDictionary* event);
15
15
  streamId:(uint8_t)streamId
16
16
  timestampMs:(uint32_t)timestampMs
17
17
  data:(NSData*)data;
18
+ - (void)storeTokenExpired:(NSInteger)objectId;
19
+ - (void)storeReplayTimeChanged:(NSInteger)objectId timestampMs:(int64_t)timestampMs;
20
+ - (void)storeReplayCompleted:(NSInteger)objectId;
21
+ - (void)storeReplayError:(NSInteger)objectId code:(int32_t)code;
18
22
  - (void)audioOutputStateChanged:(NSInteger)objectId state:(NSString*)state;
19
23
  - (void)audioOutputError:(NSInteger)objectId code:(int32_t)code message:(NSString*)message;
20
24
  - (void)videoOutputStateChanged:(NSInteger)objectId state:(NSString*)state;
@@ -43,6 +43,26 @@
43
43
  [self emit:event];
44
44
  }
45
45
 
46
+ - (void)storeTokenExpired:(NSInteger)objectId {
47
+ [self emit:[self base:@"storeTokenExpired" objectId:objectId]];
48
+ }
49
+
50
+ - (void)storeReplayTimeChanged:(NSInteger)objectId timestampMs:(int64_t)timestampMs {
51
+ NSMutableDictionary* event = [self base:@"storeReplayTimeChanged" objectId:objectId];
52
+ event[@"timestampMs"] = @(timestampMs);
53
+ [self emit:event];
54
+ }
55
+
56
+ - (void)storeReplayCompleted:(NSInteger)objectId {
57
+ [self emit:[self base:@"storeReplayCompleted" objectId:objectId]];
58
+ }
59
+
60
+ - (void)storeReplayError:(NSInteger)objectId code:(int32_t)code {
61
+ NSMutableDictionary* event = [self base:@"storeReplayError" objectId:objectId];
62
+ event[@"code"] = @(TiRtcReactNativeNormalizeDarwin(code));
63
+ [self emit:event];
64
+ }
65
+
46
66
  - (void)audioOutputStateChanged:(NSInteger)objectId state:(NSString*)state {
47
67
  NSMutableDictionary* event = [self base:@"audioOutputStateChanged" objectId:objectId];
48
68
  event[@"state"] = state;
@@ -8,6 +8,9 @@
8
8
 
9
9
  - (NSInteger)addObject:(id)object;
10
10
  - (NSInteger)addObject:(id)object generation:(NSInteger*)generation;
11
+ - (NSInteger)addTransientObject:(id)object;
12
+ - (id)transientObjectForId:(NSInteger)objectId;
13
+ - (void)releaseTransientObject:(NSInteger)objectId;
11
14
  - (void)setEventSink:(TiRtcReactNativeEventSink*)eventSink;
12
15
  - (void)setDelegate:(id)delegate forObjectId:(NSInteger)objectId;
13
16
  - (id)objectForId:(NSInteger)objectId;
@@ -15,6 +18,8 @@
15
18
  - (void)reportVideoOutputError:(NSInteger)objectId code:(int32_t)code message:(NSString*)message;
16
19
  - (void)reportVideoInputError:(NSInteger)objectId code:(int32_t)code message:(NSString*)message;
17
20
  - (void)releaseObject:(NSInteger)objectId;
21
+ - (NSArray*)drainObjects;
22
+ - (NSArray*)drainTransientObjects;
18
23
  - (BOOL)hasLiveObjects;
19
24
 
20
25
  @end
@@ -14,6 +14,7 @@
14
14
  @implementation TiRtcReactNativeRegistry {
15
15
  NSLock* _lock;
16
16
  NSMutableDictionary<NSNumber*, TiRtcReactNativeRegistryEntry*>* _entries;
17
+ NSMutableDictionary<NSNumber*, id>* _transientEntries;
17
18
  __weak TiRtcReactNativeEventSink* _eventSink;
18
19
  NSInteger _nextId;
19
20
  NSInteger _nextGeneration;
@@ -32,12 +33,34 @@
32
33
  if (self = [super init]) {
33
34
  _lock = [NSLock new];
34
35
  _entries = [NSMutableDictionary new];
36
+ _transientEntries = [NSMutableDictionary new];
35
37
  _nextId = 1;
36
38
  _nextGeneration = 1;
37
39
  }
38
40
  return self;
39
41
  }
40
42
 
43
+ - (NSInteger)addTransientObject:(id)object {
44
+ [_lock lock];
45
+ NSInteger objectId = _nextId++;
46
+ _transientEntries[@(objectId)] = object;
47
+ [_lock unlock];
48
+ return objectId;
49
+ }
50
+
51
+ - (id)transientObjectForId:(NSInteger)objectId {
52
+ [_lock lock];
53
+ id object = _transientEntries[@(objectId)];
54
+ [_lock unlock];
55
+ return object;
56
+ }
57
+
58
+ - (void)releaseTransientObject:(NSInteger)objectId {
59
+ [_lock lock];
60
+ [_transientEntries removeObjectForKey:@(objectId)];
61
+ [_lock unlock];
62
+ }
63
+
41
64
  - (NSInteger)addObject:(id)object {
42
65
  return [self addObject:object generation:nil];
43
66
  }
@@ -109,6 +132,26 @@
109
132
  [_lock unlock];
110
133
  }
111
134
 
135
+ - (NSArray*)drainObjects {
136
+ [_lock lock];
137
+ NSMutableArray* objects = [NSMutableArray arrayWithCapacity:_entries.count];
138
+ for (TiRtcReactNativeRegistryEntry* entry in _entries.allValues) {
139
+ if (entry.object != nil) [objects addObject:entry.object];
140
+ }
141
+ [_entries removeAllObjects];
142
+ _eventSink = nil;
143
+ [_lock unlock];
144
+ return objects;
145
+ }
146
+
147
+ - (NSArray*)drainTransientObjects {
148
+ [_lock lock];
149
+ NSArray* objects = [_transientEntries.allValues copy];
150
+ [_transientEntries removeAllObjects];
151
+ [_lock unlock];
152
+ return objects;
153
+ }
154
+
112
155
  - (BOOL)hasLiveObjects {
113
156
  [_lock lock];
114
157
  BOOL hasObjects = _entries.count > 0;
@@ -115,6 +115,15 @@ static AVLayerVideoGravity TiRtcVideoOutputGravityForResizeMode(
115
115
  _attachedObjectId = _nativeObjectId;
116
116
  _attachedGeneration = _generation;
117
117
  [self applyVideoLayerGeometry];
118
+ } else if ([object isKindOfClass:[TiStoreVideoOutput class]]) {
119
+ int32_t code = [(TiStoreVideoOutput*)object attachView:self];
120
+ if (code != 0) {
121
+ [registry reportVideoOutputError:_nativeObjectId code:code message:@"view attach failed"];
122
+ return;
123
+ }
124
+ _attachedObjectId = _nativeObjectId;
125
+ _attachedGeneration = _generation;
126
+ [self applyVideoLayerGeometry];
118
127
  }
119
128
  }
120
129
 
@@ -125,6 +134,8 @@ static AVLayerVideoGravity TiRtcVideoOutputGravityForResizeMode(
125
134
  id object = [[TiRtcReactNativeRegistry sharedRegistry] objectForId:objectId];
126
135
  if ([object isKindOfClass:[TiRtcVideoOutput class]]) {
127
136
  __unused int32_t code = [(TiRtcVideoOutput*)object detachView];
137
+ } else if ([object isKindOfClass:[TiStoreVideoOutput class]]) {
138
+ __unused int32_t code = [(TiStoreVideoOutput*)object detachView];
128
139
  }
129
140
  }
130
141
 
@@ -1,7 +1,8 @@
1
- import { isPlainObject, isUInt8, normalizeCreateResult, returnReleasedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, TIRTC_HOST_ERROR_OBJECT_RELEASED, } from './errors';
1
+ import { isPlainObject, isUInt8, normalizeCreateResult, returnNotInitializedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, TIRTC_ERROR_NOT_INITIALIZED, } from './errors';
2
2
  import { registerNativeEventHandler, unregisterNativeEventHandler } from './events';
3
3
  import { clearNativeIdentity, readNativeIdentity, setNativeIdentity } from './native_object_id';
4
4
  import { NativeTiRtc } from './native';
5
+ import { logRtcOutcome, logRtcState } from './logging_internal';
5
6
  export class TiRtcAudioInput {
6
7
  constructor() {
7
8
  this.identity = null;
@@ -22,8 +23,12 @@ export class TiRtcAudioInput {
22
23
  const result = normalizeCreateResult(NativeTiRtc.createAudioInput());
23
24
  this.createCode = result.code;
24
25
  if (result.code === TIRTC_ERROR_OK) {
25
- this.adoptIdentity({ objectId: result.objectId, generation: result.generation });
26
+ this.adoptIdentity({
27
+ objectId: result.objectId,
28
+ generation: result.generation,
29
+ });
26
30
  }
31
+ logRtcOutcome('audio_input_create', result.code);
27
32
  }
28
33
  get state() {
29
34
  if (this.identity !== null && !this.disposed) {
@@ -66,48 +71,48 @@ export class TiRtcAudioInput {
66
71
  if (connIdentity === null) {
67
72
  return Promise.resolve(TIRTC_ERROR_INVALID_ARGUMENT);
68
73
  }
69
- return this.enqueue(async () => {
74
+ return this.logged('audio_input_attach', this.enqueue(async () => {
70
75
  const identity = this.ensureIdentity();
71
76
  if (typeof identity === 'number') {
72
77
  return identity;
73
78
  }
74
79
  return NativeTiRtc.audioInputAttach(identity.objectId, connIdentity.objectId, streamId);
75
- });
80
+ }));
76
81
  }
77
82
  start() {
78
- return this.enqueue(async () => {
83
+ return this.logged('audio_input_start', this.enqueue(async () => {
79
84
  const identity = this.ensureIdentity();
80
85
  if (typeof identity === 'number') {
81
86
  return identity;
82
87
  }
83
88
  return NativeTiRtc.audioInputStart(identity.objectId);
84
- });
89
+ }));
85
90
  }
86
91
  stop() {
87
- return this.enqueue(async () => {
92
+ return this.logged('audio_input_stop', this.enqueue(async () => {
88
93
  if (this.identity === null) {
89
94
  return TIRTC_ERROR_OK;
90
95
  }
91
96
  return NativeTiRtc.audioInputStop(this.identity.objectId);
92
- });
97
+ }));
93
98
  }
94
99
  detach(connection) {
95
100
  const connIdentity = readNativeIdentity(connection);
96
101
  if (connIdentity === null) {
97
102
  return Promise.resolve(TIRTC_ERROR_INVALID_ARGUMENT);
98
103
  }
99
- return this.enqueue(async () => {
104
+ return this.logged('audio_input_detach', this.enqueue(async () => {
100
105
  if (this.identity === null) {
101
106
  return TIRTC_ERROR_OK;
102
107
  }
103
108
  return NativeTiRtc.audioInputDetach(this.identity.objectId, connIdentity.objectId);
104
- });
109
+ }));
105
110
  }
106
111
  dispose() {
107
112
  if (this.disposed) {
108
113
  return Promise.resolve(TIRTC_ERROR_OK);
109
114
  }
110
- return this.enqueue(async () => {
115
+ return this.logged('audio_input_dispose', this.enqueue(async () => {
111
116
  if (this.identity === null) {
112
117
  this.disposed = true;
113
118
  this.clearCallbacks();
@@ -125,24 +130,30 @@ export class TiRtcAudioInput {
125
130
  this.currentState = 'stopped';
126
131
  }
127
132
  return code;
128
- }, true);
133
+ }, true));
129
134
  }
130
135
  enqueue(operation, allowDisposed = false) {
131
- const released = returnReleasedIfDisposed(this.disposed);
136
+ const released = returnNotInitializedIfDisposed(this.disposed);
132
137
  if (released !== null && !allowDisposed) {
133
138
  return Promise.resolve(released);
134
139
  }
135
140
  const next = this.queue.then(async () => {
136
141
  if (this.disposed && !allowDisposed) {
137
- return TIRTC_HOST_ERROR_OBJECT_RELEASED;
142
+ return TIRTC_ERROR_NOT_INITIALIZED;
138
143
  }
139
144
  return operation();
140
145
  });
141
146
  this.queue = next.catch(() => undefined);
142
147
  return next;
143
148
  }
149
+ logged(operation, result) {
150
+ return result.then((code) => {
151
+ logRtcOutcome(operation, code);
152
+ return code;
153
+ });
154
+ }
144
155
  ensureIdentity() {
145
- const released = returnReleasedIfDisposed(this.disposed);
156
+ const released = returnNotInitializedIfDisposed(this.disposed);
146
157
  if (released !== null) {
147
158
  return released;
148
159
  }
@@ -166,11 +177,16 @@ export class TiRtcAudioInput {
166
177
  return;
167
178
  }
168
179
  if (event.type === 'audioInputStateChanged' && event.state !== undefined) {
169
- this.currentState = event.state;
180
+ const nextState = event.state;
181
+ if (this.currentState !== nextState)
182
+ logRtcState('audio_input_state', nextState);
183
+ this.currentState = nextState;
170
184
  this.onStateChanged?.(this.currentState);
171
185
  }
172
186
  else if (event.type === 'audioInputError') {
173
- this.onError?.(event.code ?? TIRTC_ERROR_INVALID_ARGUMENT, event.message ?? null);
187
+ const code = event.code ?? TIRTC_ERROR_INVALID_ARGUMENT;
188
+ logRtcOutcome('audio_input', code);
189
+ this.onError?.(code, event.message ?? null);
174
190
  }
175
191
  }
176
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audio_input.js","sourceRoot":"","sources":["../../src/audio_input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio_input.js","sourceRoot":"","sources":["../../src/audio_input.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { isFiniteSafeInteger, isPositiveInt32, isUInt8, normalizeCreateResult, returnReleasedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, } from './errors';
1
+ import { isFiniteSafeInteger, isPositiveInt32, isUInt8, normalizeCreateResult, returnNotInitializedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, } from './errors';
2
2
  import { registerNativeEventHandler, unregisterNativeEventHandler } from './events';
3
3
  import { readNativeIdentity, clearNativeIdentity, setNativeIdentity } from './native_object_id';
4
4
  import { NativeTiRtc } from './native';
5
+ import { logRtcOutcome, logRtcState } from './logging_internal';
5
6
  export class TiRtcAudioOutput {
6
7
  constructor() {
7
8
  this.identity = null;
@@ -19,8 +20,12 @@ export class TiRtcAudioOutput {
19
20
  const result = normalizeCreateResult(NativeTiRtc.createAudioOutput());
20
21
  this.createCode = result.code;
21
22
  if (result.code === TIRTC_ERROR_OK) {
22
- this.adoptIdentity({ objectId: result.objectId, generation: result.generation });
23
+ this.adoptIdentity({
24
+ objectId: result.objectId,
25
+ generation: result.generation,
26
+ });
23
27
  }
28
+ logRtcOutcome('audio_output_create', result.code);
24
29
  }
25
30
  get state() {
26
31
  if (this.identity !== null && !this.disposed) {
@@ -38,8 +43,7 @@ export class TiRtcAudioOutput {
38
43
  bufferStrategy: options.bufferStrategy ?? 'automatic',
39
44
  maxBufferWatermarkMs: options.maxBufferWatermarkMs,
40
45
  };
41
- if (normalized.maxBufferWatermarkMs !== undefined
42
- && !isPositiveInt32(normalized.maxBufferWatermarkMs)) {
46
+ if (normalized.maxBufferWatermarkMs !== undefined && !isPositiveInt32(normalized.maxBufferWatermarkMs)) {
43
47
  return TIRTC_ERROR_INVALID_ARGUMENT;
44
48
  }
45
49
  const identity = this.ensureIdentity();
@@ -67,14 +71,20 @@ export class TiRtcAudioOutput {
67
71
  if (typeof identity === 'number') {
68
72
  return identity;
69
73
  }
70
- return NativeTiRtc.audioOutputAttach(identity.objectId, connIdentity.objectId, streamId);
74
+ const code = NativeTiRtc.audioOutputAttach(identity.objectId, connIdentity.objectId, streamId);
75
+ logRtcOutcome('audio_output_attach', code);
76
+ return code;
71
77
  }
72
78
  detach() {
73
- const released = returnReleasedIfDisposed(this.disposed);
79
+ const released = returnNotInitializedIfDisposed(this.disposed);
74
80
  if (released !== null) {
75
81
  return released;
76
82
  }
77
- return this.identity === null ? TIRTC_ERROR_OK : NativeTiRtc.audioOutputDetach(this.identity.objectId);
83
+ const code = this.identity === null ? TIRTC_ERROR_OK : NativeTiRtc.audioOutputDetach(this.identity.objectId);
84
+ if (code === TIRTC_ERROR_OK)
85
+ this.currentState = 'idle';
86
+ logRtcOutcome('audio_output_detach', code);
87
+ return code;
78
88
  }
79
89
  setVolume(volumePercent) {
80
90
  if (!isFiniteSafeInteger(volumePercent) || volumePercent < 0 || volumePercent > 100) {
@@ -127,10 +137,11 @@ export class TiRtcAudioOutput {
127
137
  this.clearCallbacks();
128
138
  this.currentState = 'idle';
129
139
  }
140
+ logRtcOutcome('audio_output_dispose', code);
130
141
  return code;
131
142
  }
132
143
  ensureIdentity() {
133
- const released = returnReleasedIfDisposed(this.disposed);
144
+ const released = returnNotInitializedIfDisposed(this.disposed);
134
145
  if (released !== null) {
135
146
  return released;
136
147
  }
@@ -157,11 +168,17 @@ export class TiRtcAudioOutput {
157
168
  return;
158
169
  }
159
170
  if (event.type === 'audioOutputStateChanged' && event.state !== undefined) {
160
- this.currentState = event.state;
171
+ const nextState = event.state;
172
+ const changed = this.currentState !== nextState;
173
+ this.currentState = nextState;
174
+ if (changed)
175
+ logRtcState('audio_output_state', nextState);
161
176
  this.onStateChanged?.(this.currentState);
162
177
  }
163
178
  else if (event.type === 'audioOutputError') {
164
- this.onError?.(event.code ?? TIRTC_ERROR_INVALID_ARGUMENT);
179
+ const code = event.code ?? TIRTC_ERROR_INVALID_ARGUMENT;
180
+ logRtcOutcome('audio_output', code);
181
+ this.onError?.(code);
165
182
  }
166
183
  }
167
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audio_output.js","sourceRoot":"","sources":["../../src/audio_output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio_output.js","sourceRoot":"","sources":["../../src/audio_output.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { fromNativeBytes, isUInt8, isUInt32, normalizeCreateResult, returnReleasedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, } from './errors';
1
+ import { fromNativeBytes, isUInt8, isUInt32, normalizeCreateResult, returnNotInitializedIfDisposed, TIRTC_ERROR_INVALID_ARGUMENT, TIRTC_ERROR_OK, } from './errors';
2
2
  import { registerNativeEventHandler, unregisterNativeEventHandler } from './events';
3
3
  import { clearNativeIdentity, setNativeIdentity } from './native_object_id';
4
4
  import { NativeTiRtc } from './native';
5
+ import { logRtcOutcome, logRtcState } from './logging_internal';
5
6
  import { toNativeBytes } from './errors';
7
+ import { recordingFailure, startRecording, validateStartRecordingOptions, } from './recording';
6
8
  export class TiRtcConn {
7
9
  constructor() {
8
10
  this.identity = null;
@@ -15,8 +17,20 @@ export class TiRtcConn {
15
17
  const result = normalizeCreateResult(NativeTiRtc.createConn());
16
18
  this.createCode = result.code;
17
19
  if (result.code === TIRTC_ERROR_OK) {
18
- this.adoptIdentity({ objectId: result.objectId, generation: result.generation });
20
+ this.adoptIdentity({
21
+ objectId: result.objectId,
22
+ generation: result.generation,
23
+ });
19
24
  }
25
+ logRtcOutcome('connection_create', result.code);
26
+ }
27
+ startRecording(options) {
28
+ const validationCode = validateStartRecordingOptions(options);
29
+ if (validationCode !== TIRTC_ERROR_OK) {
30
+ return recordingFailure(validationCode);
31
+ }
32
+ const identity = this.ensureIdentity();
33
+ return typeof identity === 'number' ? recordingFailure(identity) : startRecording(identity.objectId, options);
20
34
  }
21
35
  get state() {
22
36
  if (this.identity !== null && !this.disposed) {
@@ -35,14 +49,18 @@ export class TiRtcConn {
35
49
  if (typeof identity === 'number') {
36
50
  return identity;
37
51
  }
38
- return NativeTiRtc.connConnect(identity.objectId, remoteId, token);
52
+ const code = NativeTiRtc.connConnect(identity.objectId, remoteId, token);
53
+ logRtcOutcome('connection_connect', code);
54
+ return code;
39
55
  }
40
56
  disconnect() {
41
- const released = returnReleasedIfDisposed(this.disposed);
57
+ const released = returnNotInitializedIfDisposed(this.disposed);
42
58
  if (released !== null) {
43
59
  return released;
44
60
  }
45
- return this.identity === null ? TIRTC_ERROR_OK : NativeTiRtc.connDisconnect(this.identity.objectId);
61
+ const code = this.identity === null ? TIRTC_ERROR_OK : NativeTiRtc.connDisconnect(this.identity.objectId);
62
+ logRtcOutcome('connection_disconnect', code);
63
+ return code;
46
64
  }
47
65
  sendCommand(commandId, data) {
48
66
  if (!isUInt32(commandId)) {
@@ -113,6 +131,7 @@ export class TiRtcConn {
113
131
  this.clearCallbacks();
114
132
  this.currentState = 'disconnected';
115
133
  }
134
+ logRtcOutcome('connection_dispose', code);
116
135
  return code;
117
136
  }
118
137
  callWithStream(streamId, operation) {
@@ -126,7 +145,7 @@ export class TiRtcConn {
126
145
  return operation(identity);
127
146
  }
128
147
  ensureIdentity() {
129
- const released = returnReleasedIfDisposed(this.disposed);
148
+ const released = returnNotInitializedIfDisposed(this.disposed);
130
149
  if (released !== null) {
131
150
  return released;
132
151
  }
@@ -152,7 +171,12 @@ export class TiRtcConn {
152
171
  switch (event.type) {
153
172
  case 'connStateChanged':
154
173
  if (event.state !== undefined && event.errorCode !== undefined) {
155
- this.currentState = event.state;
174
+ const nextState = event.state;
175
+ const changed = this.currentState !== nextState;
176
+ this.currentState = nextState;
177
+ if (changed || event.errorCode !== 0) {
178
+ logRtcState('connection_state', nextState, event.errorCode);
179
+ }
156
180
  this.onStateChanged?.(this.currentState, event.errorCode);
157
181
  }
158
182
  break;