--- title: "HDMIInput" slug: "170-core-hdmiinput" updated: 2025-12-09T17:10:48Z published: 2025-12-09T18:02:06Z canonical: "docs.developer.comcast.com/170-core-hdmiinput" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.developer.comcast.com/llms.txt > Use this file to discover all available pages before exploring further. # HDMIInput **HDMIInput Module 1.7.0 | Core SDK** ## Usage To use the HDMIInput module, you can import it into your project from the Firebolt SDK: ``` import { HDMIInput } from '@firebolt-js/sdk' ``` ## Overview Methods for managing HDMI inputs on an HDMI sink device. ## Methods ### autoLowLatencyModeCapable Property for each port auto low latency mode setting. To get the value of `autoLowLatencyModeCapable` call the method like this: ``` function autoLowLatencyModeCapable(port: HDMIPortId): Promise ``` Parameters: | Param | Type | Required | Description | | --- | --- | --- | --- | | `port` | [`HDMIPortId`](/docs/170-core-hdmiinput#hdmiportid) | true | pattern: ^HDMI[0-9]+$ | Promise resolution: Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let enabled = await HDMIInput.autoLowLatencyModeCapable('HDMI1') console.log(enabled) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.autoLowLatencyModeCapable", "params": { "port": "HDMI1" } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": true } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let enabled = await HDMIInput.autoLowLatencyModeCapable('HDMI1') console.log(enabled) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.autoLowLatencyModeCapable", "params": { "port": "HDMI1" } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": false } ``` --- To subscribe to notifications when the value changes, call the method like this: ``` function autoLowLatencyModeCapable( callback: (value) => AutoLowLatencyModeCapableChangedInfo, ): Promise ``` Promise resolution: ``` number ``` #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await autoLowLatencyModeCapable((value) => { console.log(value) }) console.log(listenerId) ``` Value of `data`: ``` { "port": "HDMI1", "enabled": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onAutoLowLatencyModeCapableChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "enabled": true } } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await autoLowLatencyModeCapable((value) => { console.log(value) }) console.log(listenerId) ``` Value of `data`: ``` { "port": "HDMI1", "enabled": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onAutoLowLatencyModeCapableChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "enabled": false } } ``` --- ### edidVersion Property for each port's active EDID version. To get the value of `edidVersion` call the method like this: ``` function edidVersion(port: HDMIPortId): Promise ``` Parameters: | Param | Type | Required | Description | | --- | --- | --- | --- | | `port` | [`HDMIPortId`](/docs/170-core-hdmiinput#hdmiportid) | true | pattern: ^HDMI[0-9]+$ | Promise resolution: [EDIDVersion](/docs/170-core-hdmiinput#edidversion-1) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let edidVersion = await HDMIInput.edidVersion('HDMI1') console.log(edidVersion) ``` Value of `edidVersion`: ``` '2.0' ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.edidVersion", "params": { "port": "HDMI1" } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": "2.0" } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let edidVersion = await HDMIInput.edidVersion('HDMI1') console.log(edidVersion) ``` Value of `edidVersion`: ``` '2.0' ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.edidVersion", "params": { "port": "HDMI1" } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": "1.4" } ``` --- To subscribe to notifications when the value changes, call the method like this: ``` function edidVersion( port: HDMIPortId, callback: (value) => EDIDVersion, ): Promise ``` Parameters: | Param | Type | Required | Description | | --- | --- | --- | --- | | `port` | [`HDMIPortId`](/docs/170-core-hdmiinput#hdmiportid) | true | pattern: ^HDMI[0-9]+$ | Promise resolution: ``` number ``` #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await edidVersion((value) => { console.log(value) }) console.log(listenerId) ``` Value of `edidVersion`: ``` '2.0' ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onEdidVersionChanged", "params": { "port": "HDMI1", "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": "2.0" } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await edidVersion((value) => { console.log(value) }) console.log(listenerId) ``` Value of `edidVersion`: ``` '2.0' ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onEdidVersionChanged", "params": { "port": "HDMI1", "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": "1.4" } ``` --- ### listen To listen to a specific event pass the event name as the first parameter: ``` listen(event: string, callback: (data: any) => void): Promise ``` Parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `event` | `string` | Yes | The event to listen for, see [Events](/docs/170-core-hdmiinput#events). | | *callback* | `function` | Yes | A function that will be invoked when the event occurs. | Promise resolution: | Type | Description | | --- | --- | | `number` | Listener ID to clear the callback method and stop receiving the event, e.g. `HDMIInput.clear(id)` | Callback parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `data` | `any` | Yes | The event data, which depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | To listen to all events from this module pass only a callback, without specifying an event name: ``` listen(callback: (event: string, data: any) => void): Promise ``` Parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | *callback* | `function` | Yes | A function that will be invoked when the event occurs. The event data depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | Callback parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `event` | `string` | Yes | The event that has occured listen for, see [Events](/docs/170-core-hdmiinput#events). | | `data` | `any` | Yes | The event data, which depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | Promise resolution: | Type | Description | | --- | --- | | `number` | Listener ID to clear the callback method and stop receiving the event, e.g. `HDMIInput.clear(id)` | See [Listening for events](/docs/listening-for-events/) for more information and examples. ### lowLatencyMode Property for the low latency mode setting. To get the value of `lowLatencyMode` call the method like this: ``` function lowLatencyMode(): Promise ``` Promise resolution: Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let enabled = await HDMIInput.lowLatencyMode() console.log(enabled) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.lowLatencyMode", "params": {} } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": true } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let enabled = await HDMIInput.lowLatencyMode() console.log(enabled) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.lowLatencyMode", "params": {} } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": false } ``` --- To subscribe to notifications when the value changes, call the method like this: ``` function lowLatencyMode(callback: (value) => boolean): Promise ``` Promise resolution: ``` number ``` #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await lowLatencyMode((value) => { console.log(value) }) console.log(listenerId) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onLowLatencyModeChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": true } ``` Default Example #2 JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let listenerId = await lowLatencyMode((value) => { console.log(value) }) console.log(listenerId) ``` Value of `enabled`: ``` true ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onLowLatencyModeChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": false } ``` --- ### once To listen to a single instance of a specific event pass the event name as the first parameter: ``` once(event: string, callback: (data: any) => void): Promise ``` The `once` method will only pass the next instance of this event, and then dicard the listener you provided. Parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `event` | `string` | Yes | The event to listen for, see [Events](/docs/170-core-hdmiinput#events). | | *callback* | `function` | Yes | A function that will be invoked when the event occurs. | Promise resolution: | Type | Description | | --- | --- | | `number` | Listener ID to clear the callback method and stop receiving the event, e.g. `HDMIInput.clear(id)` | Callback parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `data` | `any` | Yes | The event data, which depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | To listen to the next instance only of any events from this module pass only a callback, without specifying an event name: ``` once(callback: (event: string, data: any) => void): Promise ``` Parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | *callback* | `function` | Yes | A function that will be invoked when the event occurs. The event data depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | Callback parameters: | Param | Type | Required | Summary | | --- | --- | --- | --- | | `event` | `string` | Yes | The event that has occured listen for, see [Events](/docs/170-core-hdmiinput#events). | | `data` | `any` | Yes | The event data, which depends on which event is firing, see [Events](/docs/170-core-hdmiinput#events). | Promise resolution: | Type | Description | | --- | --- | | `number` | Listener ID to clear the callback method and stop receiving the event, e.g. `HDMIInput.clear(id)` | See [Listening for events](/docs/listening-for-events/) for more information and examples. ### port Retrieve a specific HDMI input port. ``` function port(portId: HDMIPortId): Promise ``` Parameters: | Param | Type | Required | Description | | --- | --- | --- | --- | | `portId` | [`HDMIPortId`](/docs/170-core-hdmiinput#hdmiportid) | true | pattern: ^HDMI[0-9]+$ | Promise resolution: [HDMIInputPort](/docs/170-core-hdmiinput#hdmiinputport) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let port = await HDMIInput.port('HDMI1') console.log(port) ``` Value of `port`: ``` { "port": "HDMI1", "connected": true, "signal": "stable", "arcCapable": true, "arcConnected": true, "edidVersion": "2.0", "autoLowLatencyModeCapable": true, "autoLowLatencyModeSignalled": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.port", "params": { "portId": "HDMI1" } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "connected": true, "signal": "stable", "arcCapable": true, "arcConnected": true, "edidVersion": "2.0", "autoLowLatencyModeCapable": true, "autoLowLatencyModeSignalled": true } } ``` --- ### ports Retrieve a list of HDMI input ports. ``` function ports(): Promise ``` Promise resolution: Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' let ports = await HDMIInput.ports() console.log(ports) ``` Value of `ports`: ``` ;[ { port: 'HDMI1', connected: true, signal: 'stable', arcCapable: true, arcConnected: true, edidVersion: '2.0', autoLowLatencyModeCapable: true, autoLowLatencyModeSignalled: true, }, ] ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.ports", "params": {} } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": [ { "port": "HDMI1", "connected": true, "signal": "stable", "arcCapable": true, "arcConnected": true, "edidVersion": "2.0", "autoLowLatencyModeCapable": true, "autoLowLatencyModeSignalled": true } ] } ``` --- ## Events ### autoLowLatencyModeCapableChanged See: [autoLowLatencyModeCapable](/docs/170-core-hdmiinput#autolowlatencymodecapable) ### autoLowLatencyModeSignalChanged ``` function listen('autoLowLatencyModeSignalChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [AutoLowLatencyModeSignalChangedInfo](/docs/170-core-hdmiinput#autolowlatencymodesignalchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('autoLowLatencyModeSignalChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "autoLowLatencyModeSignalled": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onAutoLowLatencyModeSignalChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "autoLowLatencyModeSignalled": true } } ``` --- ### connectionChanged ``` function listen('connectionChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [ConnectionChangedInfo](/docs/170-core-hdmiinput#connectionchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('connectionChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "connected": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onConnectionChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "connected": true } } ``` --- ### edidVersionChanged See: [edidVersion](/docs/170-core-hdmiinput#edidversion) ### lowLatencyModeChanged See: [lowLatencyMode](/docs/170-core-hdmiinput#lowlatencymode) ### signalChanged ``` function listen('signalChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [SignalChangedInfo](/docs/170-core-hdmiinput#signalchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('signalChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "signal": "stable" } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onSignalChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "signal": "stable" } } ``` --- ## Private Events **View** ### autoLowLatencyModeCapableChanged See: [autoLowLatencyModeCapable](/docs/170-core-hdmiinput#autolowlatencymodecapable) ### autoLowLatencyModeSignalChanged ``` function listen('autoLowLatencyModeSignalChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [AutoLowLatencyModeSignalChangedInfo](/docs/170-core-hdmiinput#autolowlatencymodesignalchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('autoLowLatencyModeSignalChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "autoLowLatencyModeSignalled": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onAutoLowLatencyModeSignalChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "autoLowLatencyModeSignalled": true } } ``` --- ### connectionChanged ``` function listen('connectionChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [ConnectionChangedInfo](/docs/170-core-hdmiinput#connectionchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('connectionChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "connected": true } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onConnectionChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "connected": true } } ``` --- ### edidVersionChanged See: [edidVersion](/docs/170-core-hdmiinput#edidversion) ### lowLatencyModeChanged See: [lowLatencyMode](/docs/170-core-hdmiinput#lowlatencymode) ### signalChanged ``` function listen('signalChanged', () => void): Promise ``` See also: [listen()](/docs/170-core-hdmiinput#listen), [once()](/docs/170-core-hdmiinput#listen), [clear()](/docs/170-core-hdmiinput#listen). Event value: [SignalChangedInfo](/docs/170-core-hdmiinput#signalchangedinfo) Capabilities: | Role | Capability | | --- | --- | | uses | xrn:firebolt:capability:inputs:hdmi | #### Examples Default Example JavaScript: ``` import { HDMIInput } from '@firebolt-js/sdk' HDMIInput.listen('signalChanged', (info) => { console.log(info) }) ``` Value of `info`: ``` { "port": "HDMI1", "signal": "stable" } ``` **JSON-RPC:** Request: ``` { "jsonrpc": "2.0", "id": 1, "method": "HDMIInput.onSignalChanged", "params": { "listen": true } } ``` Response: ``` { "jsonrpc": "2.0", "id": 1, "result": { "port": "HDMI1", "signal": "stable" } } ``` --- ## Types ### EDIDVersion ``` EDIDVersion: { V1_4: '1.4', V2_0: '2.0', UNKNOWN: 'unknown', }, ``` --- ### HDMISignalStatus ``` HDMISignalStatus: { NONE: 'none', STABLE: 'stable', UNSTABLE: 'unstable', UNSUPPORTED: 'unsupported', UNKNOWN: 'unknown', }, ``` --- ### HDMIPortId ``` type HDMIPortId = string ``` --- ### SignalChangedInfo ``` type SignalChangedInfo = { port: HDMIPortId signal: HDMISignalStatus } ``` See also: [HDMIPortId](/docs/170-core-hdmiinput#hdmiportid) [HDMISignalStatus](/docs/170-core-hdmiinput#hdmisignalstatus) --- ### AutoLowLatencyModeSignalChangedInfo ``` type AutoLowLatencyModeSignalChangedInfo = { port?: HDMIPortId autoLowLatencyModeSignalled?: boolean } ``` See also: [HDMIPortId](/docs/170-core-hdmiinput#hdmiportid) --- ### HDMIInputPort ``` type HDMIInputPort = { port: HDMIPortId connected: boolean signal: HDMISignalStatus arcCapable: boolean arcConnected: boolean edidVersion: EDIDVersion autoLowLatencyModeCapable: boolean autoLowLatencyModeSignalled: boolean } ``` See also: [HDMIPortId](/docs/170-core-hdmiinput#hdmiportid) [HDMISignalStatus](/docs/170-core-hdmiinput#hdmisignalstatus) [EDIDVersion](/docs/170-core-hdmiinput#edidversion-1) --- ### AutoLowLatencyModeCapableChangedInfo ``` type AutoLowLatencyModeCapableChangedInfo = { port: HDMIPortId enabled: boolean } ``` See also: [HDMIPortId](/docs/170-core-hdmiinput#hdmiportid) --- ### ConnectionChangedInfo ``` type ConnectionChangedInfo = { port?: HDMIPortId connected?: boolean } ``` See also: [HDMIPortId](/docs/170-core-hdmiinput#hdmiportid) ---