From a0bcc0bbb3a9f46bfffc35f93afdd762c444bec2 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Fri, 22 Jul 2022 10:39:40 -0700 Subject: [PATCH] homekit: fix accessory mode pairing code bug where it was using the bridge pairing code --- plugins/homekit/package-lock.json | 4 ++-- plugins/homekit/package.json | 2 +- plugins/homekit/src/main.ts | 3 ++- plugins/homekit/src/types/camera/jitter-buffer.ts | 8 ++++++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/plugins/homekit/package-lock.json b/plugins/homekit/package-lock.json index a37b69090..37fb05f66 100644 --- a/plugins/homekit/package-lock.json +++ b/plugins/homekit/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/homekit", - "version": "1.1.29", + "version": "1.1.30", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/homekit", - "version": "1.1.29", + "version": "1.1.30", "dependencies": { "@koush/werift-src": "file:../../external/werift", "check-disk-space": "^3.3.0", diff --git a/plugins/homekit/package.json b/plugins/homekit/package.json index 6fb69ee75..8dd41a1ff 100644 --- a/plugins/homekit/package.json +++ b/plugins/homekit/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/homekit", - "version": "1.1.29", + "version": "1.1.30", "description": "HomeKit Plugin for Scrypted", "scripts": { "scrypted-setup-project": "scrypted-setup-project", diff --git a/plugins/homekit/src/main.ts b/plugins/homekit/src/main.ts index faf0339f7..b98aa0f7e 100644 --- a/plugins/homekit/src/main.ts +++ b/plugins/homekit/src/main.ts @@ -209,6 +209,7 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, onDeviceEvent: async () => { } }, createHAPUsernameStorageSettingsDict()) + storageSettings.settings.pincode.persistedDefaultValue = randomPinCode(); const mixinConsole = deviceManager.getMixinConsole(device.id, this.nativeId); @@ -217,7 +218,7 @@ export class HomeKitPlugin extends ScryptedDeviceBase implements MixinProvider, const publish = () => { published = true; mixinConsole.log('Device is in accessory mode and is online. HomeKit services are being published.'); - this.publishAccessory(accessory, storageSettings.values.mac, this.storageSettings.values.pincode, standaloneCategory); + this.publishAccessory(accessory, storageSettings.values.mac, storageSettings.values.pincode, standaloneCategory); if (!hasPublished) { hasPublished = true; logConnections(mixinConsole, accessory, this.seenConnections); diff --git a/plugins/homekit/src/types/camera/jitter-buffer.ts b/plugins/homekit/src/types/camera/jitter-buffer.ts index 87f19cfad..49e1c7b1b 100644 --- a/plugins/homekit/src/types/camera/jitter-buffer.ts +++ b/plugins/homekit/src/types/camera/jitter-buffer.ts @@ -4,7 +4,11 @@ export function sequenceNumberDistance(s1: number, s2: number): number { if (s2 === s1) return 0; const distance = s2 - s1; - const rolloverDistance = s1 + 0x10000 - s2; + let rolloverDistance: number; + if (s2 > s1) + rolloverDistance = s1 + 0x10000 - s2; + else + rolloverDistance = s2 + 0x10000 - s2; if (Math.abs(distance) < Math.abs(rolloverDistance)) return distance; @@ -23,7 +27,7 @@ export class JitterBuffer { lastSequenceNumber: number; pending: RtpPacket[] = []; - constructor(public console: Console, public jitterSize: number, ) { + constructor(public console: Console, public jitterSize: number,) { } flushPending(afterSequenceNumber: number, ret: RtpPacket[]): RtpPacket[] {