hap-nodejs 0.10.0-beta.6 → 0.10.0-beta.7

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 (57) hide show
  1. package/dist/accessories/Camera_accessory.js +373 -1
  2. package/dist/accessories/Camera_accessory.js.map +1 -1
  3. package/dist/accessories/gstreamer-audioProducer.js +2 -3
  4. package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
  5. package/dist/internal-types.d.ts +2 -0
  6. package/dist/internal-types.d.ts.map +1 -1
  7. package/dist/internal-types.js.map +1 -1
  8. package/dist/lib/Accessory.d.ts.map +1 -1
  9. package/dist/lib/Accessory.js +6 -5
  10. package/dist/lib/Accessory.js.map +1 -1
  11. package/dist/lib/Characteristic.d.ts.map +1 -1
  12. package/dist/lib/Characteristic.js +7 -6
  13. package/dist/lib/Characteristic.js.map +1 -1
  14. package/dist/lib/Service.d.ts.map +1 -1
  15. package/dist/lib/Service.js.map +1 -1
  16. package/dist/lib/camera/RTPStreamManagement.d.ts +40 -4
  17. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  18. package/dist/lib/camera/RTPStreamManagement.js +75 -5
  19. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  20. package/dist/lib/camera/RecordingManagement.d.ts +267 -0
  21. package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
  22. package/dist/lib/camera/RecordingManagement.js +745 -0
  23. package/dist/lib/camera/RecordingManagement.js.map +1 -0
  24. package/dist/lib/camera/index.d.ts +1 -0
  25. package/dist/lib/camera/index.d.ts.map +1 -1
  26. package/dist/lib/camera/index.js +1 -0
  27. package/dist/lib/camera/index.js.map +1 -1
  28. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  29. package/dist/lib/controller/AdaptiveLightingController.js +4 -2
  30. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  31. package/dist/lib/controller/CameraController.d.ts +252 -7
  32. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  33. package/dist/lib/controller/CameraController.js +368 -23
  34. package/dist/lib/controller/CameraController.js.map +1 -1
  35. package/dist/lib/controller/DoorbellController.d.ts +43 -1
  36. package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
  37. package/dist/lib/controller/DoorbellController.js +62 -11
  38. package/dist/lib/controller/DoorbellController.js.map +1 -1
  39. package/dist/lib/controller/RemoteController.d.ts +3 -3
  40. package/dist/lib/controller/RemoteController.d.ts.map +1 -1
  41. package/dist/lib/controller/RemoteController.js +13 -11
  42. package/dist/lib/controller/RemoteController.js.map +1 -1
  43. package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
  44. package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
  45. package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
  46. package/dist/lib/datastream/DataStreamParser.js +2 -1
  47. package/dist/lib/datastream/DataStreamParser.js.map +1 -1
  48. package/dist/lib/datastream/DataStreamServer.d.ts +23 -4
  49. package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
  50. package/dist/lib/datastream/DataStreamServer.js +34 -11
  51. package/dist/lib/datastream/DataStreamServer.js.map +1 -1
  52. package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
  53. package/dist/lib/model/ControllerStorage.js +1 -1
  54. package/dist/lib/util/eventedhttp.d.ts +1 -1
  55. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  56. package/dist/lib/util/eventedhttp.js +1 -1
  57. package/package.json +2 -2
@@ -1,14 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CameraController = exports.CameraControllerEvents = void 0;
3
+ exports.CameraController = exports.CameraControllerEvents = exports.ResourceRequestReason = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var crypto_1 = (0, tslib_1.__importDefault)(require("crypto"));
6
6
  var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
7
7
  var events_1 = require("events");
8
8
  var camera_1 = require("../camera");
9
9
  var Characteristic_1 = require("../Characteristic");
10
+ var datastream_1 = require("../datastream");
10
11
  var Service_1 = require("../Service");
12
+ var hapStatusError_1 = require("../util/hapStatusError");
11
13
  var debug = (0, debug_1.default)("HAP-NodeJS:Camera:Controller");
14
+ var ResourceRequestReason;
15
+ (function (ResourceRequestReason) {
16
+ /**
17
+ * The reason describes periodic resource requests.
18
+ * In the example of camera image snapshots those are the typical preview images every 10 seconds.
19
+ */
20
+ ResourceRequestReason[ResourceRequestReason["PERIODIC"] = 0] = "PERIODIC";
21
+ /**
22
+ * The resource request is the result of some event.
23
+ * In the example of camera image snapshots, requests are made due to e.g. a motion event or similar.
24
+ */
25
+ ResourceRequestReason[ResourceRequestReason["EVENT"] = 1] = "EVENT";
26
+ })(ResourceRequestReason = exports.ResourceRequestReason || (exports.ResourceRequestReason = {}));
12
27
  var CameraControllerEvents;
13
28
  (function (CameraControllerEvents) {
14
29
  /**
@@ -31,7 +46,6 @@ var CameraController = /** @class */ (function (_super) {
31
46
  function CameraController(options, legacyMode) {
32
47
  if (legacyMode === void 0) { legacyMode = false; }
33
48
  var _this = _super.call(this) || this;
34
- // private readonly recordingOptions: CameraRecordingOptions, // soon
35
49
  _this.legacyMode = false;
36
50
  /**
37
51
  * @private
@@ -41,10 +55,14 @@ var CameraController = /** @class */ (function (_super) {
41
55
  _this.microphoneVolume = 100;
42
56
  _this.speakerMuted = false;
43
57
  _this.speakerVolume = 100;
58
+ _this.motionServiceExternallySupplied = false;
59
+ _this.occupancyServiceExternallySupplied = false;
44
60
  _this.streamCount = Math.max(1, options.cameraStreamCount || 1);
45
61
  _this.delegate = options.delegate;
46
62
  _this.streamingOptions = options.streamingOptions;
47
- _this.legacyMode = legacyMode; // legacy mode will prent from Microphone and Speaker services to get created to avoid collisions
63
+ _this.recording = options.recording;
64
+ _this.sensorOptions = options.sensors;
65
+ _this.legacyMode = legacyMode; // legacy mode will prevent from Microphone and Speaker services to get created to avoid collisions
48
66
  return _this;
49
67
  }
50
68
  /**
@@ -56,7 +74,7 @@ var CameraController = /** @class */ (function (_super) {
56
74
  // ----------------------------------- STREAM API ------------------------------------
57
75
  /**
58
76
  * Call this method if you want to forcefully suspend an ongoing streaming session.
59
- * This would be adequate if the the rtp server or media encoding encountered an unexpected error.
77
+ * This would be adequate if the rtp server or media encoding encountered an unexpected error.
60
78
  *
61
79
  * @param sessionId {SessionIdentifier} - id of the current ongoing streaming session
62
80
  */
@@ -114,11 +132,14 @@ var CameraController = /** @class */ (function (_super) {
114
132
  * @private
115
133
  */
116
134
  CameraController.prototype.constructServices = function () {
135
+ var _a, _b, _c, _d;
117
136
  for (var i = 0; i < this.streamCount; i++) {
118
- this.streamManagements.push(new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate));
137
+ var rtp = new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate, undefined, this.rtpStreamManagementDisabledThroughOperatingMode.bind(this));
138
+ this.streamManagements.push(rtp);
119
139
  }
120
140
  if (!this.legacyMode && this.streamingOptions.audio) {
121
- // In theory the Microphone Service is a necessity. In practice its not. lol. So we just add it if the user wants to support audio
141
+ // In theory the Microphone Service is a necessity. In practice, it's not. lol.
142
+ // So we just add it if the user wants to support audio
122
143
  this.microphoneService = new Service_1.Service.Microphone('', '');
123
144
  this.microphoneService.setCharacteristic(Characteristic_1.Characteristic.Volume, this.microphoneVolume);
124
145
  if (this.streamingOptions.audio.twoWayAudio) {
@@ -126,27 +147,69 @@ var CameraController = /** @class */ (function (_super) {
126
147
  this.speakerService.setCharacteristic(Characteristic_1.Characteristic.Volume, this.speakerVolume);
127
148
  }
128
149
  }
150
+ if (this.recording) {
151
+ this.recordingManagement = new camera_1.RecordingManagement(this.recording.options, this.recording.delegate, this.retrieveEventTriggerOptions());
152
+ }
153
+ if ((_a = this.sensorOptions) === null || _a === void 0 ? void 0 : _a.motion) {
154
+ if (typeof this.sensorOptions.motion === "boolean") {
155
+ this.motionService = new Service_1.Service.MotionSensor('', '');
156
+ }
157
+ else {
158
+ this.motionService = this.sensorOptions.motion;
159
+ this.motionServiceExternallySupplied = true;
160
+ }
161
+ this.motionService.setCharacteristic(Characteristic_1.Characteristic.StatusActive, true);
162
+ (_b = this.recordingManagement) === null || _b === void 0 ? void 0 : _b.recordingManagementService.addLinkedService(this.motionService);
163
+ }
164
+ if ((_c = this.sensorOptions) === null || _c === void 0 ? void 0 : _c.occupancy) {
165
+ if (typeof this.sensorOptions.occupancy === "boolean") {
166
+ this.occupancyService = new Service_1.Service.OccupancySensor('', '');
167
+ }
168
+ else {
169
+ this.occupancyService = this.sensorOptions.occupancy;
170
+ this.occupancyServiceExternallySupplied = true;
171
+ }
172
+ this.occupancyService.setCharacteristic(Characteristic_1.Characteristic.StatusActive, true);
173
+ (_d = this.recordingManagement) === null || _d === void 0 ? void 0 : _d.recordingManagementService.addLinkedService(this.occupancyService);
174
+ }
129
175
  var serviceMap = {
130
176
  microphone: this.microphoneService,
131
177
  speaker: this.speakerService,
178
+ motionService: !this.motionServiceExternallySupplied ? this.motionService : undefined,
179
+ occupancyService: !this.occupancyServiceExternallySupplied ? this.occupancyService : undefined,
132
180
  };
133
- this.streamManagements.forEach(function (management, index) { return serviceMap[CameraController.STREAM_MANAGEMENT + index] = management.getService(); });
181
+ if (this.recordingManagement) {
182
+ serviceMap.cameraEventRecordingManagement = this.recordingManagement.recordingManagementService;
183
+ serviceMap.cameraOperatingMode = this.recordingManagement.operatingModeService;
184
+ serviceMap.dataStreamTransportManagement = this.recordingManagement.dataStreamManagement.getService();
185
+ }
186
+ this.streamManagements.forEach(function (management, index) {
187
+ serviceMap[CameraController.STREAM_MANAGEMENT + index] = management.getService();
188
+ });
189
+ this.recording = undefined;
190
+ this.sensorOptions = undefined;
134
191
  return serviceMap;
135
192
  };
136
193
  /**
137
194
  * @private
138
195
  */
139
196
  CameraController.prototype.initWithServices = function (serviceMap) {
140
- var _a;
197
+ var result = this._initWithServices(serviceMap);
198
+ if (result.updated) { // serviceMap must only be returned if anything actually changed
199
+ return result.serviceMap;
200
+ }
201
+ };
202
+ CameraController.prototype._initWithServices = function (serviceMap) {
203
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
141
204
  var modifiedServiceMap = false;
142
205
  for (var i = 0; true; i++) {
143
206
  var streamManagementService = serviceMap[CameraController.STREAM_MANAGEMENT + i];
144
207
  if (i < this.streamCount) {
145
208
  if (streamManagementService) { // normal init
146
- this.streamManagements.push(new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate, streamManagementService));
209
+ this.streamManagements.push(new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate, streamManagementService, this.rtpStreamManagementDisabledThroughOperatingMode.bind(this)));
147
210
  }
148
211
  else { // stream count got bigger, we need to create a new service
149
- var management = new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate);
212
+ var management = new camera_1.RTPStreamManagement(i, this.streamingOptions, this.delegate, undefined, this.rtpStreamManagementDisabledThroughOperatingMode.bind(this));
150
213
  this.streamManagements.push(management);
151
214
  serviceMap[CameraController.STREAM_MANAGEMENT + i] = management.getService();
152
215
  modifiedServiceMap = true;
@@ -158,7 +221,7 @@ var CameraController = /** @class */ (function (_super) {
158
221
  modifiedServiceMap = true;
159
222
  }
160
223
  else {
161
- break; // we finished counting and we got no saved service; we are finished
224
+ break; // we finished counting, and we got no saved service; we are finished
162
225
  }
163
226
  }
164
227
  }
@@ -198,14 +261,112 @@ var CameraController = /** @class */ (function (_super) {
198
261
  delete serviceMap.speaker;
199
262
  modifiedServiceMap = true;
200
263
  }
264
+ // RECORDING
265
+ if (this.recording) {
266
+ var eventTriggers = this.retrieveEventTriggerOptions();
267
+ // RECORDING MANAGEMENT
268
+ if (serviceMap.cameraEventRecordingManagement && serviceMap.cameraOperatingMode && serviceMap.dataStreamTransportManagement) {
269
+ this.recordingManagement = new camera_1.RecordingManagement(this.recording.options, this.recording.delegate, eventTriggers, {
270
+ recordingManagement: serviceMap.cameraEventRecordingManagement,
271
+ operatingMode: serviceMap.cameraOperatingMode,
272
+ dataStreamManagement: new datastream_1.DataStreamManagement(serviceMap.dataStreamTransportManagement),
273
+ });
274
+ }
275
+ else {
276
+ this.recordingManagement = new camera_1.RecordingManagement(this.recording.options, this.recording.delegate, eventTriggers);
277
+ serviceMap.cameraEventRecordingManagement = this.recordingManagement.recordingManagementService;
278
+ serviceMap.cameraOperatingMode = this.recordingManagement.operatingModeService;
279
+ serviceMap.dataStreamTransportManagement = this.recordingManagement.dataStreamManagement.getService();
280
+ modifiedServiceMap = true;
281
+ }
282
+ }
283
+ else {
284
+ if (serviceMap.cameraEventRecordingManagement) {
285
+ delete serviceMap.cameraEventRecordingManagement;
286
+ modifiedServiceMap = true;
287
+ }
288
+ if (serviceMap.cameraOperatingMode) {
289
+ delete serviceMap.cameraOperatingMode;
290
+ modifiedServiceMap = true;
291
+ }
292
+ if (serviceMap.dataStreamTransportManagement) {
293
+ delete serviceMap.dataStreamTransportManagement;
294
+ modifiedServiceMap = true;
295
+ }
296
+ }
297
+ // MOTION SENSOR
298
+ if ((_b = this.sensorOptions) === null || _b === void 0 ? void 0 : _b.motion) {
299
+ if (typeof this.sensorOptions.motion === "boolean") {
300
+ if (serviceMap.motionService) {
301
+ this.motionService = serviceMap.motionService;
302
+ }
303
+ else {
304
+ // it could be the case that we previously had a manually supplied motion service
305
+ // at this point we can't remove the iid from the list of linked services from the recording management!
306
+ this.motionService = new Service_1.Service.MotionSensor('', '');
307
+ }
308
+ }
309
+ else {
310
+ this.motionService = this.sensorOptions.motion;
311
+ this.motionServiceExternallySupplied = true;
312
+ if (serviceMap.motionService) { // motion service previously supplied as bool option
313
+ (_c = this.recordingManagement) === null || _c === void 0 ? void 0 : _c.recordingManagementService.removeLinkedService(serviceMap.motionService);
314
+ delete serviceMap.motionService;
315
+ modifiedServiceMap = true;
316
+ }
317
+ }
318
+ this.motionService.setCharacteristic(Characteristic_1.Characteristic.StatusActive, true);
319
+ (_d = this.recordingManagement) === null || _d === void 0 ? void 0 : _d.recordingManagementService.addLinkedService(this.motionService);
320
+ }
321
+ else {
322
+ if (serviceMap.motionService) {
323
+ (_e = this.recordingManagement) === null || _e === void 0 ? void 0 : _e.recordingManagementService.removeLinkedService(serviceMap.motionService);
324
+ delete serviceMap.motionService;
325
+ modifiedServiceMap = true;
326
+ }
327
+ }
328
+ // OCCUPANCY SENSOR
329
+ if ((_f = this.sensorOptions) === null || _f === void 0 ? void 0 : _f.occupancy) {
330
+ if (typeof this.sensorOptions.occupancy === "boolean") {
331
+ if (serviceMap.occupancyService) {
332
+ this.occupancyService = serviceMap.occupancyService;
333
+ }
334
+ else {
335
+ // it could be the case that we previously had a manually supplied occupancy service
336
+ // at this point we can't remove the iid from the list of linked services from the recording management!
337
+ this.occupancyService = new Service_1.Service.OccupancySensor('', '');
338
+ }
339
+ }
340
+ else {
341
+ this.occupancyService = this.sensorOptions.occupancy;
342
+ this.occupancyServiceExternallySupplied = true;
343
+ if (serviceMap.occupancyService) { // occupancy service previously supplied as bool option
344
+ (_g = this.recordingManagement) === null || _g === void 0 ? void 0 : _g.recordingManagementService.removeLinkedService(serviceMap.occupancyService);
345
+ delete serviceMap.occupancyService;
346
+ modifiedServiceMap = true;
347
+ }
348
+ }
349
+ this.occupancyService.setCharacteristic(Characteristic_1.Characteristic.StatusActive, true);
350
+ (_h = this.recordingManagement) === null || _h === void 0 ? void 0 : _h.recordingManagementService.addLinkedService(this.occupancyService);
351
+ }
352
+ else {
353
+ if (serviceMap.occupancyService) {
354
+ (_j = this.recordingManagement) === null || _j === void 0 ? void 0 : _j.recordingManagementService.removeLinkedService(serviceMap.occupancyService);
355
+ delete serviceMap.occupancyService;
356
+ modifiedServiceMap = true;
357
+ }
358
+ }
201
359
  if (this.migrateFromDoorbell(serviceMap)) {
202
360
  modifiedServiceMap = true;
203
361
  }
204
- if (modifiedServiceMap) { // serviceMap must only be returned if anything actually changed
205
- return serviceMap;
206
- }
362
+ this.recording = undefined;
363
+ this.sensorOptions = undefined;
364
+ return {
365
+ serviceMap: serviceMap,
366
+ updated: modifiedServiceMap,
367
+ };
207
368
  };
208
- // overwritten in DoorbellController (to avoid cyclic dependencies, i hate typescript for that)
369
+ // overwritten in DoorbellController (to avoid cyclic dependencies, I hate typescript for that)
209
370
  CameraController.prototype.migrateFromDoorbell = function (serviceMap) {
210
371
  if (serviceMap.doorbell) { // See NOTICE in DoorbellController
211
372
  delete serviceMap.doorbell;
@@ -213,11 +374,40 @@ var CameraController = /** @class */ (function (_super) {
213
374
  }
214
375
  return false;
215
376
  };
377
+ CameraController.prototype.retrieveEventTriggerOptions = function () {
378
+ var e_1, _a;
379
+ var _b;
380
+ if (!this.recording) {
381
+ return new Set();
382
+ }
383
+ var triggerOptions = new Set();
384
+ if (this.recording.options.overrideEventTriggerOptions) {
385
+ try {
386
+ for (var _c = (0, tslib_1.__values)(this.recording.options.overrideEventTriggerOptions), _d = _c.next(); !_d.done; _d = _c.next()) {
387
+ var option = _d.value;
388
+ triggerOptions.add(option);
389
+ }
390
+ }
391
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
392
+ finally {
393
+ try {
394
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
395
+ }
396
+ finally { if (e_1) throw e_1.error; }
397
+ }
398
+ }
399
+ if ((_b = this.sensorOptions) === null || _b === void 0 ? void 0 : _b.motion) {
400
+ triggerOptions.add(1 /* MOTION */);
401
+ }
402
+ // this method is overwritten by the `DoorbellController` to automatically configure EventTriggerOption.DOORBELL
403
+ return triggerOptions;
404
+ };
216
405
  /**
217
406
  * @private
218
407
  */
219
408
  CameraController.prototype.configureServices = function () {
220
409
  var _this = this;
410
+ var _a, _b;
221
411
  if (this.microphoneService) {
222
412
  this.microphoneService.getCharacteristic(Characteristic_1.Characteristic.Mute)
223
413
  .on("get" /* GET */, function (callback) {
@@ -258,36 +448,53 @@ var CameraController = /** @class */ (function (_super) {
258
448
  _this.emitSpeakerChange();
259
449
  });
260
450
  }
451
+ // make the sensor services available to the RecordingManagement.
452
+ if (this.motionService) {
453
+ (_a = this.recordingManagement) === null || _a === void 0 ? void 0 : _a.sensorServices.push(this.motionService);
454
+ }
455
+ if (this.occupancyService) {
456
+ (_b = this.recordingManagement) === null || _b === void 0 ? void 0 : _b.sensorServices.push(this.occupancyService);
457
+ }
458
+ };
459
+ CameraController.prototype.rtpStreamManagementDisabledThroughOperatingMode = function () {
460
+ return this.recordingManagement
461
+ ? !this.recordingManagement.operatingModeService.getCharacteristic(Characteristic_1.Characteristic.HomeKitCameraActive).value
462
+ : false;
261
463
  };
262
464
  /**
263
465
  * @private
264
466
  */
265
467
  CameraController.prototype.handleControllerRemoved = function () {
266
- var e_1, _a;
468
+ var e_2, _a;
469
+ var _b;
267
470
  this.handleFactoryReset();
268
471
  try {
269
- for (var _b = (0, tslib_1.__values)(this.streamManagements), _c = _b.next(); !_c.done; _c = _b.next()) {
270
- var management = _c.value;
472
+ for (var _c = (0, tslib_1.__values)(this.streamManagements), _d = _c.next(); !_d.done; _d = _c.next()) {
473
+ var management = _d.value;
271
474
  management.destroy();
272
475
  }
273
476
  }
274
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
477
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
275
478
  finally {
276
479
  try {
277
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
480
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
278
481
  }
279
- finally { if (e_1) throw e_1.error; }
482
+ finally { if (e_2) throw e_2.error; }
280
483
  }
281
484
  this.streamManagements.splice(0, this.streamManagements.length);
282
485
  this.microphoneService = undefined;
283
486
  this.speakerService = undefined;
487
+ (_b = this.recordingManagement) === null || _b === void 0 ? void 0 : _b.destroy();
488
+ this.recordingManagement = undefined;
284
489
  this.removeAllListeners();
285
490
  };
286
491
  /**
287
492
  * @private
288
493
  */
289
494
  CameraController.prototype.handleFactoryReset = function () {
495
+ var _a;
290
496
  this.streamManagements.forEach(function (management) { return management.handleFactoryReset(); });
497
+ (_a = this.recordingManagement) === null || _a === void 0 ? void 0 : _a.handleFactoryReset();
291
498
  this.microphoneMuted = false;
292
499
  this.microphoneVolume = 100;
293
500
  this.speakerMuted = false;
@@ -296,8 +503,145 @@ var CameraController = /** @class */ (function (_super) {
296
503
  /**
297
504
  * @private
298
505
  */
299
- CameraController.prototype.handleSnapshotRequest = function (height, width, accessoryName) {
506
+ CameraController.prototype.serialize = function () {
507
+ var e_3, _a;
508
+ var _b;
509
+ var streamManagementStates = [];
510
+ try {
511
+ for (var _c = (0, tslib_1.__values)(this.streamManagements), _d = _c.next(); !_d.done; _d = _c.next()) {
512
+ var management = _d.value;
513
+ var serializedState = management.serialize();
514
+ if (serializedState) {
515
+ streamManagementStates.push(serializedState);
516
+ }
517
+ }
518
+ }
519
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
520
+ finally {
521
+ try {
522
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
523
+ }
524
+ finally { if (e_3) throw e_3.error; }
525
+ }
526
+ return {
527
+ streamManagements: streamManagementStates,
528
+ recordingManagement: (_b = this.recordingManagement) === null || _b === void 0 ? void 0 : _b.serialize(),
529
+ };
530
+ };
531
+ /**
532
+ * @private
533
+ */
534
+ CameraController.prototype.deserialize = function (serialized) {
535
+ var e_4, _a, e_5, _b;
536
+ var _c;
537
+ try {
538
+ for (var _d = (0, tslib_1.__values)(serialized.streamManagements), _e = _d.next(); !_e.done; _e = _d.next()) {
539
+ var streamManagementState = _e.value;
540
+ var streamManagement = this.streamManagements[streamManagementState.id];
541
+ if (streamManagement) {
542
+ streamManagement.deserialize(streamManagementState);
543
+ }
544
+ }
545
+ }
546
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
547
+ finally {
548
+ try {
549
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
550
+ }
551
+ finally { if (e_4) throw e_4.error; }
552
+ }
553
+ if (serialized.recordingManagement) {
554
+ if (this.recordingManagement) {
555
+ this.recordingManagement.deserialize(serialized.recordingManagement);
556
+ }
557
+ else {
558
+ try {
559
+ // Active characteristic cannot be controlled if removing HSV, ensure they are all active!
560
+ for (var _f = (0, tslib_1.__values)(this.streamManagements), _g = _f.next(); !_g.done; _g = _f.next()) {
561
+ var streamManagement = _g.value;
562
+ streamManagement.service.updateCharacteristic(Characteristic_1.Characteristic.Active, true);
563
+ }
564
+ }
565
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
566
+ finally {
567
+ try {
568
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
569
+ }
570
+ finally { if (e_5) throw e_5.error; }
571
+ }
572
+ (_c = this.stateChangeDelegate) === null || _c === void 0 ? void 0 : _c.call(this);
573
+ }
574
+ }
575
+ };
576
+ /**
577
+ * @private
578
+ */
579
+ CameraController.prototype.setupStateChangeDelegate = function (delegate) {
580
+ var e_6, _a;
581
+ var _b;
582
+ this.stateChangeDelegate = delegate;
583
+ try {
584
+ for (var _c = (0, tslib_1.__values)(this.streamManagements), _d = _c.next(); !_d.done; _d = _c.next()) {
585
+ var streamManagement = _d.value;
586
+ streamManagement.setupStateChangeDelegate(delegate);
587
+ }
588
+ }
589
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
590
+ finally {
591
+ try {
592
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
593
+ }
594
+ finally { if (e_6) throw e_6.error; }
595
+ }
596
+ (_b = this.recordingManagement) === null || _b === void 0 ? void 0 : _b.setupStateChangeDelegate(delegate);
597
+ };
598
+ /**
599
+ * @private
600
+ */
601
+ CameraController.prototype.handleSnapshotRequest = function (height, width, accessoryName, reason) {
300
602
  var _this = this;
603
+ // first step is to verify that the reason is applicable to our current policy
604
+ var streamingDisabled = this.streamManagements
605
+ .map(function (management) { return !management.getService().getCharacteristic(Characteristic_1.Characteristic.Active).value; })
606
+ .reduce(function (previousValue, currentValue) { return previousValue && currentValue; });
607
+ if (streamingDisabled) {
608
+ debug("[%s] Rejecting snapshot as streaming is disabled.", accessoryName);
609
+ return Promise.reject(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */);
610
+ }
611
+ if (this.recordingManagement) {
612
+ var operatingModeService = this.recordingManagement.operatingModeService;
613
+ if (!operatingModeService.getCharacteristic(Characteristic_1.Characteristic.HomeKitCameraActive).value) {
614
+ debug("[%s] Rejecting snapshot as HomeKit camera is disabled.", accessoryName);
615
+ return Promise.reject(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */);
616
+ }
617
+ var eventSnapshotsActive = operatingModeService
618
+ .getCharacteristic(Characteristic_1.Characteristic.EventSnapshotsActive)
619
+ .value;
620
+ if (!eventSnapshotsActive) {
621
+ if (reason == null) {
622
+ debug("[%s] Rejecting snapshot as reason is required due to disabled event snapshots.", accessoryName);
623
+ return Promise.reject(-70401 /* INSUFFICIENT_PRIVILEGES */);
624
+ }
625
+ else if (reason == 1 /* EVENT */) {
626
+ debug("[%s] Rejecting snapshot as even snapshots are disabled.", accessoryName);
627
+ return Promise.reject(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */);
628
+ }
629
+ }
630
+ var periodicSnapshotsActive = operatingModeService
631
+ .getCharacteristic(Characteristic_1.Characteristic.PeriodicSnapshotsActive)
632
+ .value;
633
+ if (!periodicSnapshotsActive) {
634
+ if (reason == null) {
635
+ debug("[%s] Rejecting snapshot as reason is required due to disabled periodic snapshots.", accessoryName);
636
+ return Promise.reject(-70401 /* INSUFFICIENT_PRIVILEGES */);
637
+ }
638
+ else if (reason == 0 /* PERIODIC */) {
639
+ debug("[%s] Rejecting snapshot as periodic snapshots are disabled.", accessoryName);
640
+ return Promise.reject(-70412 /* NOT_ALLOWED_IN_CURRENT_STATE */);
641
+ }
642
+ }
643
+ }
644
+ // now do the actual snapshot request.
301
645
  return new Promise(function (resolve, reject) {
302
646
  var timeout = setTimeout(function () {
303
647
  console.warn("[" + accessoryName + "] The image snapshot handler for the given accessory is slow to respond! See https://git.io/JtMGR for more info.");
@@ -313,6 +657,7 @@ var CameraController = /** @class */ (function (_super) {
313
657
  _this.delegate.handleSnapshotRequest({
314
658
  height: height,
315
659
  width: width,
660
+ reason: reason,
316
661
  }, function (error, buffer) {
317
662
  if (!timeout) {
318
663
  return;
@@ -349,7 +694,7 @@ var CameraController = /** @class */ (function (_super) {
349
694
  timeout = undefined;
350
695
  }
351
696
  console.warn("[" + accessoryName + "] Unhandled error thrown inside snapshot request handler: " + error.stack);
352
- reject(-70402 /* SERVICE_COMMUNICATION_FAILURE */);
697
+ reject(error instanceof hapStatusError_1.HapStatusError ? error.hapStatus : -70402 /* SERVICE_COMMUNICATION_FAILURE */);
353
698
  }
354
699
  });
355
700
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CameraController.js","sourceRoot":"","sources":["../../../src/lib/controller/CameraController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CameraController.js","sourceRoot":"","sources":["../../../src/lib/controller/CameraController.ts"],"names":[],"mappings":"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"}