hap-nodejs 0.10.0-beta.1 → 0.10.0-beta.10

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 (209) hide show
  1. package/@types/bonjour-hap.d.ts +4 -3
  2. package/@types/simple-plist.d.ts +2 -1
  3. package/README.md +1 -1
  4. package/dist/BridgedCore.js +7 -6
  5. package/dist/BridgedCore.js.map +1 -1
  6. package/dist/Core.js +14 -12
  7. package/dist/Core.js.map +1 -1
  8. package/dist/accessories/AirConditioner_accessory.js +9 -9
  9. package/dist/accessories/AirConditioner_accessory.js.map +1 -1
  10. package/dist/accessories/AppleTVRemote_accessory.js +17 -16
  11. package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
  12. package/dist/accessories/Camera_accessory.js +415 -36
  13. package/dist/accessories/Camera_accessory.js.map +1 -1
  14. package/dist/accessories/Fan_accessory.js +10 -15
  15. package/dist/accessories/Fan_accessory.js.map +1 -1
  16. package/dist/accessories/GarageDoorOpener_accessory.js +7 -8
  17. package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
  18. package/dist/accessories/Light-AdaptiveLighting_accessory.js +3 -4
  19. package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
  20. package/dist/accessories/Light_accessory.js +23 -14
  21. package/dist/accessories/Light_accessory.js.map +1 -1
  22. package/dist/accessories/Lock_accessory.js +7 -8
  23. package/dist/accessories/Lock_accessory.js.map +1 -1
  24. package/dist/accessories/MotionSensor_accessory.js +5 -6
  25. package/dist/accessories/MotionSensor_accessory.js.map +1 -1
  26. package/dist/accessories/Outlet_accessory.js +5 -6
  27. package/dist/accessories/Outlet_accessory.js.map +1 -1
  28. package/dist/accessories/SmartSpeaker_accessory.js +6 -6
  29. package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
  30. package/dist/accessories/Sprinkler_accessory.js +12 -13
  31. package/dist/accessories/Sprinkler_accessory.js.map +1 -1
  32. package/dist/accessories/TV_accessory.js +4 -5
  33. package/dist/accessories/TV_accessory.js.map +1 -1
  34. package/dist/accessories/TemperatureSensor_accessory.js +5 -6
  35. package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
  36. package/dist/accessories/Wi-FiRouter_accessory.d.ts +1 -1
  37. package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -1
  38. package/dist/accessories/Wi-FiRouter_accessory.js +7 -8
  39. package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
  40. package/dist/accessories/Wi-FiSatellite_accessory.d.ts +1 -1
  41. package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -1
  42. package/dist/accessories/Wi-FiSatellite_accessory.js +6 -7
  43. package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
  44. package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
  45. package/dist/accessories/gstreamer-audioProducer.js +21 -22
  46. package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
  47. package/dist/index.d.ts +27 -22
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +35 -24
  50. package/dist/index.js.map +1 -1
  51. package/dist/internal-types.d.ts +2 -0
  52. package/dist/internal-types.d.ts.map +1 -1
  53. package/dist/internal-types.js.map +1 -1
  54. package/dist/lib/Accessory.d.ts +38 -17
  55. package/dist/lib/Accessory.d.ts.map +1 -1
  56. package/dist/lib/Accessory.js +345 -273
  57. package/dist/lib/Accessory.js.map +1 -1
  58. package/dist/lib/AccessoryLoader.d.ts +10 -10
  59. package/dist/lib/AccessoryLoader.d.ts.map +1 -1
  60. package/dist/lib/AccessoryLoader.js +109 -99
  61. package/dist/lib/AccessoryLoader.js.map +1 -1
  62. package/dist/lib/Advertiser.d.ts +23 -3
  63. package/dist/lib/Advertiser.d.ts.map +1 -1
  64. package/dist/lib/Advertiser.js +242 -29
  65. package/dist/lib/Advertiser.js.map +1 -1
  66. package/dist/lib/Bridge.d.ts +1 -1
  67. package/dist/lib/Bridge.d.ts.map +1 -1
  68. package/dist/lib/Bridge.js +1 -1
  69. package/dist/lib/Bridge.js.map +1 -1
  70. package/dist/lib/Characteristic.d.ts +22 -21
  71. package/dist/lib/Characteristic.d.ts.map +1 -1
  72. package/dist/lib/Characteristic.js +147 -144
  73. package/dist/lib/Characteristic.js.map +1 -1
  74. package/dist/lib/HAPServer.d.ts +2 -2
  75. package/dist/lib/HAPServer.d.ts.map +1 -1
  76. package/dist/lib/HAPServer.js +43 -39
  77. package/dist/lib/HAPServer.js.map +1 -1
  78. package/dist/lib/Service.d.ts +3 -3
  79. package/dist/lib/Service.d.ts.map +1 -1
  80. package/dist/lib/Service.js +51 -47
  81. package/dist/lib/Service.js.map +1 -1
  82. package/dist/lib/camera/Camera.d.ts +2 -2
  83. package/dist/lib/camera/Camera.d.ts.map +1 -1
  84. package/dist/lib/camera/Camera.js +3 -3
  85. package/dist/lib/camera/Camera.js.map +1 -1
  86. package/dist/lib/camera/RTPProxy.d.ts +19 -19
  87. package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
  88. package/dist/lib/camera/RTPProxy.js +230 -208
  89. package/dist/lib/camera/RTPProxy.js.map +1 -1
  90. package/dist/lib/camera/RTPStreamManagement.d.ts +46 -10
  91. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  92. package/dist/lib/camera/RTPStreamManagement.js +124 -49
  93. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  94. package/dist/lib/camera/RecordingManagement.d.ts +267 -0
  95. package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
  96. package/dist/lib/camera/RecordingManagement.js +750 -0
  97. package/dist/lib/camera/RecordingManagement.js.map +1 -0
  98. package/dist/lib/camera/index.d.ts +4 -3
  99. package/dist/lib/camera/index.d.ts.map +1 -1
  100. package/dist/lib/camera/index.js +4 -3
  101. package/dist/lib/camera/index.js.map +1 -1
  102. package/dist/lib/controller/AdaptiveLightingController.d.ts +9 -9
  103. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  104. package/dist/lib/controller/AdaptiveLightingController.js +37 -31
  105. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  106. package/dist/lib/controller/CameraController.d.ts +253 -7
  107. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  108. package/dist/lib/controller/CameraController.js +382 -35
  109. package/dist/lib/controller/CameraController.js.map +1 -1
  110. package/dist/lib/controller/Controller.d.ts +3 -3
  111. package/dist/lib/controller/Controller.d.ts.map +1 -1
  112. package/dist/lib/controller/Controller.js.map +1 -1
  113. package/dist/lib/controller/DoorbellController.d.ts +43 -1
  114. package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
  115. package/dist/lib/controller/DoorbellController.js +64 -12
  116. package/dist/lib/controller/DoorbellController.js.map +1 -1
  117. package/dist/lib/controller/RemoteController.d.ts +4 -4
  118. package/dist/lib/controller/RemoteController.d.ts.map +1 -1
  119. package/dist/lib/controller/RemoteController.js +79 -69
  120. package/dist/lib/controller/RemoteController.js.map +1 -1
  121. package/dist/lib/controller/index.d.ts +4 -4
  122. package/dist/lib/controller/index.js +5 -5
  123. package/dist/lib/controller/index.js.map +1 -1
  124. package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
  125. package/dist/lib/datastream/DataStreamManagement.js +12 -11
  126. package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
  127. package/dist/lib/datastream/DataStreamParser.d.ts +24 -24
  128. package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
  129. package/dist/lib/datastream/DataStreamParser.js +31 -22
  130. package/dist/lib/datastream/DataStreamParser.js.map +1 -1
  131. package/dist/lib/datastream/DataStreamServer.d.ts +24 -5
  132. package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
  133. package/dist/lib/datastream/DataStreamServer.js +109 -68
  134. package/dist/lib/datastream/DataStreamServer.js.map +1 -1
  135. package/dist/lib/datastream/index.d.ts +3 -3
  136. package/dist/lib/datastream/index.js +3 -3
  137. package/dist/lib/datastream/index.js.map +1 -1
  138. package/dist/lib/definitions/CharacteristicDefinitions.js +249 -249
  139. package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
  140. package/dist/lib/definitions/ServiceDefinitions.js +75 -75
  141. package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
  142. package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
  143. package/dist/lib/definitions/generate-definitions.js +76 -72
  144. package/dist/lib/definitions/generate-definitions.js.map +1 -1
  145. package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
  146. package/dist/lib/definitions/generator-configuration.js +34 -16
  147. package/dist/lib/definitions/generator-configuration.js.map +1 -1
  148. package/dist/lib/definitions/index.js +2 -2
  149. package/dist/lib/definitions/index.js.map +1 -1
  150. package/dist/lib/model/AccessoryInfo.d.ts +6 -6
  151. package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
  152. package/dist/lib/model/AccessoryInfo.js +86 -76
  153. package/dist/lib/model/AccessoryInfo.js.map +1 -1
  154. package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
  155. package/dist/lib/model/ControllerStorage.js +9 -9
  156. package/dist/lib/model/ControllerStorage.js.map +1 -1
  157. package/dist/lib/model/HAPStorage.d.ts.map +1 -1
  158. package/dist/lib/model/HAPStorage.js +2 -1
  159. package/dist/lib/model/HAPStorage.js.map +1 -1
  160. package/dist/lib/model/IdentifierCache.d.ts +11 -11
  161. package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
  162. package/dist/lib/model/IdentifierCache.js +69 -67
  163. package/dist/lib/model/IdentifierCache.js.map +1 -1
  164. package/dist/lib/tv/AccessControlManagement.d.ts +1 -1
  165. package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
  166. package/dist/lib/tv/AccessControlManagement.js +2 -2
  167. package/dist/lib/tv/AccessControlManagement.js.map +1 -1
  168. package/dist/lib/util/clone.js +5 -4
  169. package/dist/lib/util/clone.js.map +1 -1
  170. package/dist/lib/util/color-utils.d.ts.map +1 -1
  171. package/dist/lib/util/color-utils.js +2 -2
  172. package/dist/lib/util/color-utils.js.map +1 -1
  173. package/dist/lib/util/eventedhttp.d.ts +4 -4
  174. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  175. package/dist/lib/util/eventedhttp.js +54 -51
  176. package/dist/lib/util/eventedhttp.js.map +1 -1
  177. package/dist/lib/util/hapCrypto.d.ts +5 -5
  178. package/dist/lib/util/hapCrypto.d.ts.map +1 -1
  179. package/dist/lib/util/hapCrypto.js +66 -82
  180. package/dist/lib/util/hapCrypto.js.map +1 -1
  181. package/dist/lib/util/hapStatusError.js +3 -3
  182. package/dist/lib/util/hapStatusError.js.map +1 -1
  183. package/dist/lib/util/net-utils.d.ts.map +1 -1
  184. package/dist/lib/util/net-utils.js +4 -6
  185. package/dist/lib/util/net-utils.js.map +1 -1
  186. package/dist/lib/util/once.d.ts +1 -1
  187. package/dist/lib/util/once.d.ts.map +1 -1
  188. package/dist/lib/util/once.js +2 -1
  189. package/dist/lib/util/once.js.map +1 -1
  190. package/dist/lib/util/promise-utils.d.ts +2 -0
  191. package/dist/lib/util/promise-utils.d.ts.map +1 -0
  192. package/dist/lib/util/promise-utils.js +10 -0
  193. package/dist/lib/util/promise-utils.js.map +1 -0
  194. package/dist/lib/util/request-util.d.ts.map +1 -1
  195. package/dist/lib/util/request-util.js +1 -0
  196. package/dist/lib/util/request-util.js.map +1 -1
  197. package/dist/lib/util/time.d.ts +1 -1
  198. package/dist/lib/util/time.d.ts.map +1 -1
  199. package/dist/lib/util/time.js +8 -8
  200. package/dist/lib/util/time.js.map +1 -1
  201. package/dist/lib/util/tlv.d.ts.map +1 -1
  202. package/dist/lib/util/tlv.js +15 -12
  203. package/dist/lib/util/tlv.js.map +1 -1
  204. package/dist/lib/util/uuid.d.ts.map +1 -1
  205. package/dist/lib/util/uuid.js +26 -20
  206. package/dist/lib/util/uuid.js.map +1 -1
  207. package/dist/types.d.ts +0 -1
  208. package/dist/types.d.ts.map +1 -1
  209. package/package.json +22 -19
@@ -1,14 +1,17 @@
1
1
  /// <reference types="node" />
2
- import { LegacyCameraSource } from "../../index";
3
- import { SessionIdentifier } from '../../types';
2
+ import { LegacyCameraSource, ResourceRequestReason, StateChangeDelegate } from "../../index";
3
+ import { SessionIdentifier } from "../../types";
4
4
  import { CameraStreamingDelegate } from "../controller";
5
5
  import type { CameraRTPStreamManagement } from "../definitions";
6
- import RTPProxy from './RTPProxy';
6
+ import RTPProxy from "./RTPProxy";
7
7
  declare const enum StreamingStatus {
8
8
  AVAILABLE = 0,
9
9
  IN_USE = 1,
10
10
  UNAVAILABLE = 2
11
11
  }
12
+ export declare const enum VideoCodecType {
13
+ H264 = 0
14
+ }
12
15
  export declare const enum H264Profile {
13
16
  BASELINE = 0,
14
17
  MAIN = 1,
@@ -58,10 +61,10 @@ export declare type VideoStreamingOptions = {
58
61
  resolutions: Resolution[];
59
62
  cvoId?: number;
60
63
  };
61
- export declare type H264CodecParameters = {
64
+ export interface H264CodecParameters {
62
65
  levels: H264Level[];
63
66
  profiles: H264Profile[];
64
- };
67
+ }
65
68
  export declare type Resolution = [number, number, number];
66
69
  export declare type AudioStreamingOptions = {
67
70
  codecs: AudioStreamingCodec[];
@@ -92,6 +95,13 @@ export declare type StreamSessionIdentifier = string;
92
95
  export declare type SnapshotRequest = {
93
96
  height: number;
94
97
  width: number;
98
+ /**
99
+ * An optional {@link ResourceRequestReason}. The client decides if it wants to send this value. It is typically
100
+ * only sent in the context of HomeKit Secure Video Cameras.
101
+ * This value might be used by a `CameraStreamingDelegate` for informational purposes.
102
+ * When `handleSnapshotRequest` is called, it is already checked if the respective reason is allowed in the current camera configuration.
103
+ */
104
+ reason?: ResourceRequestReason;
95
105
  };
96
106
  export declare type PrepareStreamRequest = {
97
107
  sessionID: StreamSessionIdentifier;
@@ -127,7 +137,7 @@ export declare type PrepareStreamResponse = {
127
137
  */
128
138
  export declare type Address = {
129
139
  address: string;
130
- type?: 'v4' | 'v6';
140
+ type?: "v4" | "v6";
131
141
  };
132
142
  export interface SourceResponse {
133
143
  port: number;
@@ -185,6 +195,7 @@ export declare type AudioInfo = {
185
195
  comfortNoiseEnabled: boolean;
186
196
  };
187
197
  export declare type VideoInfo = {
198
+ codec: VideoCodecType;
188
199
  profile: H264Profile;
189
200
  level: H264Level;
190
201
  packetizationMode: VideoCodecPacketizationMode;
@@ -205,25 +216,31 @@ export declare type ReconfiguredVideoInfo = {
205
216
  max_bit_rate: number;
206
217
  rtcp_interval: number;
207
218
  };
219
+ export interface RTPStreamManagementState {
220
+ id: number;
221
+ active: boolean;
222
+ }
208
223
  export declare class RTPStreamManagement {
209
224
  /**
210
- * @deprecated Please use the SRTPCryptoSuites const enum above. Scheduled to be removed in 2021-06.
225
+ * @deprecated Please use the SRTPCryptoSuites const enum above.
211
226
  */
212
227
  static SRTPCryptoSuites: typeof SRTPCryptoSuites;
213
228
  /**
214
- * @deprecated Please use the H264Profile const enum above. Scheduled to be removed in 2021-06.
229
+ * @deprecated Please use the H264Profile const enum above.
215
230
  */
216
231
  static VideoCodecParamProfileIDTypes: typeof H264Profile;
217
232
  /**
218
- * @deprecated won't be updated anymore. Please use the H264Level const enum above. Scheduled to be removed in 2021-06.
233
+ * @deprecated won't be updated anymore. Please use the H264Level const enum above.
219
234
  */
220
235
  static VideoCodecParamLevelTypes: Readonly<{
221
236
  TYPE3_1: number;
222
237
  TYPE3_2: number;
223
238
  TYPE4_0: number;
224
239
  }>;
240
+ private readonly id;
225
241
  private readonly delegate;
226
242
  readonly service: CameraRTPStreamManagement;
243
+ private stateChangeDelegate?;
227
244
  requireProxy: boolean;
228
245
  disableAudioProxy: boolean;
229
246
  supportedCryptoSuites: SRTPCryptoSuites[];
@@ -244,7 +261,13 @@ export declare class RTPStreamManagement {
244
261
  setupEndpointsResponse: string;
245
262
  audioProxy?: RTPProxy;
246
263
  videoProxy?: RTPProxy;
247
- constructor(id: number, options: CameraStreamingOptions, delegate: CameraStreamingDelegate, service?: CameraRTPStreamManagement);
264
+ /**
265
+ * A RTPStreamManagement is considered disabled if `HomeKitCameraActive` is set to false.
266
+ * We use a closure based approach to retrieve the value of this characteristic.
267
+ * The characteristic is managed by the RecordingManagement.
268
+ */
269
+ private readonly disabledThroughOperatingMode?;
270
+ constructor(id: number, options: CameraStreamingOptions, delegate: CameraStreamingDelegate, service?: CameraRTPStreamManagement, disabledThroughOperatingMode?: () => boolean);
248
271
  forceStop(): void;
249
272
  getService(): CameraRTPStreamManagement;
250
273
  /**
@@ -256,6 +279,7 @@ export declare class RTPStreamManagement {
256
279
  private constructService;
257
280
  private setupServiceHandlers;
258
281
  private handleSessionClosed;
282
+ private streamingIsDisabled;
259
283
  private _handleSelectedStreamConfigurationWrite;
260
284
  private _handleStartStream;
261
285
  private handleReconfigureStream;
@@ -269,6 +293,18 @@ export declare class RTPStreamManagement {
269
293
  private _supportedAudioStreamConfiguration;
270
294
  private resetSetupEndpointsResponse;
271
295
  private resetSelectedStreamConfiguration;
296
+ /**
297
+ * @private
298
+ */
299
+ serialize(): RTPStreamManagementState | undefined;
300
+ /**
301
+ * @private
302
+ */
303
+ deserialize(serialized: RTPStreamManagementState): void;
304
+ /**
305
+ * @private
306
+ */
307
+ setupStateChangeDelegate(delegate?: StateChangeDelegate): void;
272
308
  }
273
309
  /**
274
310
  * @deprecated - only there for backwards compatibility, please use {@see RTPStreamManagement} directly
@@ -1 +1 @@
1
- {"version":3,"file":"RTPStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/RTPStreamManagement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RTPStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/RTPStreamManagement.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StreamController = exports.RTPStreamManagement = exports.StreamRequestTypes = exports.AudioStreamingSamplerate = exports.AudioStreamingCodecType = exports.SRTPCryptoSuites = exports.H264Level = exports.H264Profile = void 0;
3
+ exports.StreamController = exports.RTPStreamManagement = exports.StreamRequestTypes = exports.AudioStreamingSamplerate = exports.AudioStreamingCodecType = exports.SRTPCryptoSuites = exports.H264Level = exports.H264Profile = exports.VideoCodecType = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var crypto_1 = tslib_1.__importDefault(require("crypto"));
6
- var debug_1 = tslib_1.__importDefault(require("debug"));
7
- var net_1 = tslib_1.__importDefault(require("net"));
5
+ var assert_1 = (0, tslib_1.__importDefault)(require("assert"));
6
+ var crypto_1 = (0, tslib_1.__importDefault)(require("crypto"));
7
+ var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
8
+ var net_1 = (0, tslib_1.__importDefault)(require("net"));
8
9
  // noinspection JSDeprecatedSymbols
9
10
  var index_1 = require("../../index");
10
11
  var Characteristic_1 = require("../Characteristic");
11
12
  var controller_1 = require("../controller");
12
13
  var Service_1 = require("../Service");
13
- var tlv = tslib_1.__importStar(require("../util/tlv"));
14
- var RTPProxy_1 = tslib_1.__importDefault(require("./RTPProxy"));
15
- var debug = debug_1.default('HAP-NodeJS:Camera:RTPStreamManagement');
14
+ var tlv = (0, tslib_1.__importStar)(require("../util/tlv"));
15
+ var RTPProxy_1 = (0, tslib_1.__importDefault)(require("./RTPProxy"));
16
+ var debug = (0, debug_1.default)("HAP-NodeJS:Camera:RTPStreamManagement");
16
17
  // ---------------------------------- TLV DEFINITIONS START ----------------------------------
17
18
  var StreamingStatusTypes;
18
19
  (function (StreamingStatusTypes) {
@@ -52,7 +53,9 @@ var VideoAttributesTypes;
52
53
  var VideoCodecType;
53
54
  (function (VideoCodecType) {
54
55
  VideoCodecType[VideoCodecType["H264"] = 0] = "H264";
55
- })(VideoCodecType || (VideoCodecType = {}));
56
+ // while the namespace is already reserved for H265 it isn't currently supported.
57
+ // H265 = 0x01,
58
+ })(VideoCodecType = exports.VideoCodecType || (exports.VideoCodecType = {}));
56
59
  var H264Profile;
57
60
  (function (H264Profile) {
58
61
  H264Profile[H264Profile["BASELINE"] = 0] = "BASELINE";
@@ -71,8 +74,8 @@ var VideoCodecPacketizationMode;
71
74
  })(VideoCodecPacketizationMode || (VideoCodecPacketizationMode = {}));
72
75
  var VideoCodecCVO;
73
76
  (function (VideoCodecCVO) {
74
- VideoCodecCVO[VideoCodecCVO["UNSUPPORTED"] = 1] = "UNSUPPORTED";
75
- VideoCodecCVO[VideoCodecCVO["SUPPORTED"] = 2] = "SUPPORTED";
77
+ VideoCodecCVO[VideoCodecCVO["UNSUPPORTED"] = 0] = "UNSUPPORTED";
78
+ VideoCodecCVO[VideoCodecCVO["SUPPORTED"] = 1] = "SUPPORTED";
76
79
  })(VideoCodecCVO || (VideoCodecCVO = {}));
77
80
  // ----------
78
81
  var SupportedAudioStreamConfigurationTypes;
@@ -218,6 +221,7 @@ var AudioRTPParametersTypes;
218
221
  AudioRTPParametersTypes[AudioRTPParametersTypes["MIN_RTCP_INTERVAL"] = 4] = "MIN_RTCP_INTERVAL";
219
222
  AudioRTPParametersTypes[AudioRTPParametersTypes["COMFORT_NOISE_PAYLOAD_TYPE"] = 6] = "COMFORT_NOISE_PAYLOAD_TYPE";
220
223
  })(AudioRTPParametersTypes || (AudioRTPParametersTypes = {}));
224
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
221
225
  function isLegacySRTPOptions(options) {
222
226
  return "srtp" in options;
223
227
  }
@@ -244,12 +248,13 @@ var StreamRequestTypes;
244
248
  StreamRequestTypes["STOP"] = "stop";
245
249
  })(StreamRequestTypes = exports.StreamRequestTypes || (exports.StreamRequestTypes = {}));
246
250
  var RTPStreamManagement = /** @class */ (function () {
247
- function RTPStreamManagement(id, options, delegate, service) {
251
+ function RTPStreamManagement(id, options, delegate, service, disabledThroughOperatingMode) {
248
252
  this.videoOnly = false;
249
253
  this.sessionIdentifier = undefined;
250
254
  this.streamStatus = 0 /* AVAILABLE */; // use _updateStreamStatus to update this property
251
255
  this.selectedConfiguration = ""; // base64 representation of the currently selected configuration
252
256
  this.setupEndpointsResponse = ""; // response of the SetupEndpoints Characteristic
257
+ this.id = id;
253
258
  this.delegate = delegate;
254
259
  this.requireProxy = options.proxy || false;
255
260
  this.disableAudioProxy = options.disable_audio_proxy || false;
@@ -263,7 +268,7 @@ var RTPStreamManagement = /** @class */ (function () {
263
268
  this.supportedCryptoSuites.push(2 /* NONE */);
264
269
  }
265
270
  if (!options.video) {
266
- throw new Error('Video parameters cannot be undefined in options');
271
+ throw new Error("Video parameters cannot be undefined in options");
267
272
  }
268
273
  this.supportedRTPConfiguration = RTPStreamManagement._supportedRTPConfiguration(this.supportedCryptoSuites);
269
274
  this.supportedVideoStreamConfiguration = RTPStreamManagement._supportedVideoStreamConfiguration(options.video);
@@ -272,6 +277,7 @@ var RTPStreamManagement = /** @class */ (function () {
272
277
  this.setupServiceHandlers();
273
278
  this.resetSetupEndpointsResponse();
274
279
  this.resetSelectedStreamConfiguration();
280
+ this.disabledThroughOperatingMode = disabledThroughOperatingMode;
275
281
  }
276
282
  RTPStreamManagement.prototype.forceStop = function () {
277
283
  this.handleSessionClosed();
@@ -283,14 +289,16 @@ var RTPStreamManagement = /** @class */ (function () {
283
289
  /**
284
290
  * @deprecated
285
291
  */
292
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
286
293
  RTPStreamManagement.prototype.handleCloseConnection = function (connectionID) {
287
294
  // This method is only here for legacy compatibility. It used to be called by legacy style CameraSource
288
295
  // implementations to signal that the associated HAP connection was closed.
289
- // This is now handled automatically. Thus we don't need to do anything anymore.
296
+ // This is now handled automatically. Thus, we don't need to do anything anymore.
290
297
  };
291
298
  RTPStreamManagement.prototype.handleFactoryReset = function () {
292
299
  this.resetSelectedStreamConfiguration();
293
300
  this.resetSetupEndpointsResponse();
301
+ this.service.updateCharacteristic(Characteristic_1.Characteristic.Active, true);
294
302
  // on a factory reset the assumption is that all connections were already terminated and thus "handleStopStream" was already called
295
303
  };
296
304
  RTPStreamManagement.prototype.destroy = function () {
@@ -299,24 +307,42 @@ var RTPStreamManagement = /** @class */ (function () {
299
307
  }
300
308
  };
301
309
  RTPStreamManagement.prototype.constructService = function (id) {
302
- var managementService = new Service_1.Service.CameraRTPStreamManagement('', id.toString());
310
+ var managementService = new Service_1.Service.CameraRTPStreamManagement("", id.toString());
311
+ // this service is required only when recording is enabled. We don't really have access to this info here,
312
+ // so we just add the characteristic. Doesn't really hurt.
303
313
  managementService.setCharacteristic(Characteristic_1.Characteristic.Active, true);
304
- managementService.setCharacteristic(Characteristic_1.Characteristic.SupportedRTPConfiguration, this.supportedRTPConfiguration);
305
- managementService.setCharacteristic(Characteristic_1.Characteristic.SupportedVideoStreamConfiguration, this.supportedVideoStreamConfiguration);
306
- managementService.setCharacteristic(Characteristic_1.Characteristic.SupportedAudioStreamConfiguration, this.supportedAudioStreamConfiguration);
307
314
  return managementService;
308
315
  };
309
316
  RTPStreamManagement.prototype.setupServiceHandlers = function () {
310
317
  var _this = this;
318
+ if (!this.service.testCharacteristic(Characteristic_1.Characteristic.Active)) {
319
+ // the active characteristic might not be present on some older configurations.
320
+ this.service.setCharacteristic(Characteristic_1.Characteristic.Active, true);
321
+ }
322
+ this.service.getCharacteristic(Characteristic_1.Characteristic.Active)
323
+ .on("change" /* CHANGE */, function () { var _a; return (_a = _this.stateChangeDelegate) === null || _a === void 0 ? void 0 : _a.call(_this); })
324
+ .setProps({ adminOnlyAccess: [1 /* WRITE */] });
325
+ // ensure that configurations are up-to-date and reflected in the characteristic values
326
+ this.service.setCharacteristic(Characteristic_1.Characteristic.SupportedRTPConfiguration, this.supportedRTPConfiguration);
327
+ this.service.setCharacteristic(Characteristic_1.Characteristic.SupportedVideoStreamConfiguration, this.supportedVideoStreamConfiguration);
328
+ this.service.setCharacteristic(Characteristic_1.Characteristic.SupportedAudioStreamConfiguration, this.supportedAudioStreamConfiguration);
311
329
  this._updateStreamStatus(0 /* AVAILABLE */); // reset streaming status to available
312
330
  this.service.setCharacteristic(Characteristic_1.Characteristic.SetupEndpoints, this.setupEndpointsResponse); // reset SetupEndpoints to default
313
331
  this.service.getCharacteristic(Characteristic_1.Characteristic.SelectedRTPStreamConfiguration)
314
332
  .on("get" /* GET */, function (callback) {
333
+ if (_this.streamingIsDisabled()) {
334
+ callback(null, tlv.encode(1 /* SESSION_CONTROL */, tlv.encode(2 /* COMMAND */, SessionControlCommand.SUSPEND_SESSION)).toString("base64"));
335
+ return;
336
+ }
315
337
  callback(null, _this.selectedConfiguration);
316
338
  })
317
339
  .on("set" /* SET */, this._handleSelectedStreamConfigurationWrite.bind(this));
318
340
  this.service.getCharacteristic(Characteristic_1.Characteristic.SetupEndpoints)
319
341
  .on("get" /* GET */, function (callback) {
342
+ if (_this.streamingIsDisabled()) {
343
+ callback(null, tlv.encode(2 /* STATUS */, 2 /* ERROR */).toString("base64"));
344
+ return;
345
+ }
320
346
  callback(null, _this.setupEndpointsResponse);
321
347
  })
322
348
  .on("set" /* SET */, function (value, callback, context, connection) {
@@ -350,15 +376,32 @@ var RTPStreamManagement = /** @class */ (function () {
350
376
  this.audioProxy = undefined;
351
377
  }
352
378
  };
379
+ RTPStreamManagement.prototype.streamingIsDisabled = function (callback) {
380
+ var _a;
381
+ if (!this.service.getCharacteristic(Characteristic_1.Characteristic.Active).value) {
382
+ console.log("STREAMING DISABLED ACTIVE");
383
+ callback && callback(new index_1.HapStatusError(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */));
384
+ return true;
385
+ }
386
+ if ((_a = this.disabledThroughOperatingMode) === null || _a === void 0 ? void 0 : _a.call(this)) {
387
+ console.log("STREAMING DISABLED OPERATION MODE!");
388
+ callback && callback(new index_1.HapStatusError(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */));
389
+ return true;
390
+ }
391
+ return false;
392
+ };
353
393
  RTPStreamManagement.prototype._handleSelectedStreamConfigurationWrite = function (value, callback) {
354
394
  var _this = this;
355
- var data = Buffer.from(value, 'base64');
395
+ if (this.streamingIsDisabled(callback)) {
396
+ return;
397
+ }
398
+ var data = Buffer.from(value, "base64");
356
399
  var objects = tlv.decode(data);
357
400
  var sessionControl = tlv.decode(objects[1 /* SESSION_CONTROL */]);
358
401
  var sessionIdentifier = index_1.uuid.unparse(sessionControl[1 /* SESSION_IDENTIFIER */]);
359
402
  var requestType = sessionControl[2 /* COMMAND */][0];
360
403
  if (sessionIdentifier !== this.sessionIdentifier) {
361
- debug("Received unknown session Identifier with request to " + SessionControlCommand[requestType]);
404
+ debug("Received unknown session Identifier with request to ".concat(SessionControlCommand[requestType]));
362
405
  callback(-70410 /* INVALID_VALUE_IN_REQUEST */);
363
406
  return;
364
407
  }
@@ -371,22 +414,24 @@ var RTPStreamManagement = /** @class */ (function () {
371
414
  }
372
415
  };
373
416
  switch (requestType) {
374
- case SessionControlCommand.START_SESSION:
417
+ case SessionControlCommand.START_SESSION: {
375
418
  var selectedVideoParameters = tlv.decode(objects[2 /* SELECTED_VIDEO_PARAMETERS */]);
376
419
  var selectedAudioParameters = tlv.decode(objects[3 /* SELECTED_AUDIO_PARAMETERS */]);
377
420
  this._handleStartStream(selectedVideoParameters, selectedAudioParameters, streamCallback);
378
421
  break;
379
- case SessionControlCommand.RECONFIGURE_SESSION:
422
+ }
423
+ case SessionControlCommand.RECONFIGURE_SESSION: {
380
424
  var reconfiguredVideoParameters = tlv.decode(objects[2 /* SELECTED_VIDEO_PARAMETERS */]);
381
425
  this.handleReconfigureStream(reconfiguredVideoParameters, streamCallback);
382
426
  break;
427
+ }
383
428
  case SessionControlCommand.END_SESSION:
384
429
  this._handleStopStream(streamCallback);
385
430
  break;
386
431
  case SessionControlCommand.RESUME_SESSION:
387
432
  case SessionControlCommand.SUSPEND_SESSION:
388
433
  default:
389
- debug("Unhandled request type " + SessionControlCommand[requestType]);
434
+ debug("Unhandled request type ".concat(SessionControlCommand[requestType]));
390
435
  callback(-70410 /* INVALID_VALUE_IN_REQUEST */);
391
436
  return;
392
437
  }
@@ -405,7 +450,7 @@ var RTPStreamManagement = /** @class */ (function () {
405
450
  var packetizationMode = videoParameters[3 /* PACKETIZATION_MODE */][0];
406
451
  var cvoEnabled = videoParameters[4 /* CVO_ENABLED */];
407
452
  var cvoId = undefined;
408
- if (cvoEnabled && cvoEnabled[0] === 2 /* SUPPORTED */) {
453
+ if (cvoEnabled && cvoEnabled[0] === 1 /* SUPPORTED */) {
409
454
  cvoId = videoParameters[5 /* CVO_ID */].readUInt8(0);
410
455
  }
411
456
  // video attributes
@@ -448,6 +493,7 @@ var RTPStreamManagement = /** @class */ (function () {
448
493
  }
449
494
  }
450
495
  var videoInfo = {
496
+ codec: videoCodec.readUInt8(0),
451
497
  profile: h264Profile,
452
498
  level: h264Level,
453
499
  packetizationMode: packetizationMode,
@@ -486,7 +532,7 @@ var RTPStreamManagement = /** @class */ (function () {
486
532
  audioCodecName = "AMR-WB" /* AMR_WB */;
487
533
  break;
488
534
  default:
489
- throw new Error("Encountered unknown selected audio codec " + audioCodec);
535
+ throw new Error("Encountered unknown selected audio codec ".concat(audioCodec));
490
536
  }
491
537
  switch (samplerate) {
492
538
  case 0 /* KHZ_8 */:
@@ -499,7 +545,7 @@ var RTPStreamManagement = /** @class */ (function () {
499
545
  samplerateNum = 24;
500
546
  break;
501
547
  default:
502
- throw new Error("Encountered unknown selected audio samplerate " + samplerate);
548
+ throw new Error("Encountered unknown selected audio samplerate ".concat(samplerate));
503
549
  }
504
550
  var audioInfo = {
505
551
  codec: audioCodecName,
@@ -534,7 +580,8 @@ var RTPStreamManagement = /** @class */ (function () {
534
580
  // video rtp parameters
535
581
  var videoRTPParameters = tlv.decode(videoRTPParametersTLV);
536
582
  var videoMaximumBitrate = videoRTPParameters[3 /* MAX_BIT_RATE */].readUInt16LE(0);
537
- var videoRTCPInterval = videoRTPParameters[4 /* MIN_RTCP_INTERVAL */].readFloatLE(0) || 0.5; // seems to be always zero, use default of 0.5
583
+ // seems to be always zero, use default of 0.5
584
+ var videoRTCPInterval = videoRTPParameters[4 /* MIN_RTCP_INTERVAL */].readFloatLE(0) || 0.5;
538
585
  var reconfiguredVideoInfo = {
539
586
  width: width,
540
587
  height: height,
@@ -559,7 +606,10 @@ var RTPStreamManagement = /** @class */ (function () {
559
606
  };
560
607
  RTPStreamManagement.prototype.handleSetupEndpoints = function (value, callback, connection) {
561
608
  var _this = this;
562
- var data = Buffer.from(value, 'base64');
609
+ if (this.streamingIsDisabled(callback)) {
610
+ return;
611
+ }
612
+ var data = Buffer.from(value, "base64");
563
613
  var objects = tlv.decode(data);
564
614
  var sessionIdentifier = index_1.uuid.unparse(objects[1 /* SESSION_ID */]);
565
615
  if (this.streamStatus !== 0 /* AVAILABLE */) {
@@ -577,7 +627,7 @@ var RTPStreamManagement = /** @class */ (function () {
577
627
  var targetAddressPayload = objects[3 /* CONTROLLER_ADDRESS */];
578
628
  var processedAddressInfo = tlv.decode(targetAddressPayload);
579
629
  var addressVersion = processedAddressInfo[1 /* ADDRESS_VERSION */][0];
580
- var controllerAddress = processedAddressInfo[2 /* ADDRESS */].toString('utf8');
630
+ var controllerAddress = processedAddressInfo[2 /* ADDRESS */].toString("utf8");
581
631
  var targetVideoPort = processedAddressInfo[3 /* VIDEO_RTP_PORT */].readUInt16LE(0);
582
632
  var targetAudioPort = processedAddressInfo[4 /* AUDIO_RTP_PORT */].readUInt16LE(0);
583
633
  // Video SRTP Params
@@ -592,7 +642,7 @@ var RTPStreamManagement = /** @class */ (function () {
592
642
  var audioCryptoSuite = processedAudioInfo[1 /* SRTP_CRYPTO_SUITE */][0];
593
643
  var audioMasterKey = processedAudioInfo[2 /* MASTER_KEY */];
594
644
  var audioMasterSalt = processedAudioInfo[3 /* MASTER_SALT */];
595
- debug('Session: ', sessionIdentifier, '\nControllerAddress: ', controllerAddress, '\nVideoPort: ', targetVideoPort, '\nAudioPort: ', targetAudioPort, '\nVideo Crypto: ', videoCryptoSuite, '\nVideo Master Key: ', videoMasterKey, '\nVideo Master Salt: ', videoMasterSalt, '\nAudio Crypto: ', audioCryptoSuite, '\nAudio Master Key: ', audioMasterKey, '\nAudio Master Salt: ', audioMasterSalt);
645
+ debug("Session: ", sessionIdentifier, "\nControllerAddress: ", controllerAddress, "\nVideoPort: ", targetVideoPort, "\nAudioPort: ", targetAudioPort, "\nVideo Crypto: ", videoCryptoSuite, "\nVideo Master Key: ", videoMasterKey, "\nVideo Master Salt: ", videoMasterSalt, "\nAudio Crypto: ", audioCryptoSuite, "\nAudio Master Key: ", audioMasterKey, "\nAudio Master Salt: ", audioMasterSalt);
596
646
  var prepareRequest = {
597
647
  sessionID: sessionIdentifier,
598
648
  targetAddress: controllerAddress,
@@ -617,7 +667,7 @@ var RTPStreamManagement = /** @class */ (function () {
617
667
  outgoingAddress: controllerAddress,
618
668
  outgoingPort: targetVideoPort,
619
669
  outgoingSSRC: crypto_1.default.randomBytes(4).readUInt32LE(0),
620
- disabled: false
670
+ disabled: false,
621
671
  });
622
672
  promises.push(this.videoProxy.setup().then(function () {
623
673
  prepareRequest.video.proxy_rtp = _this.videoProxy.incomingRTPPort();
@@ -628,7 +678,7 @@ var RTPStreamManagement = /** @class */ (function () {
628
678
  outgoingAddress: controllerAddress,
629
679
  outgoingPort: targetAudioPort,
630
680
  outgoingSSRC: crypto_1.default.randomBytes(4).readUInt32LE(0),
631
- disabled: this.videoOnly
681
+ disabled: this.videoOnly,
632
682
  });
633
683
  promises.push(this.audioProxy.setup().then(function () {
634
684
  prepareRequest.audio.proxy_rtp = _this.audioProxy.incomingRTPPort();
@@ -637,9 +687,9 @@ var RTPStreamManagement = /** @class */ (function () {
637
687
  }
638
688
  }
639
689
  Promise.all(promises).then(function () {
640
- _this.delegate.prepareStream(prepareRequest, index_1.once(function (error, response) {
690
+ _this.delegate.prepareStream(prepareRequest, (0, index_1.once)(function (error, response) {
641
691
  if (error || !response) {
642
- debug("PrepareStream request encountered an error: " + (error ? error.message : undefined));
692
+ debug("PrepareStream request encountered an error: ".concat(error ? error.message : undefined));
643
693
  _this.setupEndpointsResponse = tlv.encode(1 /* SESSION_ID */, index_1.uuid.write(sessionIdentifier), 2 /* STATUS */, 2 /* ERROR */).toString("base64");
644
694
  _this.handleSessionClosed();
645
695
  callback(error);
@@ -684,7 +734,7 @@ var RTPStreamManagement = /** @class */ (function () {
684
734
  address = connection.getLocalAddress(addressVersion);
685
735
  }
686
736
  if (request.addressVersion !== addressVersion) {
687
- throw new Error("Incoming and outgoing ip address versions must match! Expected " + request.addressVersion + " but got " + addressVersion);
737
+ throw new Error("Incoming and outgoing ip address versions must match! Expected ".concat(request.addressVersion, " but got ").concat(addressVersion));
688
738
  }
689
739
  videoPort = videoInfo.port;
690
740
  audioPort = audioInfo.port;
@@ -744,7 +794,7 @@ var RTPStreamManagement = /** @class */ (function () {
744
794
  };
745
795
  RTPStreamManagement.prototype._updateStreamStatus = function (status) {
746
796
  this.streamStatus = status;
747
- this.service.updateCharacteristic(Characteristic_1.Characteristic.StreamingStatus, tlv.encode(1 /* STATUS */, this.streamStatus).toString('base64'));
797
+ this.service.updateCharacteristic(Characteristic_1.Characteristic.StreamingStatus, tlv.encode(1 /* STATUS */, this.streamStatus).toString("base64"));
748
798
  };
749
799
  RTPStreamManagement._supportedRTPConfiguration = function (supportedCryptoSuites) {
750
800
  if (supportedCryptoSuites.length === 1 && supportedCryptoSuites[0] === 2 /* NONE */) {
@@ -754,21 +804,21 @@ var RTPStreamManagement = /** @class */ (function () {
754
804
  };
755
805
  RTPStreamManagement._supportedVideoStreamConfiguration = function (videoOptions) {
756
806
  if (!videoOptions.codec) {
757
- throw new Error('Video codec cannot be undefined');
807
+ throw new Error("Video codec cannot be undefined");
758
808
  }
759
809
  if (!videoOptions.resolutions) {
760
- throw new Error('Video resolutions cannot be undefined');
810
+ throw new Error("Video resolutions cannot be undefined");
761
811
  }
762
812
  var codecParameters = tlv.encode(1 /* PROFILE_ID */, videoOptions.codec.profiles, 2 /* LEVEL */, videoOptions.codec.levels, 3 /* PACKETIZATION_MODE */, 0 /* NON_INTERLEAVED */);
763
- if (videoOptions.cvoId != undefined) {
813
+ if (videoOptions.cvoId != null) {
764
814
  codecParameters = Buffer.concat([
765
815
  codecParameters,
766
- tlv.encode(4 /* CVO_ENABLED */, 2 /* SUPPORTED */, 5 /* CVO_ID */, videoOptions.cvoId)
816
+ tlv.encode(4 /* CVO_ENABLED */, 1 /* SUPPORTED */, 5 /* CVO_ID */, videoOptions.cvoId),
767
817
  ]);
768
818
  }
769
819
  var videoStreamConfiguration = tlv.encode(1 /* CODEC_TYPE */, 0 /* H264 */, 2 /* CODEC_PARAMETERS */, codecParameters, 3 /* ATTRIBUTES */, videoOptions.resolutions.map(function (resolution) {
770
- if (resolution.length != 3) {
771
- throw new Error('Unexpected video resolution');
820
+ if (resolution.length !== 3) {
821
+ throw new Error("Unexpected video resolution");
772
822
  }
773
823
  var width = Buffer.alloc(2);
774
824
  var height = Buffer.alloc(2);
@@ -778,7 +828,7 @@ var RTPStreamManagement = /** @class */ (function () {
778
828
  frameRate.writeUInt8(resolution[2], 0);
779
829
  return tlv.encode(1 /* IMAGE_WIDTH */, width, 2 /* IMAGE_HEIGHT */, height, 3 /* FRAME_RATE */, frameRate);
780
830
  }));
781
- return tlv.encode(1 /* VIDEO_CODEC_CONFIGURATION */, videoStreamConfiguration).toString('base64');
831
+ return tlv.encode(1 /* VIDEO_CODEC_CONFIGURATION */, videoStreamConfiguration).toString("base64");
782
832
  };
783
833
  RTPStreamManagement.prototype.checkForLegacyAudioCodecRepresentation = function (codecs) {
784
834
  var codecMap = {};
@@ -875,19 +925,44 @@ var RTPStreamManagement = /** @class */ (function () {
875
925
  this.service.updateCharacteristic(Characteristic_1.Characteristic.SelectedRTPStreamConfiguration, this.selectedConfiguration);
876
926
  };
877
927
  /**
878
- * @deprecated Please use the SRTPCryptoSuites const enum above. Scheduled to be removed in 2021-06.
928
+ * @private
929
+ */
930
+ RTPStreamManagement.prototype.serialize = function () {
931
+ var characteristicValue = this.service.getCharacteristic(Characteristic_1.Characteristic.Active).value;
932
+ if (characteristicValue === true) {
933
+ return undefined;
934
+ }
935
+ return {
936
+ id: this.id,
937
+ active: !!characteristicValue,
938
+ };
939
+ };
940
+ /**
941
+ * @private
942
+ */
943
+ RTPStreamManagement.prototype.deserialize = function (serialized) {
944
+ (0, assert_1.default)(serialized.id === this.id, "Tried to initialize RTPStreamManagement ".concat(this.id, " with data from management with id ").concat(serialized.id, "!"));
945
+ this.service.updateCharacteristic(Characteristic_1.Characteristic.Active, serialized.active);
946
+ };
947
+ /**
948
+ * @private
949
+ */
950
+ RTPStreamManagement.prototype.setupStateChangeDelegate = function (delegate) {
951
+ this.stateChangeDelegate = delegate;
952
+ };
953
+ /**
954
+ * @deprecated Please use the SRTPCryptoSuites const enum above.
879
955
  */
880
- // @ts-ignore
956
+ // @ts-expect-error: forceConsistentCasingInFileNames compiler option
881
957
  RTPStreamManagement.SRTPCryptoSuites = SRTPCryptoSuites;
882
958
  /**
883
- * @deprecated Please use the H264Profile const enum above. Scheduled to be removed in 2021-06.
959
+ * @deprecated Please use the H264Profile const enum above.
884
960
  */
885
- // @ts-ignore
961
+ // @ts-expect-error: forceConsistentCasingInFileNames compiler option
886
962
  RTPStreamManagement.VideoCodecParamProfileIDTypes = H264Profile;
887
963
  /**
888
- * @deprecated won't be updated anymore. Please use the H264Level const enum above. Scheduled to be removed in 2021-06.
964
+ * @deprecated won't be updated anymore. Please use the H264Level const enum above.
889
965
  */
890
- // @ts-ignore
891
966
  RTPStreamManagement.VideoCodecParamLevelTypes = Object.freeze({ TYPE3_1: 0, TYPE3_2: 1, TYPE4_0: 2 });
892
967
  return RTPStreamManagement;
893
968
  }());
@@ -896,7 +971,7 @@ exports.RTPStreamManagement = RTPStreamManagement;
896
971
  * @deprecated - only there for backwards compatibility, please use {@see RTPStreamManagement} directly
897
972
  */
898
973
  var StreamController = /** @class */ (function (_super) {
899
- tslib_1.__extends(StreamController, _super);
974
+ (0, tslib_1.__extends)(StreamController, _super);
900
975
  // noinspection JSDeprecatedSymbols
901
976
  function StreamController(id, options, delegate, service) {
902
977
  var _this = _super.call(this, id, options, new index_1.LegacyCameraSourceAdapter(delegate), service) || this;