homebridge-openrgb-multi 7.1.2 → 8.0.0
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.
- package/dist/Device.js +7 -2
- package/dist/Device.js.map +1 -1
- package/dist/Zone.js +15 -13
- package/dist/Zone.js.map +1 -1
- package/dist/platformFactory.d.ts +1 -0
- package/dist/platformFactory.js +14 -1
- package/dist/platformFactory.js.map +1 -1
- package/dist/types/configuration/ZoneConfiguration.d.ts +0 -1
- package/package.json +5 -5
- package/src/Device.ts +13 -2
- package/src/Zone.ts +33 -31
- package/src/platformFactory.ts +16 -1
- package/src/types/configuration/ZoneConfiguration.ts +0 -1
package/dist/Device.js
CHANGED
|
@@ -39,8 +39,9 @@ class Device {
|
|
|
39
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
40
|
if (this.virtual) {
|
|
41
41
|
this.context.log.info(`Initialized virtual device <${this.configuration.name}>`);
|
|
42
|
+
return;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
this.context.openRgbClient.once('connect', () => __awaiter(this, void 0, void 0, function* () {
|
|
44
45
|
const openRgbDevices = yield this.context.openRgbClient.getAllControllerData();
|
|
45
46
|
const openRgbDevice = openRgbDevices.find((openRgb) => openRgb.serial.replace(/\s+$/g, '') ===
|
|
46
47
|
this.configuration.serial);
|
|
@@ -53,7 +54,7 @@ class Device {
|
|
|
53
54
|
this.colors = new Array(this.size).fill(palette_kit_core_1.DEFAULT_COLOR);
|
|
54
55
|
this.context.log.info(`Resolved device <${this.name}> to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`);
|
|
55
56
|
}
|
|
56
|
-
}
|
|
57
|
+
}));
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
withWriteLock(callback) {
|
|
@@ -62,6 +63,10 @@ class Device {
|
|
|
62
63
|
this.context.log.warn(`Ignoring write lock request because device <${this.name}> was not initialized`);
|
|
63
64
|
return;
|
|
64
65
|
}
|
|
66
|
+
if (!this.virtual && !this.context.openRgbClient.isConnected) {
|
|
67
|
+
this.context.log.warn(`Ignoring write lock request for device <${this.name}> because OpenRGB client is not connected`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
65
70
|
return this.lock.writeLock((release) => __awaiter(this, void 0, void 0, function* () {
|
|
66
71
|
try {
|
|
67
72
|
yield callback();
|
package/dist/Device.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAmC;AACnC,iCAAgC;AAChC,6CAAoD;AAEpD,kEAOqC;AAGrC,mEAAoD;AAEpD,MAAa,MAAM;IAMjB,YACmB,aAAkC,EAClC,OAAgB;QADhB,kBAAa,GAAb,aAAa,CAAqB;QAClC,YAAO,GAAP,OAAO,CAAS;QAP3B,oBAAe,GAAW,CAAC,CAAC,CAAC;QAC7B,SAAI,GAAG,IAAI,gBAAa,EAAE,CAAC;IAOhC,CAAC;IAEJ,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,eAAO,CAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAC7B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED,IAAY,OAAO;;QACjB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,OAAO,mCAAI,KAAK,CAAC;IAC7C,CAAC;IAEY,UAAU;;YACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CACnB,+BAA+B,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAC1D,CAAC;
|
|
1
|
+
{"version":3,"file":"Device.js","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
|
package/dist/Zone.js
CHANGED
|
@@ -30,19 +30,6 @@ class Zone extends effect_kit_1.Zone {
|
|
|
30
30
|
});
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
32
|
yield _super.initialize.call(this);
|
|
33
|
-
if (this.context.persistence) {
|
|
34
|
-
const active = yield this.context.persistence.getZoneActive(this.id);
|
|
35
|
-
const brightness = yield this.context.persistence.getZoneBrightness(this.id);
|
|
36
|
-
const effectId = yield this.context.persistence.getZoneEffectId(this.id);
|
|
37
|
-
if (effectId) {
|
|
38
|
-
const effect = this.getEffect(effectId);
|
|
39
|
-
this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} effect ID = [${effect.name}]`);
|
|
40
|
-
yield this.setEffectId(effectId);
|
|
41
|
-
}
|
|
42
|
-
this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} active = ${(0, helpers_for_homebridge_1.logBoolean)(active)}, brightness = ${(0, helpers_for_homebridge_1.logPercent)(brightness)}`);
|
|
43
|
-
yield this.setBrightness(brightness);
|
|
44
|
-
yield this.setActive(active);
|
|
45
|
-
}
|
|
46
33
|
this.on('updateActive', (active) => __awaiter(this, void 0, void 0, function* () {
|
|
47
34
|
yield this.context.persistence.setZoneActive(this.id, active);
|
|
48
35
|
}));
|
|
@@ -54,6 +41,21 @@ class Zone extends effect_kit_1.Zone {
|
|
|
54
41
|
yield this.context.persistence.setZoneEffectId(this.id, effectId);
|
|
55
42
|
}
|
|
56
43
|
}));
|
|
44
|
+
this.context.openRgbClient.once('connect', () => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
if (this.context.persistence) {
|
|
46
|
+
const active = yield this.context.persistence.getZoneActive(this.id);
|
|
47
|
+
const brightness = yield this.context.persistence.getZoneBrightness(this.id);
|
|
48
|
+
const effectId = yield this.context.persistence.getZoneEffectId(this.id);
|
|
49
|
+
if (effectId) {
|
|
50
|
+
const effect = this.getEffect(effectId);
|
|
51
|
+
this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} effect ID = [${effect.name}]`);
|
|
52
|
+
yield this.setEffectId(effectId);
|
|
53
|
+
}
|
|
54
|
+
this.context.log.debug(`Restoring persisted zone ${(0, helpers_for_homebridge_1.logAccessoryName)(this.name)} active = ${(0, helpers_for_homebridge_1.logBoolean)(active)}, brightness = ${(0, helpers_for_homebridge_1.logPercent)(brightness)}`);
|
|
55
|
+
yield this.setBrightness(brightness);
|
|
56
|
+
yield this.setActive(active);
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
61
|
get devicesArray() {
|
package/dist/Zone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAkC;AAClC,mEAIgC;AAChC,sDAAsE;AAEtE,MAAa,IAAK,SAAQ,iBAAa;IACrC,YACqB,aAAgC,EAChC,OAAgB;QAEnC,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,EAAE;YAChD,OAAO,IAAI,eAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC,CACH,CAAC;QAEF,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QATpB,kBAAa,GAAb,aAAa,CAAmB;QAChC,YAAO,GAAP,OAAO,CAAS;QAUnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,iBAAiB;IACJ,UAAU;;;;;YACrB,MAAM,OAAM,UAAU,WAAE,CAAC;YAEzB,IAAI,
|
|
1
|
+
{"version":3,"file":"Zone.js","sourceRoot":"","sources":["../src/Zone.ts"],"names":[],"mappings":"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"}
|
package/dist/platformFactory.js
CHANGED
|
@@ -55,9 +55,22 @@ const createPlatform = (homebridge) => {
|
|
|
55
55
|
this.zones.set(zone.id, zone);
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
+
connectOpenRgbClient() {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
while (!this.context.openRgbClient.isConnected) {
|
|
61
|
+
try {
|
|
62
|
+
yield this.context.openRgbClient.connect();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
this.context.log.warn(`Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`);
|
|
66
|
+
yield new Promise((resolve) => setTimeout(resolve, 5000));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
58
71
|
accessories(callback) {
|
|
59
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
|
|
73
|
+
this.connectOpenRgbClient();
|
|
61
74
|
yield this.context.paletteClient.connect();
|
|
62
75
|
yield Promise.all(Array.from(this.zones.values()).map((zone) => __awaiter(this, void 0, void 0, function* () {
|
|
63
76
|
return yield zone.initialize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAsD;AAEtD,qCAAuC;AACvC,mEAAgE;AAChE,kEAAsD;AACtD,sEAA8D;AAG9D,yCAAgD;AAChD,+CAIuB;AACvB,iCAA8B;AAC9B,2CAAyE;AAElE,MAAM,cAAc,GAAG,CAAC,UAAe,EAAE,EAAE;IAChD,MAAM,QAAQ;QAIZ,YACE,aAAsB,EACb,aAAoC;;YAApC,kBAAa,GAAb,aAAa,CAAuB;YAJ/C,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;YAM5C,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC;gBACvB,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE;oBACV,IAAI,+CAAsB,CAAC,aAAa,CAAC;iBAC1C;aACF,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,6BAAkB,CAAC,MAAA,aAAa,CAAC,WAAW,mCAAI,EAAE,EAAE;gBAC1E,UAAU;gBACV,GAAG;aACJ,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAI,oBAAa,CACrC,SAAS,EACT,MAAA,aAAa,CAAC,WAAW,mCAAI,gCAAoB,EACjD,MAAA,aAAa,CAAC,WAAW,mCAAI,gCAAoB,CAClD,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,0BAAO,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa;gBAC/C,CAAC,CAAC,IAAI,kCAAa,CACf,aAAa,CAAC,aAAa,EAC3B;oBACE,GAAG;iBACJ,EACD,OAAO,CACR;gBACH,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,CAAC,OAAO,GAAG;gBACb,UAAU;gBACV,aAAa;gBACb,OAAO;gBACP,aAAa;gBACb,GAAG;gBACH,WAAW;aACZ,CAAC;YAEF,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,EAAE;gBAChD,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC;
|
|
1
|
+
{"version":3,"file":"platformFactory.js","sourceRoot":"","sources":["../src/platformFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ZoneConfiguration as EffectKitZoneConfiguration } from '@manganese/effect-kit';
|
|
2
2
|
import { DeviceConfiguration } from './DeviceConfiguration';
|
|
3
3
|
export interface ZoneConfiguration extends EffectKitZoneConfiguration {
|
|
4
|
-
trueOff?: boolean;
|
|
5
4
|
devices: DeviceConfiguration[];
|
|
6
5
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "homebridge-openrgb-multi",
|
|
3
3
|
"displayName": "Homebridge OpenRGB Multi",
|
|
4
4
|
"description": "Homebridge plugin for multi-color dynamic effects for OpenRGB",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "8.0.0",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"homebridge-plugin"
|
|
8
8
|
],
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"deprecated": false,
|
|
21
21
|
"engines": {
|
|
22
|
-
"node": "
|
|
23
|
-
"homebridge": "^
|
|
22
|
+
"node": "^24.0.0",
|
|
23
|
+
"homebridge": "^2.0.0"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"clean": "rm -rf dist node_modules package-lock.json",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"@manganese/effect-kit": "^3.4.0",
|
|
35
35
|
"@manganese/palette-kit-client": "^5.0.0",
|
|
36
36
|
"@manganese/palette-kit-core": "^5.0.0",
|
|
37
|
-
"helpers-for-homebridge": "^6.0.
|
|
37
|
+
"helpers-for-homebridge": "^6.0.2",
|
|
38
38
|
"lodash": "^4.17.21",
|
|
39
39
|
"openrgb-sdk": "^0.6.0",
|
|
40
40
|
"rwlock": "^5.0.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@manganese/prettier-configuration": "^1.0.5",
|
|
47
47
|
"@types/node": "^24.11.0",
|
|
48
48
|
"@types/rwlock": "^5.0.3",
|
|
49
|
-
"homebridge": "^
|
|
49
|
+
"homebridge": "^2.0.0",
|
|
50
50
|
"prettier": "^3.1.1",
|
|
51
51
|
"typescript": "^5.9.3"
|
|
52
52
|
}
|
package/src/Device.ts
CHANGED
|
@@ -45,7 +45,11 @@ export class Device implements Controller {
|
|
|
45
45
|
this.context.log.info(
|
|
46
46
|
`Initialized virtual device <${this.configuration.name}>`
|
|
47
47
|
);
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.context.openRgbClient.once('connect', async () => {
|
|
49
53
|
const openRgbDevices =
|
|
50
54
|
await (this.context.openRgbClient.getAllControllerData() as unknown as Promise<
|
|
51
55
|
OpenRGBDevice[]
|
|
@@ -68,7 +72,7 @@ export class Device implements Controller {
|
|
|
68
72
|
`Resolved device <${this.name}> to OpenRGB controller ID [${this.openRgbDeviceId}] with size ${this.size}`
|
|
69
73
|
);
|
|
70
74
|
}
|
|
71
|
-
}
|
|
75
|
+
});
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
private async withWriteLock(callback: () => Promise<void>) {
|
|
@@ -79,6 +83,13 @@ export class Device implements Controller {
|
|
|
79
83
|
|
|
80
84
|
return;
|
|
81
85
|
}
|
|
86
|
+
if (!this.virtual && !this.context.openRgbClient.isConnected) {
|
|
87
|
+
this.context.log.warn(
|
|
88
|
+
`Ignoring write lock request for device <${this.name}> because OpenRGB client is not connected`
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
82
93
|
|
|
83
94
|
return this.lock.writeLock(async (release) => {
|
|
84
95
|
try {
|
package/src/Zone.ts
CHANGED
|
@@ -27,37 +27,6 @@ export class Zone extends EffectKitZone {
|
|
|
27
27
|
public async initialize() {
|
|
28
28
|
await super.initialize();
|
|
29
29
|
|
|
30
|
-
if (this.context.persistence) {
|
|
31
|
-
const active = await this.context.persistence.getZoneActive(this.id);
|
|
32
|
-
const brightness = await this.context.persistence.getZoneBrightness(
|
|
33
|
-
this.id
|
|
34
|
-
);
|
|
35
|
-
const effectId = await this.context.persistence.getZoneEffectId(this.id);
|
|
36
|
-
|
|
37
|
-
if (effectId) {
|
|
38
|
-
const effect = this.getEffect<Effect<any>>(effectId);
|
|
39
|
-
|
|
40
|
-
this.context.log.debug(
|
|
41
|
-
`Restoring persisted zone ${logAccessoryName(
|
|
42
|
-
this.name
|
|
43
|
-
)} effect ID = [${effect.name}]`
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
await this.setEffectId(effectId);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.context.log.debug(
|
|
50
|
-
`Restoring persisted zone ${logAccessoryName(
|
|
51
|
-
this.name
|
|
52
|
-
)} active = ${logBoolean(active)}, brightness = ${logPercent(
|
|
53
|
-
brightness
|
|
54
|
-
)}`
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
await this.setBrightness(brightness);
|
|
58
|
-
await this.setActive(active);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
30
|
this.on('updateActive', async (active: boolean) => {
|
|
62
31
|
await this.context.persistence.setZoneActive(this.id, active);
|
|
63
32
|
});
|
|
@@ -71,6 +40,39 @@ export class Zone extends EffectKitZone {
|
|
|
71
40
|
await this.context.persistence.setZoneEffectId(this.id, effectId);
|
|
72
41
|
}
|
|
73
42
|
});
|
|
43
|
+
|
|
44
|
+
this.context.openRgbClient.once('connect', async () => {
|
|
45
|
+
if (this.context.persistence) {
|
|
46
|
+
const active = await this.context.persistence.getZoneActive(this.id);
|
|
47
|
+
const brightness = await this.context.persistence.getZoneBrightness(
|
|
48
|
+
this.id
|
|
49
|
+
);
|
|
50
|
+
const effectId = await this.context.persistence.getZoneEffectId(this.id);
|
|
51
|
+
|
|
52
|
+
if (effectId) {
|
|
53
|
+
const effect = this.getEffect<Effect<any>>(effectId);
|
|
54
|
+
|
|
55
|
+
this.context.log.debug(
|
|
56
|
+
`Restoring persisted zone ${logAccessoryName(
|
|
57
|
+
this.name
|
|
58
|
+
)} effect ID = [${effect.name}]`
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
await this.setEffectId(effectId);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
this.context.log.debug(
|
|
65
|
+
`Restoring persisted zone ${logAccessoryName(
|
|
66
|
+
this.name
|
|
67
|
+
)} active = ${logBoolean(active)}, brightness = ${logPercent(
|
|
68
|
+
brightness
|
|
69
|
+
)}`
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
await this.setBrightness(brightness);
|
|
73
|
+
await this.setActive(active);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
// Devices
|
package/src/platformFactory.ts
CHANGED
|
@@ -68,8 +68,23 @@ export const createPlatform = (homebridge: API) => {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
async connectOpenRgbClient() {
|
|
72
|
+
while (!this.context.openRgbClient.isConnected) {
|
|
73
|
+
try {
|
|
74
|
+
await this.context.openRgbClient.connect();
|
|
75
|
+
} catch (error) {
|
|
76
|
+
this.context.log.warn(
|
|
77
|
+
`Failed to connect to OpenRGB server at ${this.configuration.openRgbHost}:${this.configuration.openRgbPort}. Retrying in 5 seconds...`
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
71
85
|
public async accessories(callback) {
|
|
72
|
-
|
|
86
|
+
this.connectOpenRgbClient();
|
|
87
|
+
|
|
73
88
|
await this.context.paletteClient.connect();
|
|
74
89
|
await Promise.all(
|
|
75
90
|
Array.from(this.zones.values()).map(async (zone) => {
|
|
@@ -2,6 +2,5 @@ import { ZoneConfiguration as EffectKitZoneConfiguration } from '@manganese/effe
|
|
|
2
2
|
import { DeviceConfiguration } from './DeviceConfiguration';
|
|
3
3
|
|
|
4
4
|
export interface ZoneConfiguration extends EffectKitZoneConfiguration {
|
|
5
|
-
trueOff?: boolean;
|
|
6
5
|
devices: DeviceConfiguration[];
|
|
7
6
|
}
|