@soundretouch/api 1.3.0 → 1.4.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.
Files changed (64) hide show
  1. package/dist/index.device.d.ts +1 -1
  2. package/dist/index.device.d.ts.map +1 -1
  3. package/dist/src/device/SoundTouchDevice.d.ts +14 -0
  4. package/dist/src/device/SoundTouchDevice.d.ts.map +1 -1
  5. package/dist/src/device/SoundTouchDevice.js +39 -107
  6. package/dist/src/device/SoundTouchDevice.js.map +1 -1
  7. package/dist/src/endpoints/bass.d.ts +9 -0
  8. package/dist/src/endpoints/bass.d.ts.map +1 -1
  9. package/dist/src/endpoints/bass.js +15 -0
  10. package/dist/src/endpoints/bass.js.map +1 -1
  11. package/dist/src/endpoints/info.d.ts +9 -0
  12. package/dist/src/endpoints/info.d.ts.map +1 -1
  13. package/dist/src/endpoints/info.js +15 -0
  14. package/dist/src/endpoints/info.js.map +1 -1
  15. package/dist/src/endpoints/nowPlaying.d.ts +9 -0
  16. package/dist/src/endpoints/nowPlaying.d.ts.map +1 -1
  17. package/dist/src/endpoints/nowPlaying.js +20 -2
  18. package/dist/src/endpoints/nowPlaying.js.map +1 -1
  19. package/dist/src/endpoints/presets.d.ts +18 -1
  20. package/dist/src/endpoints/presets.d.ts.map +1 -1
  21. package/dist/src/endpoints/presets.js +42 -2
  22. package/dist/src/endpoints/presets.js.map +1 -1
  23. package/dist/src/endpoints/sources.d.ts +9 -0
  24. package/dist/src/endpoints/sources.d.ts.map +1 -1
  25. package/dist/src/endpoints/sources.js +19 -2
  26. package/dist/src/endpoints/sources.js.map +1 -1
  27. package/dist/src/endpoints/trackInfo.d.ts.map +1 -1
  28. package/dist/src/endpoints/trackInfo.js +4 -2
  29. package/dist/src/endpoints/trackInfo.js.map +1 -1
  30. package/dist/src/endpoints/updates.d.ts +59 -0
  31. package/dist/src/endpoints/updates.d.ts.map +1 -0
  32. package/dist/src/endpoints/updates.js +107 -0
  33. package/dist/src/endpoints/updates.js.map +1 -0
  34. package/dist/src/endpoints/userTrackControl.d.ts +16 -0
  35. package/dist/src/endpoints/userTrackControl.d.ts.map +1 -0
  36. package/dist/src/endpoints/userTrackControl.js +25 -0
  37. package/dist/src/endpoints/userTrackControl.js.map +1 -0
  38. package/dist/src/endpoints/volume.d.ts +9 -0
  39. package/dist/src/endpoints/volume.d.ts.map +1 -1
  40. package/dist/src/endpoints/volume.js +17 -0
  41. package/dist/src/endpoints/volume.js.map +1 -1
  42. package/dist/src/endpoints/zone.d.ts +9 -0
  43. package/dist/src/endpoints/zone.d.ts.map +1 -1
  44. package/dist/src/endpoints/zone.js +19 -2
  45. package/dist/src/endpoints/zone.js.map +1 -1
  46. package/dist/src/types/Enums.d.ts +1 -0
  47. package/dist/src/types/Enums.d.ts.map +1 -1
  48. package/dist/src/types/NowPlaying.d.ts +22 -2
  49. package/dist/src/types/NowPlaying.d.ts.map +1 -1
  50. package/dist/src/types/NowPlaying.js +26 -1
  51. package/dist/src/types/NowPlaying.js.map +1 -1
  52. package/dist/src/types/Presets.d.ts +3 -3
  53. package/dist/src/types/Presets.d.ts.map +1 -1
  54. package/dist/src/types/Sources.d.ts +20 -2
  55. package/dist/src/types/Sources.d.ts.map +1 -1
  56. package/dist/src/types/Sources.js +29 -1
  57. package/dist/src/types/Sources.js.map +1 -1
  58. package/dist/src/types/Updates.d.ts +2 -2
  59. package/dist/src/types/Updates.d.ts.map +1 -1
  60. package/dist/src/types/Zone.d.ts +17 -1
  61. package/dist/src/types/Zone.d.ts.map +1 -1
  62. package/dist/src/types/Zone.js +25 -1
  63. package/dist/src/types/Zone.js.map +1 -1
  64. package/package.json +5 -4
@@ -4,7 +4,7 @@ export type { Bass } from './src/types/Bass';
4
4
  export type { BassCapabilities } from './src/types/BassCapabilities';
5
5
  export type { Capabilities, Capability } from './src/types/Capabilities';
6
6
  export type { AudioDspControls } from './src/types/AudioDspControls';
7
- export type { ArtStatus, AudioMode, KeyState, KeyValue, PlayStatus, PresetId, SourceStatus } from './src/types/Enums';
7
+ export type { ArtStatus, AudioMode, KeyState, KeyValue, PlayStatus, PresetId, SourceStatus, UserTrackControlTypes } from './src/types/Enums';
8
8
  export type { AudioProductToneControls, AudioProductToneControlsUpdate, ToneControl } from './src/types/AudioProductToneControls';
9
9
  export type { AudioProductLevelControls, AudioProductLevelControlsUpdate, LevelControl } from './src/types/AudioProductLevelControls';
10
10
  export type { NowPlaying } from './src/types/NowPlaying';
@@ -1 +1 @@
1
- {"version":3,"file":"index.device.d.ts","sourceRoot":"","sources":["../index.device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChG,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrH,YAAY,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AACjI,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACrI,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvG,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.device.d.ts","sourceRoot":"","sources":["../index.device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChG,YAAY,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAC5I,YAAY,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AACjI,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAA;AACrI,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvG,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
@@ -9,6 +9,7 @@ import { BassCapabilities } from '../types/BassCapabilities';
9
9
  import { Capabilities } from '../types/Capabilities';
10
10
  import { ContentItem } from '../types/ContentItem';
11
11
  import { DeviceInfo } from '../types/DeviceInfo';
12
+ import { UserTrackControlTypes } from '../types/Enums';
12
13
  import { NowPlaying } from '../types/NowPlaying';
13
14
  import { Preset, Presets } from '../types/Presets';
14
15
  import { Recents } from '../types/Recents';
@@ -291,6 +292,19 @@ export declare class SoundTouchDevice {
291
292
  * await device.keyPressAndRelease('PLAY')
292
293
  */
293
294
  keyPressAndRelease(key: SoundTouchKey): Promise<void>;
295
+ /**
296
+ * Sends a user track control command to the device.
297
+ *
298
+ * POST /userTrackControl
299
+ *
300
+ * @param userTrackControlType Track control command to execute.
301
+ * @param startSecond Optional start time in seconds, used for seek commands.
302
+ * @returns A promise that resolves when the device accepts the track control command.
303
+ *
304
+ * @example
305
+ * await device.setUserTrackControl('SEEK_TO_TIME', 60)
306
+ */
307
+ setUserTrackControl(userTrackControlType: UserTrackControlTypes, startSecond?: number): Promise<void>;
294
308
  /**
295
309
  * Subscribes to now playing update notifications.
296
310
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SoundTouchDevice.d.ts","sourceRoot":"","sources":["../../../src/device/SoundTouchDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SoundTouchDevice.d.ts","sourceRoot":"","sources":["../../../src/device/SoundTouchDevice.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,21 @@ import { WebSocketClient } from '../client/ws';
3
3
  import { fetchAudioDspControls, setAudioDspControls } from '../endpoints/audiodspcontrols';
4
4
  import { fetchAudioProductLevelControls, setAudioProductLevelControls } from '../endpoints/audioProductLevelControls';
5
5
  import { fetchAudioProductToneControls, setAudioProductToneControls } from '../endpoints/audioProductToneControls';
6
- import { fetchBass, setBass } from '../endpoints/bass';
6
+ import { fetchBass, setBass, subscribeBassUpdated } from '../endpoints/bass';
7
7
  import { fetchBassCapabilities } from '../endpoints/bassCapabilities';
8
8
  import { fetchCapabilities } from '../endpoints/capabilities';
9
- import { fetchInfo } from '../endpoints/info';
9
+ import { fetchInfo, subscribeInfoUpdated } from '../endpoints/info';
10
10
  import { sendKeyPress, sendKeyPressAndRelease } from '../endpoints/key';
11
11
  import { setName } from '../endpoints/name';
12
- import { fetchNowPlaying } from '../endpoints/nowPlaying';
13
- import { fetchPresets } from '../endpoints/presets';
12
+ import { fetchNowPlaying, subscribeNowPlaying } from '../endpoints/nowPlaying';
13
+ import { fetchPresets, subscribeNowSelectionUpdated, subscribePresetsUpdated } from '../endpoints/presets';
14
14
  import { selectSource } from '../endpoints/select';
15
- import { fetchSources } from '../endpoints/sources';
15
+ import { fetchSources, subscribeSourcesUpdated } from '../endpoints/sources';
16
16
  import { fetchTrackInfo } from '../endpoints/trackInfo';
17
- import { fetchVolume, setVolume } from '../endpoints/volume';
18
- import { addZoneSlave, fetchZone, removeZoneSlave, setZone } from '../endpoints/zone';
17
+ import { subscribeAcctModeUpdated, subscribeConnectionStateUpdated, subscribeErrorNotification, subscribeRecentsUpdated, subscribeSiteSurveyResultsUpdated, subscribeSwUpdateStatusUpdated, subscribeWebSocketError, } from '../endpoints/updates';
18
+ import { setUserTrackControl } from '../endpoints/userTrackControl';
19
+ import { fetchVolume, setVolume, subscribeVolume } from '../endpoints/volume';
20
+ import { addZoneSlave, fetchZone, removeZoneSlave, setZone, subscribeZoneUpdated } from '../endpoints/zone';
19
21
  /**
20
22
  * Represents a SoundTouch device and provides methods to interact with it.
21
23
  *
@@ -339,6 +341,21 @@ export class SoundTouchDevice {
339
341
  keyPressAndRelease(key) {
340
342
  return sendKeyPressAndRelease(this.httpClient, key);
341
343
  }
344
+ /**
345
+ * Sends a user track control command to the device.
346
+ *
347
+ * POST /userTrackControl
348
+ *
349
+ * @param userTrackControlType Track control command to execute.
350
+ * @param startSecond Optional start time in seconds, used for seek commands.
351
+ * @returns A promise that resolves when the device accepts the track control command.
352
+ *
353
+ * @example
354
+ * await device.setUserTrackControl('SEEK_TO_TIME', 60)
355
+ */
356
+ setUserTrackControl(userTrackControlType, startSecond) {
357
+ return setUserTrackControl(this.httpClient, userTrackControlType, startSecond);
358
+ }
342
359
  /**
343
360
  * Subscribes to now playing update notifications.
344
361
  *
@@ -349,13 +366,7 @@ export class SoundTouchDevice {
349
366
  * device.onNowPlayingUpdated((nowPlaying) => console.log(nowPlaying))
350
367
  */
351
368
  onNowPlayingUpdated(handler) {
352
- this.wsClient.ensureConnected();
353
- return this.wsClient.onMessage((update) => {
354
- const nowPlaying = update.nowPlayingUpdated?.nowPlaying;
355
- if (nowPlaying) {
356
- handler(nowPlaying);
357
- }
358
- });
369
+ return subscribeNowPlaying(this.wsClient, handler);
359
370
  }
360
371
  /**
361
372
  * Subscribes to volume update notifications.
@@ -367,14 +378,7 @@ export class SoundTouchDevice {
367
378
  * device.onVolumeUpdated((volume) => console.log(volume))
368
379
  */
369
380
  onVolumeUpdated(handler) {
370
- this.wsClient.ensureConnected();
371
- return this.wsClient.onMessage((update) => {
372
- const volumeUpdated = update.volumeUpdated;
373
- if (!volumeUpdated) {
374
- return;
375
- }
376
- handler(volumeUpdated.volume ?? {});
377
- });
381
+ return subscribeVolume(this.wsClient, handler);
378
382
  }
379
383
  /**
380
384
  * Subscribes to bass update notifications.
@@ -386,12 +390,7 @@ export class SoundTouchDevice {
386
390
  * device.onBassUpdated(() => console.log('Bass changed'))
387
391
  */
388
392
  onBassUpdated(handler) {
389
- this.wsClient.ensureConnected();
390
- return this.wsClient.onMessage((update) => {
391
- if (update.bassUpdated) {
392
- handler();
393
- }
394
- });
393
+ return subscribeBassUpdated(this.wsClient, handler);
395
394
  }
396
395
  /**
397
396
  * Subscribes to zone map update notifications.
@@ -403,12 +402,7 @@ export class SoundTouchDevice {
403
402
  * device.onZoneUpdated(() => console.log('Zone map changed'))
404
403
  */
405
404
  onZoneUpdated(handler) {
406
- this.wsClient.ensureConnected();
407
- return this.wsClient.onMessage((update) => {
408
- if (update.zoneUpdated) {
409
- handler();
410
- }
411
- });
405
+ return subscribeZoneUpdated(this.wsClient, handler);
412
406
  }
413
407
  /**
414
408
  * Subscribes to software update status notifications.
@@ -420,12 +414,7 @@ export class SoundTouchDevice {
420
414
  * device.onSwUpdateStatusUpdated(() => console.log('SW update status changed'))
421
415
  */
422
416
  onSwUpdateStatusUpdated(handler) {
423
- this.wsClient.ensureConnected();
424
- return this.wsClient.onMessage((update) => {
425
- if (update.swUpdateStatusUpdated) {
426
- handler();
427
- }
428
- });
417
+ return subscribeSwUpdateStatusUpdated(this.wsClient, handler);
429
418
  }
430
419
  /**
431
420
  * Subscribes to site survey results update notifications.
@@ -437,12 +426,7 @@ export class SoundTouchDevice {
437
426
  * device.onSiteSurveyResultsUpdated(() => console.log('Site survey updated'))
438
427
  */
439
428
  onSiteSurveyResultsUpdated(handler) {
440
- this.wsClient.ensureConnected();
441
- return this.wsClient.onMessage((update) => {
442
- if (update.siteSurveyResultsUpdated) {
443
- handler();
444
- }
445
- });
429
+ return subscribeSiteSurveyResultsUpdated(this.wsClient, handler);
446
430
  }
447
431
  /**
448
432
  * Subscribes to sources update notifications.
@@ -454,12 +438,7 @@ export class SoundTouchDevice {
454
438
  * device.onSourcesUpdated(() => console.log('Sources updated'))
455
439
  */
456
440
  onSourcesUpdated(handler) {
457
- this.wsClient.ensureConnected();
458
- return this.wsClient.onMessage((update) => {
459
- if (update.sourcesUpdated) {
460
- handler();
461
- }
462
- });
441
+ return subscribeSourcesUpdated(this.wsClient, handler);
463
442
  }
464
443
  /**
465
444
  * Subscribes to now selection update notifications.
@@ -471,13 +450,7 @@ export class SoundTouchDevice {
471
450
  * device.onNowSelectionUpdated((preset) => console.log(preset))
472
451
  */
473
452
  onNowSelectionUpdated(handler) {
474
- this.wsClient.ensureConnected();
475
- return this.wsClient.onMessage((update) => {
476
- const preset = update.nowSelectionUpdated?.preset;
477
- if (preset) {
478
- handler(preset);
479
- }
480
- });
453
+ return subscribeNowSelectionUpdated(this.wsClient, handler);
481
454
  }
482
455
  /**
483
456
  * Subscribes to network connection state notifications.
@@ -489,12 +462,7 @@ export class SoundTouchDevice {
489
462
  * device.onConnectionStateUpdated(() => console.log('Connection state changed'))
490
463
  */
491
464
  onConnectionStateUpdated(handler) {
492
- this.wsClient.ensureConnected();
493
- return this.wsClient.onMessage((update) => {
494
- if (update.connectionStateUpdated) {
495
- handler();
496
- }
497
- });
465
+ return subscribeConnectionStateUpdated(this.wsClient, handler);
498
466
  }
499
467
  /**
500
468
  * Subscribes to device info update notifications.
@@ -506,12 +474,7 @@ export class SoundTouchDevice {
506
474
  * device.onInfoUpdated(() => console.log('Device info changed'))
507
475
  */
508
476
  onInfoUpdated(handler) {
509
- this.wsClient.ensureConnected();
510
- return this.wsClient.onMessage((update) => {
511
- if (update.infoUpdated) {
512
- handler();
513
- }
514
- });
477
+ return subscribeInfoUpdated(this.wsClient, handler);
515
478
  }
516
479
  /**
517
480
  * Subscribes to presets update notifications.
@@ -523,17 +486,7 @@ export class SoundTouchDevice {
523
486
  * device.onPresetsUpdated((presets) => console.log(presets))
524
487
  */
525
488
  onPresetsUpdated(handler) {
526
- this.wsClient.ensureConnected();
527
- return this.wsClient.onMessage((update) => {
528
- const preset = update.presetsUpdated?.presets?.preset;
529
- if (Array.isArray(preset)) {
530
- handler(preset);
531
- return;
532
- }
533
- if (preset) {
534
- handler([preset]);
535
- }
536
- });
489
+ return subscribePresetsUpdated(this.wsClient, handler);
537
490
  }
538
491
  /**
539
492
  * Subscribes to recents update notifications.
@@ -545,17 +498,7 @@ export class SoundTouchDevice {
545
498
  * device.onRecentsUpdated((recents) => console.log(recents))
546
499
  */
547
500
  onRecentsUpdated(handler) {
548
- this.wsClient.ensureConnected();
549
- return this.wsClient.onMessage((update) => {
550
- const recent = update.recentsUpdated?.recents?.recent;
551
- if (Array.isArray(recent)) {
552
- handler(recent);
553
- return;
554
- }
555
- if (recent) {
556
- handler([recent]);
557
- }
558
- });
501
+ return subscribeRecentsUpdated(this.wsClient, handler);
559
502
  }
560
503
  /**
561
504
  * Subscribes to account mode update notifications.
@@ -567,12 +510,7 @@ export class SoundTouchDevice {
567
510
  * device.onAcctModeUpdated(() => console.log('Account mode changed'))
568
511
  */
569
512
  onAcctModeUpdated(handler) {
570
- this.wsClient.ensureConnected();
571
- return this.wsClient.onMessage((update) => {
572
- if (update.acctModeUpdated) {
573
- handler();
574
- }
575
- });
513
+ return subscribeAcctModeUpdated(this.wsClient, handler);
576
514
  }
577
515
  /**
578
516
  * Subscribes to error notifications.
@@ -584,12 +522,7 @@ export class SoundTouchDevice {
584
522
  * device.onErrorNotification((error) => console.log(error))
585
523
  */
586
524
  onErrorNotification(handler) {
587
- this.wsClient.ensureConnected();
588
- return this.wsClient.onMessage((update) => {
589
- if (update.errorNotification) {
590
- handler(update.errorNotification);
591
- }
592
- });
525
+ return subscribeErrorNotification(this.wsClient, handler);
593
526
  }
594
527
  /**
595
528
  * Subscribes to WebSocket errors.
@@ -601,8 +534,7 @@ export class SoundTouchDevice {
601
534
  * device.onWebSocketError((error) => console.error(error))
602
535
  */
603
536
  onWebSocketError(handler) {
604
- this.wsClient.ensureConnected();
605
- return this.wsClient.onError(handler);
537
+ return subscribeWebSocketError(this.wsClient, handler);
606
538
  }
607
539
  }
608
540
  //# sourceMappingURL=SoundTouchDevice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SoundTouchDevice.js","sourceRoot":"","sources":["../../../src/device/SoundTouchDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SoundTouchDevice.js","sourceRoot":"","sources":["../../../src/device/SoundTouchDevice.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { HttpClient } from '../client/http';
2
+ import { WebSocketClient } from '../client/ws';
2
3
  import { Bass } from '../types/Bass';
3
4
  /**
4
5
  * Gets the current bass setting from the device.
@@ -20,4 +21,12 @@ export declare function fetchBass(client: HttpClient): Promise<Bass>;
20
21
  * await device.setBass(5)
21
22
  */
22
23
  export declare function setBass(client: HttpClient, value: number): Promise<void>;
24
+ /**
25
+ * Subscribes to bass update notifications from the websocket connection.
26
+ *
27
+ * @param wsClient WebSocket client used for async updates.
28
+ * @param handler Callback invoked when bass changes.
29
+ * @returns Unsubscribe function.
30
+ */
31
+ export declare function subscribeBassUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
23
32
  //# sourceMappingURL=bass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bass.d.ts","sourceRoot":"","sources":["../../../src/endpoints/bass.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAQpC;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E"}
1
+ {"version":3,"file":"bass.d.ts","sourceRoot":"","sources":["../../../src/endpoints/bass.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AASpC;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQ/F"}
@@ -30,4 +30,19 @@ export async function setBass(client, value) {
30
30
  log('payload %s', body);
31
31
  await client.post('/bass', body);
32
32
  }
33
+ /**
34
+ * Subscribes to bass update notifications from the websocket connection.
35
+ *
36
+ * @param wsClient WebSocket client used for async updates.
37
+ * @param handler Callback invoked when bass changes.
38
+ * @returns Unsubscribe function.
39
+ */
40
+ export function subscribeBassUpdated(wsClient, handler) {
41
+ wsClient.ensureConnected();
42
+ return wsClient.onMessage((update) => {
43
+ if (update.bassUpdated) {
44
+ handler();
45
+ }
46
+ });
47
+ }
33
48
  //# sourceMappingURL=bass.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bass.js","sourceRoot":"","sources":["../../../src/endpoints/bass.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,WAAW,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,OAAO,CAAC,CAAA;IACvD,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAEnC,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAkB,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS,CAAA;IAEpC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"bass.js","sourceRoot":"","sources":["../../../src/endpoints/bass.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAO/B,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,WAAW,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,OAAO,CAAC,CAAA;IACvD,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAEnC,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAkB,EAAE,KAAa;IAC3D,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS,CAAA;IAEpC,GAAG,CAAC,YAAY,CAAC,CAAA;IACjB,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAEvB,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAyB,EAAE,OAAmB;IAC/E,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { HttpClient } from '../client/http';
2
+ import { WebSocketClient } from '../client/ws';
2
3
  import { DeviceInfo } from '../types/DeviceInfo';
3
4
  /**
4
5
  * Gets device information including identifiers, components, and network info.
@@ -8,4 +9,12 @@ import { DeviceInfo } from '../types/DeviceInfo';
8
9
  * @returns Promise<DeviceInfo> A promise that resolves to the device info payload as returned by the device.
9
10
  */
10
11
  export declare function fetchInfo(client: HttpClient): Promise<DeviceInfo>;
12
+ /**
13
+ * Subscribes to device info update notifications from the websocket connection.
14
+ *
15
+ * @param wsClient WebSocket client used for async updates.
16
+ * @param handler Callback invoked when device info changes.
17
+ * @returns Unsubscribe function.
18
+ */
19
+ export declare function subscribeInfoUpdated(wsClient: WebSocketClient, handler: () => void): () => void;
11
20
  //# sourceMappingURL=info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/endpoints/info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAQhD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvE"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/endpoints/info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAShD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAQ/F"}
@@ -13,4 +13,19 @@ export async function fetchInfo(client) {
13
13
  log('response %O', data.info ?? {});
14
14
  return data.info ?? {};
15
15
  }
16
+ /**
17
+ * Subscribes to device info update notifications from the websocket connection.
18
+ *
19
+ * @param wsClient WebSocket client used for async updates.
20
+ * @param handler Callback invoked when device info changes.
21
+ * @returns Unsubscribe function.
22
+ */
23
+ export function subscribeInfoUpdated(wsClient, handler) {
24
+ wsClient.ensureConnected();
25
+ return wsClient.onMessage((update) => {
26
+ if (update.infoUpdated) {
27
+ handler();
28
+ }
29
+ });
30
+ }
16
31
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/endpoints/info.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,WAAW,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,OAAO,CAAC,CAAA;IACvD,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAEnC,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;AAC1B,CAAC"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/endpoints/info.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAO/B,MAAM,GAAG,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAA;AAMtD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAkB;IAC9C,GAAG,CAAC,WAAW,CAAC,CAAA;IAEhB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAe,OAAO,CAAC,CAAA;IACvD,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAEnC,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAyB,EAAE,OAAmB;IAC/E,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { HttpClient } from '../client/http';
2
+ import { WebSocketClient } from '../client/ws';
2
3
  import { NowPlaying } from '../types/NowPlaying';
3
4
  /**
4
5
  * Gets info about the currently playing media.
@@ -8,4 +9,12 @@ import { NowPlaying } from '../types/NowPlaying';
8
9
  * @returns Promise<NowPlaying> A promise that resolves to the now playing payload as returned by the device.
9
10
  */
10
11
  export declare function fetchNowPlaying(client: HttpClient): Promise<NowPlaying>;
12
+ /**
13
+ * Subscribes to now playing update notifications from the websocket connection.
14
+ *
15
+ * @param wsClient WebSocket client used for async updates.
16
+ * @param handler Callback invoked with the normalized now playing payload.
17
+ * @returns Unsubscribe function.
18
+ */
19
+ export declare function subscribeNowPlaying(wsClient: WebSocketClient, handler: (nowPlaying: NowPlaying) => void): () => void;
11
20
  //# sourceMappingURL=nowPlaying.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nowPlaying.d.ts","sourceRoot":"","sources":["../../../src/endpoints/nowPlaying.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAQhD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAO7E"}
1
+ {"version":3,"file":"nowPlaying.d.ts","sourceRoot":"","sources":["../../../src/endpoints/nowPlaying.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAuB,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAS5F;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAS7E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CASpH"}
@@ -1,4 +1,5 @@
1
1
  import createDebug from 'debug';
2
+ import { normalizeNowPlaying } from '../types/NowPlaying';
2
3
  const log = createDebug('soundretouch:endpoints:nowplaying');
3
4
  /**
4
5
  * Gets info about the currently playing media.
@@ -10,7 +11,24 @@ const log = createDebug('soundretouch:endpoints:nowplaying');
10
11
  export async function fetchNowPlaying(client) {
11
12
  log('GET /now_playing');
12
13
  const data = await client.getXml('/now_playing');
13
- log('response %O', data.nowPlaying ?? {});
14
- return data.nowPlaying ?? {};
14
+ const nowPlaying = normalizeNowPlaying(data.nowPlaying);
15
+ log('response %O', nowPlaying);
16
+ return nowPlaying;
17
+ }
18
+ /**
19
+ * Subscribes to now playing update notifications from the websocket connection.
20
+ *
21
+ * @param wsClient WebSocket client used for async updates.
22
+ * @param handler Callback invoked with the normalized now playing payload.
23
+ * @returns Unsubscribe function.
24
+ */
25
+ export function subscribeNowPlaying(wsClient, handler) {
26
+ wsClient.ensureConnected();
27
+ return wsClient.onMessage((update) => {
28
+ const nowPlaying = update.nowPlayingUpdated?.nowPlaying;
29
+ if (nowPlaying) {
30
+ handler(normalizeNowPlaying(nowPlaying));
31
+ }
32
+ });
15
33
  }
16
34
  //# sourceMappingURL=nowPlaying.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nowPlaying.js","sourceRoot":"","sources":["../../../src/endpoints/nowPlaying.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAK/B,MAAM,GAAG,GAAG,WAAW,CAAC,mCAAmC,CAAC,CAAA;AAM5D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACpD,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAEvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAqB,cAAc,CAAC,CAAA;IACpE,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IAEzC,OAAO,IAAI,CAAC,UAAU,IAAI,EAAE,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"nowPlaying.js","sourceRoot":"","sources":["../../../src/endpoints/nowPlaying.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAA;AAI/B,OAAO,EAAE,mBAAmB,EAAqC,MAAM,qBAAqB,CAAA;AAG5F,MAAM,GAAG,GAAG,WAAW,CAAC,mCAAmC,CAAC,CAAA;AAM5D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACpD,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAEvB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAqB,cAAc,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAEvD,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IAE9B,OAAO,UAAU,CAAA;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB,EAAE,OAAyC;IACpG,QAAQ,CAAC,eAAe,EAAE,CAAA;IAE1B,OAAO,QAAQ,CAAC,SAAS,CAAU,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAA;QACvD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;QAC5C,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { HttpClient } from '../client/http';
2
- import { Presets } from '../types/Presets';
2
+ import { WebSocketClient } from '../client/ws';
3
+ import { Preset, Presets } from '../types/Presets';
3
4
  /**
4
5
  * Gets the list of current presets from the device.
5
6
  *
@@ -8,4 +9,20 @@ import { Presets } from '../types/Presets';
8
9
  * @returns Promise<Presets> A promise that resolves to the presets payload as returned by the device.
9
10
  */
10
11
  export declare function fetchPresets(client: HttpClient): Promise<Presets>;
12
+ /**
13
+ * Subscribes to now selection update notifications from the websocket connection.
14
+ *
15
+ * @param wsClient WebSocket client used for async updates.
16
+ * @param handler Callback invoked with the selected preset.
17
+ * @returns Unsubscribe function.
18
+ */
19
+ export declare function subscribeNowSelectionUpdated(wsClient: WebSocketClient, handler: (preset: Preset) => void): () => void;
20
+ /**
21
+ * Subscribes to presets update notifications from the websocket connection.
22
+ *
23
+ * @param wsClient WebSocket client used for async updates.
24
+ * @param handler Callback invoked with the parsed presets payload.
25
+ * @returns Unsubscribe function.
26
+ */
27
+ export declare function subscribePresetsUpdated(wsClient: WebSocketClient, handler: (presets: Presets) => void): () => void;
11
28
  //# sourceMappingURL=presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/endpoints/presets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAU,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAUlD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAYvE"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/endpoints/presets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAgBlD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAYvE;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CASrH;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAclH"}
@@ -1,5 +1,9 @@
1
1
  import createDebug from 'debug';
2
2
  const log = createDebug('soundretouch:endpoints:presets');
3
+ const normalizePreset = (preset) => {
4
+ const id = Number(preset.id);
5
+ return Number.isFinite(id) ? { ...preset, id } : preset;
6
+ };
3
7
  /**
4
8
  * Gets the list of current presets from the device.
5
9
  *
@@ -13,8 +17,44 @@ export async function fetchPresets(client) {
13
17
  log('response %O', data.presets ?? {});
14
18
  const preset = data.presets?.preset;
15
19
  if (Array.isArray(preset)) {
16
- return preset;
20
+ return preset.map(normalizePreset);
17
21
  }
18
- return preset ? [preset] : [];
22
+ return preset ? [normalizePreset(preset)] : [];
23
+ }
24
+ /**
25
+ * Subscribes to now selection update notifications from the websocket connection.
26
+ *
27
+ * @param wsClient WebSocket client used for async updates.
28
+ * @param handler Callback invoked with the selected preset.
29
+ * @returns Unsubscribe function.
30
+ */
31
+ export function subscribeNowSelectionUpdated(wsClient, handler) {
32
+ wsClient.ensureConnected();
33
+ return wsClient.onMessage((update) => {
34
+ const preset = update.nowSelectionUpdated?.preset;
35
+ if (preset) {
36
+ handler(preset);
37
+ }
38
+ });
39
+ }
40
+ /**
41
+ * Subscribes to presets update notifications from the websocket connection.
42
+ *
43
+ * @param wsClient WebSocket client used for async updates.
44
+ * @param handler Callback invoked with the parsed presets payload.
45
+ * @returns Unsubscribe function.
46
+ */
47
+ export function subscribePresetsUpdated(wsClient, handler) {
48
+ wsClient.ensureConnected();
49
+ return wsClient.onMessage((update) => {
50
+ const preset = update.presetsUpdated?.presets?.preset;
51
+ if (Array.isArray(preset)) {
52
+ handler(preset.map(normalizePreset));
53
+ return;
54
+ }
55
+ if (preset) {
56
+ handler([normalizePreset(preset)]);
57
+ }
58
+ });
19
59
  }
20
60
  //# sourceMappingURL=presets.js.map