import { s } from "../schema.js"; import { defineInterface } from "../types.js"; /** A speaker that can be set to a volume from 0 to 100. One that only takes steps is an Alexa.StepSpeaker. */ export const Speaker = 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: s.number({ min: 0, max: 100, integer: true }) }, muted: { name: "muted", value: s.boolean() }, }, directives: { SetVolume: { name: "SetVolume", payload: s.object({ volume: s.number({ min: 0, max: 100, integer: true }) }) }, AdjustVolume: { name: "AdjustVolume", payload: s.object({ volume: s.number({ min: -100, max: 100, integer: true }), volumeDefault: s.boolean() }), note: "volume is the change. volumeDefault is true when the user named no amount", }, SetMute: { name: "SetMute", payload: s.object({ mute: s.boolean() }) }, }, });