iobroker.yamaha 2.3.0 → 2.3.2
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/README.md +8 -21
- package/admin/i18n/de.json +21 -1
- package/admin/i18n/en.json +21 -1
- package/admin/i18n/es.json +21 -1
- package/admin/i18n/fr.json +21 -1
- package/admin/i18n/it.json +21 -1
- package/admin/i18n/nl.json +21 -1
- package/admin/i18n/pl.json +21 -1
- package/admin/i18n/pt.json +21 -1
- package/admin/i18n/ru.json +21 -1
- package/admin/i18n/uk.json +21 -1
- package/admin/i18n/zh-cn.json +21 -1
- package/build/lib/catalog/types.js.map +2 -2
- package/build/lib/xml/catalog.js +60 -11
- package/build/lib/xml/catalog.js.map +2 -2
- package/build/lib/xml/device-controller.js +20 -2
- package/build/lib/xml/device-controller.js.map +2 -2
- package/build/lib/yxc/catalog.js +196 -26
- package/build/lib/yxc/catalog.js.map +2 -2
- package/build/lib/yxc/command-mapper.js +56 -14
- package/build/lib/yxc/command-mapper.js.map +2 -2
- package/build/lib/yxc/object-mapper.js +69 -8
- package/build/lib/yxc/object-mapper.js.map +2 -2
- package/io-package.json +27 -27
- package/package.json +4 -4
package/build/lib/yxc/catalog.js
CHANGED
|
@@ -59,7 +59,14 @@ const YXC_AMP_CATALOG = [
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
state: "soundProgram",
|
|
62
|
-
common: {
|
|
62
|
+
common: {
|
|
63
|
+
nameKey: "soundProgram",
|
|
64
|
+
descKey: "descSoundProgram",
|
|
65
|
+
type: "string",
|
|
66
|
+
role: "state",
|
|
67
|
+
read: true,
|
|
68
|
+
write: true
|
|
69
|
+
},
|
|
63
70
|
create: { kind: "func", func: "sound_program" },
|
|
64
71
|
read: { field: "sound_program" },
|
|
65
72
|
fromStatus: str,
|
|
@@ -67,7 +74,7 @@ const YXC_AMP_CATALOG = [
|
|
|
67
74
|
},
|
|
68
75
|
{
|
|
69
76
|
state: "sound.enhancer",
|
|
70
|
-
common: { nameKey: "enhancer", type: "boolean", role: "switch", read: true, write: true },
|
|
77
|
+
common: { nameKey: "enhancer", descKey: "descEnhancer", type: "boolean", role: "switch", read: true, write: true },
|
|
71
78
|
create: { kind: "func", func: "enhancer" },
|
|
72
79
|
read: { field: "enhancer" },
|
|
73
80
|
fromStatus: bool,
|
|
@@ -75,7 +82,14 @@ const YXC_AMP_CATALOG = [
|
|
|
75
82
|
},
|
|
76
83
|
{
|
|
77
84
|
state: "sound.pureDirect",
|
|
78
|
-
common: {
|
|
85
|
+
common: {
|
|
86
|
+
nameKey: "pureDirect",
|
|
87
|
+
descKey: "descPureDirect",
|
|
88
|
+
type: "boolean",
|
|
89
|
+
role: "switch",
|
|
90
|
+
read: true,
|
|
91
|
+
write: true
|
|
92
|
+
},
|
|
79
93
|
create: { kind: "func", func: "pure_direct" },
|
|
80
94
|
read: { field: "pure_direct" },
|
|
81
95
|
fromStatus: bool,
|
|
@@ -83,7 +97,15 @@ const YXC_AMP_CATALOG = [
|
|
|
83
97
|
},
|
|
84
98
|
{
|
|
85
99
|
state: "subwooferVolume",
|
|
86
|
-
common: {
|
|
100
|
+
common: {
|
|
101
|
+
nameKey: "subwooferTrim",
|
|
102
|
+
descKey: "descSubwooferTrim",
|
|
103
|
+
type: "number",
|
|
104
|
+
unit: "dB",
|
|
105
|
+
role: "level",
|
|
106
|
+
read: true,
|
|
107
|
+
write: true
|
|
108
|
+
},
|
|
87
109
|
create: { kind: "func", func: "subwoofer_volume" },
|
|
88
110
|
read: { field: "subwoofer_volume" },
|
|
89
111
|
fromStatus: num,
|
|
@@ -99,7 +121,14 @@ const YXC_AMP_CATALOG = [
|
|
|
99
121
|
},
|
|
100
122
|
{
|
|
101
123
|
state: "sound.toneMode",
|
|
102
|
-
common: {
|
|
124
|
+
common: {
|
|
125
|
+
nameKey: "toneControlMode",
|
|
126
|
+
descKey: "descToneControlMode",
|
|
127
|
+
type: "string",
|
|
128
|
+
role: "state",
|
|
129
|
+
read: true,
|
|
130
|
+
write: false
|
|
131
|
+
},
|
|
103
132
|
create: { kind: "func", func: "tone_control" },
|
|
104
133
|
read: { path: ["tone_control", "mode"] },
|
|
105
134
|
fromStatus: str
|
|
@@ -122,70 +151,134 @@ const YXC_AMP_CATALOG = [
|
|
|
122
151
|
},
|
|
123
152
|
{
|
|
124
153
|
state: "sound.dialogueLevel",
|
|
125
|
-
common: {
|
|
154
|
+
common: {
|
|
155
|
+
nameKey: "dialogueLevel",
|
|
156
|
+
descKey: "descDialogueLevel",
|
|
157
|
+
type: "number",
|
|
158
|
+
role: "value",
|
|
159
|
+
read: true,
|
|
160
|
+
write: false
|
|
161
|
+
},
|
|
126
162
|
create: { kind: "func", func: "dialogue_level" },
|
|
127
163
|
read: { field: "dialogue_level" },
|
|
128
164
|
fromStatus: num
|
|
129
165
|
},
|
|
130
166
|
{
|
|
131
167
|
state: "actualVolume",
|
|
132
|
-
common: {
|
|
168
|
+
common: {
|
|
169
|
+
nameKey: "volumeDB",
|
|
170
|
+
descKey: "descVolumeDB",
|
|
171
|
+
type: "number",
|
|
172
|
+
unit: "dB",
|
|
173
|
+
role: "value",
|
|
174
|
+
read: true,
|
|
175
|
+
write: false
|
|
176
|
+
},
|
|
133
177
|
create: { kind: "func", func: "actual_volume" },
|
|
134
178
|
read: { path: ["actual_volume", "value"] },
|
|
135
179
|
fromStatus: num
|
|
136
180
|
},
|
|
137
181
|
{
|
|
138
182
|
state: "actualVolumeMode",
|
|
139
|
-
common: {
|
|
183
|
+
common: {
|
|
184
|
+
nameKey: "volumeDisplayMode",
|
|
185
|
+
descKey: "descVolumeDisplayMode",
|
|
186
|
+
type: "string",
|
|
187
|
+
role: "state",
|
|
188
|
+
read: true,
|
|
189
|
+
write: false
|
|
190
|
+
},
|
|
140
191
|
create: { kind: "func", func: "actual_volume" },
|
|
141
192
|
read: { path: ["actual_volume", "mode"] },
|
|
142
193
|
fromStatus: str
|
|
143
194
|
},
|
|
144
195
|
{
|
|
145
196
|
state: "sound.contentsDisplay",
|
|
146
|
-
common: {
|
|
197
|
+
common: {
|
|
198
|
+
nameKey: "contentsDisplay",
|
|
199
|
+
descKey: "descContentsDisplay",
|
|
200
|
+
type: "boolean",
|
|
201
|
+
role: "indicator",
|
|
202
|
+
read: true,
|
|
203
|
+
write: false
|
|
204
|
+
},
|
|
147
205
|
create: { kind: "func", func: "contents_display" },
|
|
148
206
|
read: { field: "contents_display" },
|
|
149
207
|
fromStatus: bool
|
|
150
208
|
},
|
|
151
209
|
{
|
|
152
210
|
state: "sound.surroundDecoder",
|
|
153
|
-
common: {
|
|
211
|
+
common: {
|
|
212
|
+
nameKey: "surroundDecoder",
|
|
213
|
+
descKey: "descSurroundDecoder",
|
|
214
|
+
type: "string",
|
|
215
|
+
role: "text",
|
|
216
|
+
read: true,
|
|
217
|
+
write: false
|
|
218
|
+
},
|
|
154
219
|
create: { kind: "func", func: "surr_decoder_type" },
|
|
155
220
|
read: { field: "surr_decoder_type" },
|
|
156
221
|
fromStatus: str
|
|
157
222
|
},
|
|
158
223
|
{
|
|
159
224
|
state: "sound.audioSelect",
|
|
160
|
-
common: {
|
|
225
|
+
common: {
|
|
226
|
+
nameKey: "audioSelect",
|
|
227
|
+
descKey: "descAudioSelect",
|
|
228
|
+
type: "string",
|
|
229
|
+
role: "text",
|
|
230
|
+
read: true,
|
|
231
|
+
write: false
|
|
232
|
+
},
|
|
161
233
|
create: { kind: "func", func: "audio_select" },
|
|
162
234
|
read: { field: "audio_select" },
|
|
163
235
|
fromStatus: str
|
|
164
236
|
},
|
|
165
237
|
{
|
|
166
238
|
state: "sound.linkControl",
|
|
167
|
-
common: {
|
|
239
|
+
common: {
|
|
240
|
+
nameKey: "linkControl",
|
|
241
|
+
descKey: "descLinkControl",
|
|
242
|
+
type: "string",
|
|
243
|
+
role: "text",
|
|
244
|
+
read: true,
|
|
245
|
+
write: false
|
|
246
|
+
},
|
|
168
247
|
create: { kind: "func", func: "link_control" },
|
|
169
248
|
read: { field: "link_control" },
|
|
170
249
|
fromStatus: str
|
|
171
250
|
},
|
|
172
251
|
{
|
|
173
252
|
state: "sound.linkAudioDelay",
|
|
174
|
-
common: {
|
|
253
|
+
common: {
|
|
254
|
+
nameKey: "linkAudioDelay",
|
|
255
|
+
descKey: "descLinkAudioDelay",
|
|
256
|
+
type: "string",
|
|
257
|
+
role: "text",
|
|
258
|
+
read: true,
|
|
259
|
+
write: false
|
|
260
|
+
},
|
|
175
261
|
create: { kind: "func", func: "link_audio_delay" },
|
|
176
262
|
read: { field: "link_audio_delay" },
|
|
177
263
|
fromStatus: str
|
|
178
264
|
},
|
|
179
265
|
{
|
|
180
266
|
state: "sound.linkAudioQuality",
|
|
181
|
-
common: {
|
|
267
|
+
common: {
|
|
268
|
+
nameKey: "linkAudioQuality",
|
|
269
|
+
descKey: "descLinkAudioQuality",
|
|
270
|
+
type: "string",
|
|
271
|
+
role: "text",
|
|
272
|
+
read: true,
|
|
273
|
+
write: false
|
|
274
|
+
},
|
|
182
275
|
create: { kind: "func", func: "link_audio_quality" },
|
|
183
276
|
read: { field: "link_audio_quality" },
|
|
184
277
|
fromStatus: str
|
|
185
278
|
},
|
|
186
279
|
{
|
|
187
280
|
state: "sound.direct",
|
|
188
|
-
common: { nameKey: "direct", type: "boolean", role: "switch", read: true, write: true },
|
|
281
|
+
common: { nameKey: "direct", descKey: "descDirect", type: "boolean", role: "switch", read: true, write: true },
|
|
189
282
|
create: { kind: "func", func: "direct" },
|
|
190
283
|
read: { field: "direct" },
|
|
191
284
|
fromStatus: bool,
|
|
@@ -193,7 +286,14 @@ const YXC_AMP_CATALOG = [
|
|
|
193
286
|
},
|
|
194
287
|
{
|
|
195
288
|
state: "sound.clearVoice",
|
|
196
|
-
common: {
|
|
289
|
+
common: {
|
|
290
|
+
nameKey: "clearVoice",
|
|
291
|
+
descKey: "descClearVoice",
|
|
292
|
+
type: "boolean",
|
|
293
|
+
role: "switch",
|
|
294
|
+
read: true,
|
|
295
|
+
write: true
|
|
296
|
+
},
|
|
197
297
|
create: { kind: "func", func: "clear_voice" },
|
|
198
298
|
read: { field: "clear_voice" },
|
|
199
299
|
fromStatus: bool,
|
|
@@ -201,7 +301,14 @@ const YXC_AMP_CATALOG = [
|
|
|
201
301
|
},
|
|
202
302
|
{
|
|
203
303
|
state: "sound.bassExtension",
|
|
204
|
-
common: {
|
|
304
|
+
common: {
|
|
305
|
+
nameKey: "bassExtension",
|
|
306
|
+
descKey: "descBassExtension",
|
|
307
|
+
type: "boolean",
|
|
308
|
+
role: "switch",
|
|
309
|
+
read: true,
|
|
310
|
+
write: true
|
|
311
|
+
},
|
|
205
312
|
create: { kind: "func", func: "bass_extension" },
|
|
206
313
|
read: { field: "bass_extension" },
|
|
207
314
|
fromStatus: bool,
|
|
@@ -217,21 +324,42 @@ const YXC_AMP_CATALOG = [
|
|
|
217
324
|
},
|
|
218
325
|
{
|
|
219
326
|
state: "sound.adaptiveDrc",
|
|
220
|
-
common: {
|
|
327
|
+
common: {
|
|
328
|
+
nameKey: "adaptiveDRC",
|
|
329
|
+
descKey: "descAdaptiveDRC",
|
|
330
|
+
type: "boolean",
|
|
331
|
+
role: "indicator",
|
|
332
|
+
read: true,
|
|
333
|
+
write: false
|
|
334
|
+
},
|
|
221
335
|
create: { kind: "func", func: "adaptive_drc" },
|
|
222
336
|
read: { field: "adaptive_drc" },
|
|
223
337
|
fromStatus: bool
|
|
224
338
|
},
|
|
225
339
|
{
|
|
226
340
|
state: "sound.adaptiveDspLevel",
|
|
227
|
-
common: {
|
|
341
|
+
common: {
|
|
342
|
+
nameKey: "adaptiveDSPLevel",
|
|
343
|
+
descKey: "descAdaptiveDSPLevel",
|
|
344
|
+
type: "boolean",
|
|
345
|
+
role: "indicator",
|
|
346
|
+
read: true,
|
|
347
|
+
write: false
|
|
348
|
+
},
|
|
228
349
|
create: { kind: "func", func: "adaptive_dsp_level" },
|
|
229
350
|
read: { field: "adaptive_dsp_level" },
|
|
230
351
|
fromStatus: bool
|
|
231
352
|
},
|
|
232
353
|
{
|
|
233
354
|
state: "sound.extraBass",
|
|
234
|
-
common: {
|
|
355
|
+
common: {
|
|
356
|
+
nameKey: "extraBass",
|
|
357
|
+
descKey: "descExtraBass",
|
|
358
|
+
type: "boolean",
|
|
359
|
+
role: "indicator",
|
|
360
|
+
read: true,
|
|
361
|
+
write: false
|
|
362
|
+
},
|
|
235
363
|
create: { kind: "func", func: "extra_bass" },
|
|
236
364
|
read: { field: "extra_bass" },
|
|
237
365
|
fromStatus: bool
|
|
@@ -245,7 +373,14 @@ const YXC_AMP_CATALOG = [
|
|
|
245
373
|
},
|
|
246
374
|
{
|
|
247
375
|
state: "sound.surround3d",
|
|
248
|
-
common: {
|
|
376
|
+
common: {
|
|
377
|
+
nameKey: "surround3D",
|
|
378
|
+
descKey: "descSurround3D",
|
|
379
|
+
type: "boolean",
|
|
380
|
+
role: "indicator",
|
|
381
|
+
read: true,
|
|
382
|
+
write: false
|
|
383
|
+
},
|
|
249
384
|
create: { kind: "func", func: "surround_3d" },
|
|
250
385
|
read: { field: "surround_3d" },
|
|
251
386
|
fromStatus: bool
|
|
@@ -269,14 +404,28 @@ const YXC_AMP_CATALOG = [
|
|
|
269
404
|
},
|
|
270
405
|
{
|
|
271
406
|
state: "sound.dtsDialogueControl",
|
|
272
|
-
common: {
|
|
407
|
+
common: {
|
|
408
|
+
nameKey: "dtsDialogueControl",
|
|
409
|
+
descKey: "descDtsDialogueControl",
|
|
410
|
+
type: "number",
|
|
411
|
+
role: "value",
|
|
412
|
+
read: true,
|
|
413
|
+
write: false
|
|
414
|
+
},
|
|
273
415
|
create: { kind: "func", func: "dts_dialogue_control" },
|
|
274
416
|
read: { field: "dts_dialogue_control" },
|
|
275
417
|
fromStatus: num
|
|
276
418
|
},
|
|
277
419
|
{
|
|
278
420
|
state: "sound.equalizer.mode",
|
|
279
|
-
common: {
|
|
421
|
+
common: {
|
|
422
|
+
nameKey: "equalizerMode",
|
|
423
|
+
descKey: "descEqualizerMode",
|
|
424
|
+
type: "string",
|
|
425
|
+
role: "state",
|
|
426
|
+
read: true,
|
|
427
|
+
write: false
|
|
428
|
+
},
|
|
280
429
|
create: { kind: "func", func: "equalizer" },
|
|
281
430
|
read: { path: ["equalizer", "mode"] },
|
|
282
431
|
fromStatus: str
|
|
@@ -304,7 +453,14 @@ const YXC_AMP_CATALOG = [
|
|
|
304
453
|
},
|
|
305
454
|
{
|
|
306
455
|
state: "advanced.maxVolume",
|
|
307
|
-
common: {
|
|
456
|
+
common: {
|
|
457
|
+
nameKey: "maximumVolume",
|
|
458
|
+
descKey: "descMaximumVolume",
|
|
459
|
+
type: "number",
|
|
460
|
+
role: "value",
|
|
461
|
+
read: true,
|
|
462
|
+
write: false
|
|
463
|
+
},
|
|
308
464
|
create: { kind: "always" },
|
|
309
465
|
read: { field: "max_volume" },
|
|
310
466
|
fromStatus: num
|
|
@@ -322,14 +478,28 @@ const YXC_AMP_CATALOG = [
|
|
|
322
478
|
// distribution_enable says the zone MAY be used for Link streaming — proven on a live
|
|
323
479
|
// device reporting true while in no group (role none) — not that it streams right now.
|
|
324
480
|
state: "multiroom.group.streamingEnabled",
|
|
325
|
-
common: {
|
|
481
|
+
common: {
|
|
482
|
+
nameKey: "multiroomStreamingEnabled",
|
|
483
|
+
descKey: "descMultiroomStreamingEnabled",
|
|
484
|
+
type: "boolean",
|
|
485
|
+
role: "indicator",
|
|
486
|
+
read: true,
|
|
487
|
+
write: false
|
|
488
|
+
},
|
|
326
489
|
create: { kind: "always" },
|
|
327
490
|
read: { field: "distribution_enable" },
|
|
328
491
|
fromStatus: bool
|
|
329
492
|
},
|
|
330
493
|
{
|
|
331
494
|
state: "multiroom.partyEnable",
|
|
332
|
-
common: {
|
|
495
|
+
common: {
|
|
496
|
+
nameKey: "partyModeAllZones",
|
|
497
|
+
descKey: "descPartyModeAllZones",
|
|
498
|
+
type: "boolean",
|
|
499
|
+
role: "switch",
|
|
500
|
+
read: true,
|
|
501
|
+
write: true
|
|
502
|
+
},
|
|
333
503
|
create: { kind: "always" },
|
|
334
504
|
read: { field: "party_enable" },
|
|
335
505
|
fromStatus: bool,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/lib/yxc/catalog.ts"],
|
|
4
|
-
"sourcesContent": ["import type { ObjectDef } from \"../catalog/types\";\nimport type { I18nKey } from \"../i18n\";\nimport type { YxcClientLike } from \"./client-contract\";\n\n/**\n * The single source for YXC (MusicCast) amplifier states: one entry per unified\n * state carries BOTH its ioBroker object (`common`) AND its getStatus read + write\n * mapping \u2014 replacing the former `YXC_STATES` (object-mapper) / `YXC_STATE_MAPPINGS`\n * (command-mapper) pair that had to be kept in sync by hand. The object-mapper reads\n * `create`/`common`, the command-mapper reads `read`/`fromStatus`/`write`.\n *\n * Value types are verified against the bundled device captures\n * (`yamaha-yxc-nodejs/lib/data/*.json`): e.g. `adaptive_drc`/`extra_bass` are real\n * booleans, `sleep` is minutes, `link_control`/`surr_decoder_type` are strings.\n */\nexport interface YxcAmpEntry {\n /** Unified state id, relative to the zone prefix. */\n state: string;\n /**\n * ioBroker common for the object, carrying its name as a translation KEY: this catalog is a\n * module-level constant, so the object-mapper resolves the key when it creates the object.\n */\n common: Omit<ObjectDef[\"common\"], \"name\"> & { nameKey: I18nKey; descKey?: I18nKey };\n /**\n * When the state is created: `func` = only if the zone's func_list advertises that\n * feature key; `always` = a core status field created for every active zone;\n * `input` = only if the zone offers inputs (from input_list, not func_list).\n */\n create: { kind: \"func\"; func: string } | { kind: \"always\" } | { kind: \"input\" };\n /** Where to read the value in a getStatus response: a flat field or a nested path. */\n read: { field: string } | { path: string[] };\n /** Convert a raw getStatus value into the typed state value. */\n fromStatus: (value: unknown) => boolean | number | string;\n /**\n * Write mapping \u2014 absent means the state is read-only (no library setter). The entry\n * calls the client DIRECTLY (value coercion inline), so there is no method-name string\n * to keep in sync with a dispatch switch and no \"unknown command\" runtime path.\n */\n write?: { apply: (client: YxcClientLike, value: unknown, zone: string) => Promise<unknown> };\n}\n\nconst bool = (value: unknown): boolean => Boolean(value);\nconst num = (value: unknown): number => Number(value);\nconst str = (value: unknown): string => String(value);\n\n/** The unified YXC amplifier catalog \u2014 object + read/write mapping in one list. */\nexport const YXC_AMP_CATALOG: YxcAmpEntry[] = [\n {\n state: \"power\",\n common: { nameKey: \"power\", type: \"boolean\", role: \"switch.power\", read: true, write: true },\n create: { kind: \"func\", func: \"power\" },\n read: { field: \"power\" },\n fromStatus: value => value === \"on\",\n write: { apply: (c, v, z) => c.power(Boolean(v), z) },\n },\n {\n state: \"volume\",\n common: { nameKey: \"volume\", type: \"number\", role: \"level.volume\", read: true, write: true },\n create: { kind: \"func\", func: \"volume\" },\n read: { field: \"volume\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setVolumeTo(Number(v), z) },\n },\n {\n state: \"mute\",\n common: { nameKey: \"mute\", type: \"boolean\", role: \"media.mute\", read: true, write: true },\n create: { kind: \"func\", func: \"mute\" },\n read: { field: \"mute\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.mute(Boolean(v), z) },\n },\n {\n state: \"input\",\n common: { nameKey: \"input\", type: \"string\", role: \"media.input\", read: true, write: true },\n create: { kind: \"input\" },\n read: { field: \"input\" },\n fromStatus: str,\n write: { apply: (c, v, z) => c.setInput(String(v), z) },\n },\n {\n state: \"soundProgram\",\n common: { nameKey: \"soundProgram\", type: \"string\", role: \"state\", read: true, write: true },\n create: { kind: \"func\", func: \"sound_program\" },\n read: { field: \"sound_program\" },\n fromStatus: str,\n write: { apply: (c, v, z) => c.setSound(String(v), z) },\n },\n {\n state: \"sound.enhancer\",\n common: { nameKey: \"enhancer\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"enhancer\" },\n read: { field: \"enhancer\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setEnhancer(Boolean(v), z) },\n },\n {\n state: \"sound.pureDirect\",\n common: { nameKey: \"pureDirect\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"pure_direct\" },\n read: { field: \"pure_direct\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setPureDirect(Boolean(v), z) },\n },\n {\n state: \"subwooferVolume\",\n common: { nameKey: \"subwooferTrim\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"subwoofer_volume\" },\n read: { field: \"subwoofer_volume\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setSubwooferVolumeTo(Number(v), z) },\n },\n {\n state: \"sound.bass\",\n common: { nameKey: \"bass\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"bass\"] },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setBassTo(Number(v), z) },\n },\n {\n state: \"sound.toneMode\",\n common: { nameKey: \"toneControlMode\", type: \"string\", role: \"state\", read: true, write: false },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.treble\",\n common: { nameKey: \"treble\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"treble\"] },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setTrebleTo(Number(v), z) },\n },\n {\n state: \"sleep\",\n common: { nameKey: \"sleepTimer\", type: \"number\", unit: \"min\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"sleep\" },\n read: { field: \"sleep\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.sleep(Number(v), z) },\n },\n {\n state: \"sound.dialogueLevel\",\n common: { nameKey: \"dialogueLevel\", type: \"number\", role: \"value\", read: true, write: false },\n create: { kind: \"func\", func: \"dialogue_level\" },\n read: { field: \"dialogue_level\" },\n fromStatus: num,\n },\n {\n state: \"actualVolume\",\n common: { nameKey: \"volumeDB\", type: \"number\", unit: \"dB\", role: \"value\", read: true, write: false },\n create: { kind: \"func\", func: \"actual_volume\" },\n read: { path: [\"actual_volume\", \"value\"] },\n fromStatus: num,\n },\n {\n state: \"actualVolumeMode\",\n common: { nameKey: \"volumeDisplayMode\", type: \"string\", role: \"state\", read: true, write: false },\n create: { kind: \"func\", func: \"actual_volume\" },\n read: { path: [\"actual_volume\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.contentsDisplay\",\n common: { nameKey: \"contentsDisplay\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"contents_display\" },\n read: { field: \"contents_display\" },\n fromStatus: bool,\n },\n {\n state: \"sound.surroundDecoder\",\n common: { nameKey: \"surroundDecoder\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"func\", func: \"surr_decoder_type\" },\n read: { field: \"surr_decoder_type\" },\n fromStatus: str,\n },\n {\n state: \"sound.audioSelect\",\n common: { nameKey: \"audioSelect\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"func\", func: \"audio_select\" },\n read: { field: \"audio_select\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkControl\",\n common: { nameKey: \"linkControl\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"func\", func: \"link_control\" },\n read: { field: \"link_control\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkAudioDelay\",\n common: { nameKey: \"linkAudioDelay\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"func\", func: \"link_audio_delay\" },\n read: { field: \"link_audio_delay\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkAudioQuality\",\n common: { nameKey: \"linkAudioQuality\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"func\", func: \"link_audio_quality\" },\n read: { field: \"link_audio_quality\" },\n fromStatus: str,\n },\n {\n state: \"sound.direct\",\n common: { nameKey: \"direct\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"direct\" },\n read: { field: \"direct\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setDirect(Boolean(v), z) },\n },\n {\n state: \"sound.clearVoice\",\n common: { nameKey: \"clearVoice\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"clear_voice\" },\n read: { field: \"clear_voice\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setClearVoice(Boolean(v), z) },\n },\n {\n state: \"sound.bassExtension\",\n common: { nameKey: \"bassExtension\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"bass_extension\" },\n read: { field: \"bass_extension\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setBassExtension(Boolean(v), z) },\n },\n {\n state: \"sound.balance\",\n common: { nameKey: \"balance\", type: \"number\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"balance\" },\n read: { field: \"balance\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setBalance(Number(v), z) },\n },\n {\n state: \"sound.adaptiveDrc\",\n common: { nameKey: \"adaptiveDRC\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"adaptive_drc\" },\n read: { field: \"adaptive_drc\" },\n fromStatus: bool,\n },\n {\n state: \"sound.adaptiveDspLevel\",\n common: { nameKey: \"adaptiveDSPLevel\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"adaptive_dsp_level\" },\n read: { field: \"adaptive_dsp_level\" },\n fromStatus: bool,\n },\n {\n state: \"sound.extraBass\",\n common: { nameKey: \"extraBass\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"extra_bass\" },\n read: { field: \"extra_bass\" },\n fromStatus: bool,\n },\n {\n state: \"sound.monaural\",\n common: { nameKey: \"monaural\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"mono\" },\n read: { field: \"mono\" },\n fromStatus: bool,\n },\n {\n state: \"sound.surround3d\",\n common: { nameKey: \"surround3D\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"surround_3d\" },\n read: { field: \"surround_3d\" },\n fromStatus: bool,\n },\n {\n state: \"sound.dialogueLift\",\n common: {\n nameKey: \"dialogueLift\",\n descKey: \"descDialogueLift\",\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n min: 0,\n max: 5,\n step: 1,\n },\n create: { kind: \"func\", func: \"dialogue_lift\" },\n read: { field: \"dialogue_lift\" },\n fromStatus: num,\n },\n {\n state: \"sound.dtsDialogueControl\",\n common: { nameKey: \"dtsDialogueControl\", type: \"number\", role: \"value\", read: true, write: false },\n create: { kind: \"func\", func: \"dts_dialogue_control\" },\n read: { field: \"dts_dialogue_control\" },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.mode\",\n common: { nameKey: \"equalizerMode\", type: \"string\", role: \"state\", read: true, write: false },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.equalizer.low\",\n common: { nameKey: \"equalizerLow\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"low\"] },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.mid\",\n common: { nameKey: \"equalizerMid\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"mid\"] },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.high\",\n common: { nameKey: \"equalizerHigh\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"high\"] },\n fromStatus: num,\n },\n {\n state: \"advanced.maxVolume\",\n common: { nameKey: \"maximumVolume\", type: \"number\", role: \"value\", read: true, write: false },\n create: { kind: \"always\" },\n read: { field: \"max_volume\" },\n fromStatus: num,\n },\n {\n state: \"inputText\",\n common: { nameKey: \"inputNameDisplay\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"always\" },\n read: { field: \"input_text\" },\n fromStatus: str,\n },\n // The two device-global entries: their id starts with \"multiroom.\" (no zone prefix ever\n // applies), so the mapper and the status parser emit them for the main zone only.\n {\n // distribution_enable says the zone MAY be used for Link streaming \u2014 proven on a live\n // device reporting true while in no group (role none) \u2014 not that it streams right now.\n state: \"multiroom.group.streamingEnabled\",\n common: { nameKey: \"multiroomStreamingEnabled\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"always\" },\n read: { field: \"distribution_enable\" },\n fromStatus: bool,\n },\n {\n state: \"multiroom.partyEnable\",\n common: { nameKey: \"partyModeAllZones\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"always\" },\n read: { field: \"party_enable\" },\n fromStatus: bool,\n write: { apply: (c, v) => c.setPartyMode(Boolean(v)) },\n },\n];\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import type { ObjectDef } from \"../catalog/types\";\nimport type { I18nKey } from \"../i18n\";\nimport type { YxcClientLike } from \"./client-contract\";\n\n/**\n * The single source for YXC (MusicCast) amplifier states: one entry per unified\n * state carries BOTH its ioBroker object (`common`) AND its getStatus read + write\n * mapping \u2014 replacing the former `YXC_STATES` (object-mapper) / `YXC_STATE_MAPPINGS`\n * (command-mapper) pair that had to be kept in sync by hand. The object-mapper reads\n * `create`/`common`, the command-mapper reads `read`/`fromStatus`/`write`.\n *\n * Value types are verified against the bundled device captures\n * (`yamaha-yxc-nodejs/lib/data/*.json`): e.g. `adaptive_drc`/`extra_bass` are real\n * booleans, `sleep` is minutes, `link_control`/`surr_decoder_type` are strings.\n */\nexport interface YxcAmpEntry {\n /** Unified state id, relative to the zone prefix. */\n state: string;\n /**\n * ioBroker common for the object, carrying its name as a translation KEY: this catalog is a\n * module-level constant, so the object-mapper resolves the key when it creates the object.\n */\n common: Omit<ObjectDef[\"common\"], \"name\"> & { nameKey: I18nKey; descKey?: I18nKey };\n /**\n * When the state is created: `func` = only if the zone's func_list advertises that\n * feature key; `always` = a core status field created for every active zone;\n * `input` = only if the zone offers inputs (from input_list, not func_list).\n */\n create: { kind: \"func\"; func: string } | { kind: \"always\" } | { kind: \"input\" };\n /** Where to read the value in a getStatus response: a flat field or a nested path. */\n read: { field: string } | { path: string[] };\n /** Convert a raw getStatus value into the typed state value. */\n fromStatus: (value: unknown) => boolean | number | string;\n /**\n * Write mapping \u2014 absent means the state is read-only (no library setter). The entry\n * calls the client DIRECTLY (value coercion inline), so there is no method-name string\n * to keep in sync with a dispatch switch and no \"unknown command\" runtime path.\n */\n write?: { apply: (client: YxcClientLike, value: unknown, zone: string) => Promise<unknown> };\n}\n\nconst bool = (value: unknown): boolean => Boolean(value);\nconst num = (value: unknown): number => Number(value);\nconst str = (value: unknown): string => String(value);\n\n/** The unified YXC amplifier catalog \u2014 object + read/write mapping in one list. */\nexport const YXC_AMP_CATALOG: YxcAmpEntry[] = [\n {\n state: \"power\",\n common: { nameKey: \"power\", type: \"boolean\", role: \"switch.power\", read: true, write: true },\n create: { kind: \"func\", func: \"power\" },\n read: { field: \"power\" },\n fromStatus: value => value === \"on\",\n write: { apply: (c, v, z) => c.power(Boolean(v), z) },\n },\n {\n state: \"volume\",\n common: { nameKey: \"volume\", type: \"number\", role: \"level.volume\", read: true, write: true },\n create: { kind: \"func\", func: \"volume\" },\n read: { field: \"volume\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setVolumeTo(Number(v), z) },\n },\n {\n state: \"mute\",\n common: { nameKey: \"mute\", type: \"boolean\", role: \"media.mute\", read: true, write: true },\n create: { kind: \"func\", func: \"mute\" },\n read: { field: \"mute\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.mute(Boolean(v), z) },\n },\n {\n state: \"input\",\n common: { nameKey: \"input\", type: \"string\", role: \"media.input\", read: true, write: true },\n create: { kind: \"input\" },\n read: { field: \"input\" },\n fromStatus: str,\n write: { apply: (c, v, z) => c.setInput(String(v), z) },\n },\n {\n state: \"soundProgram\",\n common: {\n nameKey: \"soundProgram\",\n descKey: \"descSoundProgram\",\n type: \"string\",\n role: \"state\",\n read: true,\n write: true,\n },\n create: { kind: \"func\", func: \"sound_program\" },\n read: { field: \"sound_program\" },\n fromStatus: str,\n write: { apply: (c, v, z) => c.setSound(String(v), z) },\n },\n {\n state: \"sound.enhancer\",\n common: { nameKey: \"enhancer\", descKey: \"descEnhancer\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"enhancer\" },\n read: { field: \"enhancer\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setEnhancer(Boolean(v), z) },\n },\n {\n state: \"sound.pureDirect\",\n common: {\n nameKey: \"pureDirect\",\n descKey: \"descPureDirect\",\n type: \"boolean\",\n role: \"switch\",\n read: true,\n write: true,\n },\n create: { kind: \"func\", func: \"pure_direct\" },\n read: { field: \"pure_direct\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setPureDirect(Boolean(v), z) },\n },\n {\n state: \"subwooferVolume\",\n common: {\n nameKey: \"subwooferTrim\",\n descKey: \"descSubwooferTrim\",\n type: \"number\",\n unit: \"dB\",\n role: \"level\",\n read: true,\n write: true,\n },\n create: { kind: \"func\", func: \"subwoofer_volume\" },\n read: { field: \"subwoofer_volume\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setSubwooferVolumeTo(Number(v), z) },\n },\n {\n state: \"sound.bass\",\n common: { nameKey: \"bass\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"bass\"] },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setBassTo(Number(v), z) },\n },\n {\n state: \"sound.toneMode\",\n common: {\n nameKey: \"toneControlMode\",\n descKey: \"descToneControlMode\",\n type: \"string\",\n role: \"state\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.treble\",\n common: { nameKey: \"treble\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"tone_control\" },\n read: { path: [\"tone_control\", \"treble\"] },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setTrebleTo(Number(v), z) },\n },\n {\n state: \"sleep\",\n common: { nameKey: \"sleepTimer\", type: \"number\", unit: \"min\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"sleep\" },\n read: { field: \"sleep\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.sleep(Number(v), z) },\n },\n {\n state: \"sound.dialogueLevel\",\n common: {\n nameKey: \"dialogueLevel\",\n descKey: \"descDialogueLevel\",\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"dialogue_level\" },\n read: { field: \"dialogue_level\" },\n fromStatus: num,\n },\n {\n state: \"actualVolume\",\n common: {\n nameKey: \"volumeDB\",\n descKey: \"descVolumeDB\",\n type: \"number\",\n unit: \"dB\",\n role: \"value\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"actual_volume\" },\n read: { path: [\"actual_volume\", \"value\"] },\n fromStatus: num,\n },\n {\n state: \"actualVolumeMode\",\n common: {\n nameKey: \"volumeDisplayMode\",\n descKey: \"descVolumeDisplayMode\",\n type: \"string\",\n role: \"state\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"actual_volume\" },\n read: { path: [\"actual_volume\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.contentsDisplay\",\n common: {\n nameKey: \"contentsDisplay\",\n descKey: \"descContentsDisplay\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"contents_display\" },\n read: { field: \"contents_display\" },\n fromStatus: bool,\n },\n {\n state: \"sound.surroundDecoder\",\n common: {\n nameKey: \"surroundDecoder\",\n descKey: \"descSurroundDecoder\",\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"surr_decoder_type\" },\n read: { field: \"surr_decoder_type\" },\n fromStatus: str,\n },\n {\n state: \"sound.audioSelect\",\n common: {\n nameKey: \"audioSelect\",\n descKey: \"descAudioSelect\",\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"audio_select\" },\n read: { field: \"audio_select\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkControl\",\n common: {\n nameKey: \"linkControl\",\n descKey: \"descLinkControl\",\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"link_control\" },\n read: { field: \"link_control\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkAudioDelay\",\n common: {\n nameKey: \"linkAudioDelay\",\n descKey: \"descLinkAudioDelay\",\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"link_audio_delay\" },\n read: { field: \"link_audio_delay\" },\n fromStatus: str,\n },\n {\n state: \"sound.linkAudioQuality\",\n common: {\n nameKey: \"linkAudioQuality\",\n descKey: \"descLinkAudioQuality\",\n type: \"string\",\n role: \"text\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"link_audio_quality\" },\n read: { field: \"link_audio_quality\" },\n fromStatus: str,\n },\n {\n state: \"sound.direct\",\n common: { nameKey: \"direct\", descKey: \"descDirect\", type: \"boolean\", role: \"switch\", read: true, write: true },\n create: { kind: \"func\", func: \"direct\" },\n read: { field: \"direct\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setDirect(Boolean(v), z) },\n },\n {\n state: \"sound.clearVoice\",\n common: {\n nameKey: \"clearVoice\",\n descKey: \"descClearVoice\",\n type: \"boolean\",\n role: \"switch\",\n read: true,\n write: true,\n },\n create: { kind: \"func\", func: \"clear_voice\" },\n read: { field: \"clear_voice\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setClearVoice(Boolean(v), z) },\n },\n {\n state: \"sound.bassExtension\",\n common: {\n nameKey: \"bassExtension\",\n descKey: \"descBassExtension\",\n type: \"boolean\",\n role: \"switch\",\n read: true,\n write: true,\n },\n create: { kind: \"func\", func: \"bass_extension\" },\n read: { field: \"bass_extension\" },\n fromStatus: bool,\n write: { apply: (c, v, z) => c.setBassExtension(Boolean(v), z) },\n },\n {\n state: \"sound.balance\",\n common: { nameKey: \"balance\", type: \"number\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"balance\" },\n read: { field: \"balance\" },\n fromStatus: num,\n write: { apply: (c, v, z) => c.setBalance(Number(v), z) },\n },\n {\n state: \"sound.adaptiveDrc\",\n common: {\n nameKey: \"adaptiveDRC\",\n descKey: \"descAdaptiveDRC\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"adaptive_drc\" },\n read: { field: \"adaptive_drc\" },\n fromStatus: bool,\n },\n {\n state: \"sound.adaptiveDspLevel\",\n common: {\n nameKey: \"adaptiveDSPLevel\",\n descKey: \"descAdaptiveDSPLevel\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"adaptive_dsp_level\" },\n read: { field: \"adaptive_dsp_level\" },\n fromStatus: bool,\n },\n {\n state: \"sound.extraBass\",\n common: {\n nameKey: \"extraBass\",\n descKey: \"descExtraBass\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"extra_bass\" },\n read: { field: \"extra_bass\" },\n fromStatus: bool,\n },\n {\n state: \"sound.monaural\",\n common: { nameKey: \"monaural\", type: \"boolean\", role: \"indicator\", read: true, write: false },\n create: { kind: \"func\", func: \"mono\" },\n read: { field: \"mono\" },\n fromStatus: bool,\n },\n {\n state: \"sound.surround3d\",\n common: {\n nameKey: \"surround3D\",\n descKey: \"descSurround3D\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"surround_3d\" },\n read: { field: \"surround_3d\" },\n fromStatus: bool,\n },\n {\n state: \"sound.dialogueLift\",\n common: {\n nameKey: \"dialogueLift\",\n descKey: \"descDialogueLift\",\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n min: 0,\n max: 5,\n step: 1,\n },\n create: { kind: \"func\", func: \"dialogue_lift\" },\n read: { field: \"dialogue_lift\" },\n fromStatus: num,\n },\n {\n state: \"sound.dtsDialogueControl\",\n common: {\n nameKey: \"dtsDialogueControl\",\n descKey: \"descDtsDialogueControl\",\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"dts_dialogue_control\" },\n read: { field: \"dts_dialogue_control\" },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.mode\",\n common: {\n nameKey: \"equalizerMode\",\n descKey: \"descEqualizerMode\",\n type: \"string\",\n role: \"state\",\n read: true,\n write: false,\n },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"mode\"] },\n fromStatus: str,\n },\n {\n state: \"sound.equalizer.low\",\n common: { nameKey: \"equalizerLow\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"low\"] },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.mid\",\n common: { nameKey: \"equalizerMid\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"mid\"] },\n fromStatus: num,\n },\n {\n state: \"sound.equalizer.high\",\n common: { nameKey: \"equalizerHigh\", type: \"number\", unit: \"dB\", role: \"level\", read: true, write: true },\n create: { kind: \"func\", func: \"equalizer\" },\n read: { path: [\"equalizer\", \"high\"] },\n fromStatus: num,\n },\n {\n state: \"advanced.maxVolume\",\n common: {\n nameKey: \"maximumVolume\",\n descKey: \"descMaximumVolume\",\n type: \"number\",\n role: \"value\",\n read: true,\n write: false,\n },\n create: { kind: \"always\" },\n read: { field: \"max_volume\" },\n fromStatus: num,\n },\n {\n state: \"inputText\",\n common: { nameKey: \"inputNameDisplay\", type: \"string\", role: \"text\", read: true, write: false },\n create: { kind: \"always\" },\n read: { field: \"input_text\" },\n fromStatus: str,\n },\n // The two device-global entries: their id starts with \"multiroom.\" (no zone prefix ever\n // applies), so the mapper and the status parser emit them for the main zone only.\n {\n // distribution_enable says the zone MAY be used for Link streaming \u2014 proven on a live\n // device reporting true while in no group (role none) \u2014 not that it streams right now.\n state: \"multiroom.group.streamingEnabled\",\n common: {\n nameKey: \"multiroomStreamingEnabled\",\n descKey: \"descMultiroomStreamingEnabled\",\n type: \"boolean\",\n role: \"indicator\",\n read: true,\n write: false,\n },\n create: { kind: \"always\" },\n read: { field: \"distribution_enable\" },\n fromStatus: bool,\n },\n {\n state: \"multiroom.partyEnable\",\n common: {\n nameKey: \"partyModeAllZones\",\n descKey: \"descPartyModeAllZones\",\n type: \"boolean\",\n role: \"switch\",\n read: true,\n write: true,\n },\n create: { kind: \"always\" },\n read: { field: \"party_enable\" },\n fromStatus: bool,\n write: { apply: (c, v) => c.setPartyMode(Boolean(v)) },\n },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -241,22 +241,64 @@ const PLAYER_CLEAR = [
|
|
|
241
241
|
{ id: "player.shuffle", value: false }
|
|
242
242
|
];
|
|
243
243
|
const DAB_FIELDS = [
|
|
244
|
-
{
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
244
|
+
{
|
|
245
|
+
field: "service_label",
|
|
246
|
+
id: "tuner.dab.serviceLabel",
|
|
247
|
+
type: "string",
|
|
248
|
+
nameKey: "serviceLabel",
|
|
249
|
+
descKey: "descDabService"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
field: "ensemble_label",
|
|
253
|
+
id: "tuner.dab.ensembleLabel",
|
|
254
|
+
type: "string",
|
|
255
|
+
nameKey: "ensembleLabel",
|
|
256
|
+
descKey: "descDabEnsemble"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
field: "ch_label",
|
|
260
|
+
id: "tuner.dab.channelLabel",
|
|
261
|
+
type: "string",
|
|
262
|
+
nameKey: "channelLabel",
|
|
263
|
+
descKey: "descDabChannel"
|
|
264
|
+
},
|
|
265
|
+
{ field: "dls", id: "tuner.dab.dls", type: "string", nameKey: "dlsText", descKey: "descDabDLSText" },
|
|
266
|
+
{
|
|
267
|
+
field: "program_type",
|
|
268
|
+
id: "tuner.dab.programType",
|
|
269
|
+
type: "string",
|
|
270
|
+
nameKey: "programmeType",
|
|
271
|
+
descKey: "descDabProgramType"
|
|
272
|
+
},
|
|
249
273
|
// preset and audio_mode are NOT listed here: the active-band parse feeds the
|
|
250
274
|
// unified flat tuner.preset / tuner.audioMode states (v2.0.0).
|
|
251
|
-
{ field: "status", id: "tuner.dab.status", type: "string", nameKey: "dabStatus" },
|
|
252
|
-
{ field: "bit_rate", id: "tuner.dab.bitRate", type: "number", nameKey: "bitRate" },
|
|
253
|
-
{ field: "quality", id: "tuner.dab.quality", type: "number", nameKey: "signalQuality" },
|
|
254
|
-
{ field: "off_air", id: "tuner.dab.offAir", type: "boolean", nameKey: "offAir" },
|
|
255
|
-
{ field: "dab_plus", id: "tuner.dab.dabPlus", type: "boolean", nameKey: "dabPlus" },
|
|
256
|
-
{
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
275
|
+
{ field: "status", id: "tuner.dab.status", type: "string", nameKey: "dabStatus", descKey: "descDabStatus" },
|
|
276
|
+
{ field: "bit_rate", id: "tuner.dab.bitRate", type: "number", nameKey: "bitRate", descKey: "descBitRate" },
|
|
277
|
+
{ field: "quality", id: "tuner.dab.quality", type: "number", nameKey: "signalQuality", descKey: "descSignalQuality" },
|
|
278
|
+
{ field: "off_air", id: "tuner.dab.offAir", type: "boolean", nameKey: "offAir", descKey: "descOffAir" },
|
|
279
|
+
{ field: "dab_plus", id: "tuner.dab.dabPlus", type: "boolean", nameKey: "dabPlus", descKey: "descDabPlus" },
|
|
280
|
+
{
|
|
281
|
+
field: "category",
|
|
282
|
+
id: "tuner.dab.category",
|
|
283
|
+
type: "string",
|
|
284
|
+
nameKey: "serviceCategory",
|
|
285
|
+
descKey: "descServiceCategory"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
field: "total_station_num",
|
|
289
|
+
id: "tuner.dab.totalStations",
|
|
290
|
+
type: "number",
|
|
291
|
+
nameKey: "totalStations",
|
|
292
|
+
descKey: "descTotalStations"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
field: "initial_scan_progress",
|
|
296
|
+
id: "tuner.dab.scanProgress",
|
|
297
|
+
type: "number",
|
|
298
|
+
nameKey: "initialScanProgress",
|
|
299
|
+
descKey: "descInitialScanProgress"
|
|
300
|
+
},
|
|
301
|
+
{ field: "tune_aid", id: "tuner.dab.tuneAid", type: "number", nameKey: "tuneAidLevel", descKey: "descTuneAidLevel" }
|
|
260
302
|
];
|
|
261
303
|
function parseYxcTunerInfo(tunerInfo) {
|
|
262
304
|
if (typeof tunerInfo !== "object" || tunerInfo === null) {
|