diff --git a/sdk/gen/types.input.ts b/sdk/gen/types.input.ts index 9fb7e4f16..dcfc62155 100644 --- a/sdk/gen/types.input.ts +++ b/sdk/gen/types.input.ts @@ -86,8 +86,19 @@ export enum ScryptedDeviceType { Thermostat = "Thermostat", Lock = "Lock", PasswordControl = "PasswordControl", + /** + * Displays have audio and video output. + */ Display = "Display", + /** + * Smart Displays have two way audio and video. + */ + SmartDisplay = "SmartDisplay", Speaker = "Speaker", + /** + * Smart Speakers have two way audio. + */ + SmartSpeaker = "SmartSpeaker", Event = "Event", Entry = "Entry", Garage = "Garage", @@ -424,6 +435,13 @@ export interface RequestMediaStreamOptions extends ResponseMediaStreamOptions { refresh?: boolean; } +/** + * Microphone devices can capture audio streams. + */ +export interface Microphone { + getAudioStream(): Promise; +} + /** * VideoCamera devices can capture video streams. */ @@ -1278,6 +1296,7 @@ export enum ScryptedInterface { Thermometer = "Thermometer", HumiditySensor = "HumiditySensor", Camera = "Camera", + Microphone = "Microphone", VideoCamera = "VideoCamera", VideoRecorder = "VideoRecorder", VideoClips = "VideoClips", diff --git a/sdk/package-lock.json b/sdk/package-lock.json index 414bdcf4b..0c3baf5bf 100644 --- a/sdk/package-lock.json +++ b/sdk/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/sdk", - "version": "0.0.184", + "version": "0.0.185", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/sdk", - "version": "0.0.184", + "version": "0.0.185", "license": "ISC", "dependencies": { "@babel/preset-typescript": "^7.16.7", diff --git a/sdk/package.json b/sdk/package.json index 81c000798..b848d7da4 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/sdk", - "version": "0.0.184", + "version": "0.0.185", "description": "", "main": "index.js", "scripts": { diff --git a/sdk/scrypted_python/scrypted_sdk/types.py b/sdk/scrypted_python/scrypted_sdk/types.py index b1e5d2a02..09a642871 100644 --- a/sdk/scrypted_python/scrypted_sdk/types.py +++ b/sdk/scrypted_python/scrypted_sdk/types.py @@ -51,6 +51,8 @@ class ScryptedDeviceType(Enum): Program = "Program" Scene = "Scene" Sensor = "Sensor" + SmartDisplay = "SmartDisplay" + SmartSpeaker = "SmartSpeaker" Speaker = "Speaker" Switch = "Switch" Thermostat = "Thermostat" @@ -87,6 +89,7 @@ class ScryptedInterface(Enum): Lock = "Lock" LuminanceSensor = "LuminanceSensor" MediaPlayer = "MediaPlayer" + Microphone = "Microphone" MixinProvider = "MixinProvider" MotionSensor = "MotionSensor" Notifier = "Notifier" @@ -636,6 +639,11 @@ class MediaPlayer: pass pass +class Microphone: + async def getAudioStream(self) -> MediaObject: + pass + pass + class MixinProvider: async def canMixin(self, type: ScryptedDeviceType, interfaces: list[str]) -> list[str]: pass diff --git a/sdk/types/index.d.ts b/sdk/types/index.d.ts index 72499b8bd..11eca6511 100644 --- a/sdk/types/index.d.ts +++ b/sdk/types/index.d.ts @@ -235,8 +235,19 @@ export declare enum ScryptedDeviceType { Thermostat = "Thermostat", Lock = "Lock", PasswordControl = "PasswordControl", + /** + * Displays have audio and video output. + */ Display = "Display", + /** + * Smart Displays have two way audio and video. + */ + SmartDisplay = "SmartDisplay", Speaker = "Speaker", + /** + * Smart Speakers have two way audio. + */ + SmartSpeaker = "SmartSpeaker", Event = "Event", Entry = "Entry", Garage = "Garage", @@ -545,6 +556,12 @@ export interface RequestMediaStreamOptions extends ResponseMediaStreamOptions { */ refresh?: boolean; } +/** + * Microphone devices can capture audio streams. + */ +export interface Microphone { + getAudioStream(): Promise; +} /** * VideoCamera devices can capture video streams. */ @@ -1317,6 +1334,7 @@ export declare enum ScryptedInterface { Thermometer = "Thermometer", HumiditySensor = "HumiditySensor", Camera = "Camera", + Microphone = "Microphone", VideoCamera = "VideoCamera", VideoRecorder = "VideoRecorder", VideoClips = "VideoClips", diff --git a/sdk/types/index.js b/sdk/types/index.js index 8d33b6472..4eb8793e2 100644 --- a/sdk/types/index.js +++ b/sdk/types/index.js @@ -214,6 +214,13 @@ exports.ScryptedInterfaceDescriptors = { ], properties: [] }, + Microphone: { + name: 'Microphone', + methods: [ + 'getAudioStream' + ], + properties: [] + }, VideoCamera: { name: 'VideoCamera', methods: [ @@ -593,8 +600,19 @@ var ScryptedDeviceType; ScryptedDeviceType["Thermostat"] = "Thermostat"; ScryptedDeviceType["Lock"] = "Lock"; ScryptedDeviceType["PasswordControl"] = "PasswordControl"; + /** + * Displays have audio and video output. + */ ScryptedDeviceType["Display"] = "Display"; + /** + * Smart Displays have two way audio and video. + */ + ScryptedDeviceType["SmartDisplay"] = "SmartDisplay"; ScryptedDeviceType["Speaker"] = "Speaker"; + /** + * Smart Speakers have two way audio. + */ + ScryptedDeviceType["SmartSpeaker"] = "SmartSpeaker"; ScryptedDeviceType["Event"] = "Event"; ScryptedDeviceType["Entry"] = "Entry"; ScryptedDeviceType["Garage"] = "Garage"; @@ -667,6 +685,7 @@ var ScryptedInterface; ScryptedInterface["Thermometer"] = "Thermometer"; ScryptedInterface["HumiditySensor"] = "HumiditySensor"; ScryptedInterface["Camera"] = "Camera"; + ScryptedInterface["Microphone"] = "Microphone"; ScryptedInterface["VideoCamera"] = "VideoCamera"; ScryptedInterface["VideoRecorder"] = "VideoRecorder"; ScryptedInterface["VideoClips"] = "VideoClips"; diff --git a/sdk/types/index.ts b/sdk/types/index.ts index bd78d3751..8dfed3412 100644 --- a/sdk/types/index.ts +++ b/sdk/types/index.ts @@ -317,6 +317,13 @@ export const ScryptedInterfaceDescriptors: { [scryptedInterface: string]: Scrypt ], properties: [] }, + Microphone: { + name: 'Microphone', + methods: [ + 'getAudioStream' + ], + properties: [] + }, VideoCamera: { name: 'VideoCamera', methods: [ @@ -768,8 +775,19 @@ export enum ScryptedDeviceType { Thermostat = "Thermostat", Lock = "Lock", PasswordControl = "PasswordControl", + /** + * Displays have audio and video output. + */ Display = "Display", + /** + * Smart Displays have two way audio and video. + */ + SmartDisplay = "SmartDisplay", Speaker = "Speaker", + /** + * Smart Speakers have two way audio. + */ + SmartSpeaker = "SmartSpeaker", Event = "Event", Entry = "Entry", Garage = "Garage", @@ -1106,6 +1124,13 @@ export interface RequestMediaStreamOptions extends ResponseMediaStreamOptions { refresh?: boolean; } +/** + * Microphone devices can capture audio streams. + */ +export interface Microphone { + getAudioStream(): Promise; +} + /** * VideoCamera devices can capture video streams. */ @@ -1960,6 +1985,7 @@ export enum ScryptedInterface { Thermometer = "Thermometer", HumiditySensor = "HumiditySensor", Camera = "Camera", + Microphone = "Microphone", VideoCamera = "VideoCamera", VideoRecorder = "VideoRecorder", VideoClips = "VideoClips", diff --git a/sdk/types/package-lock.json b/sdk/types/package-lock.json index 6bb1aab52..2a4cc72ae 100644 --- a/sdk/types/package-lock.json +++ b/sdk/types/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/types", - "version": "0.0.25", + "version": "0.0.26", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/types", - "version": "0.0.25", + "version": "0.0.26", "license": "ISC", "devDependencies": {} } diff --git a/sdk/types/package.json b/sdk/types/package.json index 2d2bf313f..f30e45816 100644 --- a/sdk/types/package.json +++ b/sdk/types/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/types", - "version": "0.0.25", + "version": "0.0.26", "description": "", "main": "index.js", "author": "", diff --git a/sdk/types/scrypted_python/scrypted_sdk/types.py b/sdk/types/scrypted_python/scrypted_sdk/types.py index b1e5d2a02..09a642871 100644 --- a/sdk/types/scrypted_python/scrypted_sdk/types.py +++ b/sdk/types/scrypted_python/scrypted_sdk/types.py @@ -51,6 +51,8 @@ class ScryptedDeviceType(Enum): Program = "Program" Scene = "Scene" Sensor = "Sensor" + SmartDisplay = "SmartDisplay" + SmartSpeaker = "SmartSpeaker" Speaker = "Speaker" Switch = "Switch" Thermostat = "Thermostat" @@ -87,6 +89,7 @@ class ScryptedInterface(Enum): Lock = "Lock" LuminanceSensor = "LuminanceSensor" MediaPlayer = "MediaPlayer" + Microphone = "Microphone" MixinProvider = "MixinProvider" MotionSensor = "MotionSensor" Notifier = "Notifier" @@ -636,6 +639,11 @@ class MediaPlayer: pass pass +class Microphone: + async def getAudioStream(self) -> MediaObject: + pass + pass + class MixinProvider: async def canMixin(self, type: ScryptedDeviceType, interfaces: list[str]) -> list[str]: pass