Alex2Node/dist/cjs/registry/interfaces/Speaker.js
David d7dfc5b122 registry: Speaker, StepSpeaker, EqualizerController, PlaybackController, PlaybackStateReporter, InputController, ChannelController
Seven descriptors written from their pages replace seven stubs. All are version 3; 1.5.2 announced Speaker,
StepSpeaker, EqualizerController and PlaybackStateReporter as version 1, and all but ChannelController without
a property. StepSpeaker has no properties object in discovery and PlaybackController one without fields, next
to supportedOperations; a directive for an operation the device did not list is answered with
INVALID_DIRECTIVE. The equalizer declares bands, modes or both under "configurations", a TV its inputs from
the 61 names of the page.

Not described: the lineup of ChannelController, whose discovery example the page folds away. The discovery
examples of InputController spell one key "friendNames"; the fixtures have friendlyNames, as its table does.
62 examples of the six pages are saved as fixtures. 241 tests pass, 215 before.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 20:54:53 +00:00

27 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Speaker = void 0;
const schema_js_1 = require("../schema.js");
const types_js_1 = require("../types.js");
/** A speaker that can be set to a volume from 0 to 100. One that only takes steps is an Alexa.StepSpeaker. */
exports.Speaker = (0, types_js_1.defineInterface)({
namespace: "Alexa.Speaker",
version: "3",
doc: "https://developer.amazon.com/docs/alexaplus/device-apis/alexa-speaker.html",
kind: "controller",
tier: 2,
instanced: false,
properties: {
volume: { name: "volume", value: schema_js_1.s.number({ min: 0, max: 100, integer: true }) },
muted: { name: "muted", value: schema_js_1.s.boolean() },
},
directives: {
SetVolume: { name: "SetVolume", payload: schema_js_1.s.object({ volume: schema_js_1.s.number({ min: 0, max: 100, integer: true }) }) },
AdjustVolume: {
name: "AdjustVolume",
payload: schema_js_1.s.object({ volume: schema_js_1.s.number({ min: -100, max: 100, integer: true }), volumeDefault: schema_js_1.s.boolean() }),
note: "volume is the change. volumeDefault is true when the user named no amount",
},
SetMute: { name: "SetMute", payload: schema_js_1.s.object({ mute: schema_js_1.s.boolean() }) },
},
});