TV — tv
A display. Its inputs are consumer signal connections declared in the manifest; pathfinding
targets them when a room's video sink is this device.
Capabilities
Declared in the driver manifest under [[proxy]] capabilities. Anything not declared takes the default below.
| Capability | Type | Default | Meaning |
|---|---|---|---|
cooldown_ms | u32 | 0 | |
has_built_in_sources | bool | false | The set can be told to show one of its own sources — AirPlay, a built-in free-TV app — and not |
| only a jack. |
Separate from having them at all. A television lists AirPlay whether or not anything can switch
it there, and built_in_sources is that list; this is the driver saying it knows how. Without
it the list is a readout, which is still worth drawing: a set sitting on AirPlay should say so.
|
| has_channel_control | bool | false | Built-in tuner |
| has_discrete_input | bool | false | Can select an input directly rather than cycling |
| has_discrete_mute | bool | false | |
| has_discrete_power | bool | false | Separate on and off commands, not just a toggle |
| has_discrete_volume | bool | false | Can be set to an absolute volume |
| has_hold | bool | false | Volume can be held down and released, rather than only stepped. See hold.
A screen on an emitter can ramp; the same screen reached over HTTP one request at a time
cannot, however many volume keys it has.
|
| has_volume | bool | true | |
| is_video_sink | bool | true | The room's picture can end at this binding. Displays opt in; sources such as media players and navigators do not. |
| supports_arc | bool | false | |
| volume_max | u32 | 100 | |
| warmup_ms | u32 | 0 | Time after power-on before it will accept an input change. Pathfinding respects this. |
Commands
hold
Only present when
has_holdis declared true.
Begin holding a key, and keep holding it until release. The difference between a step and a
ramp — see the same pair on media_player, which this mirrors so a room does not have to care
which of the two is carrying its volume.
| Parameter | Type | Notes |
|---|---|---|
what | one of volume_up (needs has_volume) · volume_down (needs has_volume) |
mute_toggle
Only present when
has_volumeis declared true.
No parameters.
off
No parameters.
on
No parameters.
power_toggle
No parameters.
pulse_input
Cycle to the next input. The fallback when has_discrete_input is false.
No parameters.
release
Only present when
has_holdis declared true.
Stop holding. Takes no argument: one key is held at a time.
No parameters.
select_source
Only present when
has_built_in_sourcesis declared true.
Show one of the set's own sources rather than a jack.
source is one of built_in_sources, by the name the set shows — the same string
source_changed reports, so what a screen draws and what it sends back are one vocabulary.
Not set_input, and the difference is the whole point: that takes a signal connection, which is
something an installer wired a box into and the pathfinder solves through. None of these is one.
A room is never routed to AirPlay; somebody is standing in front of the television choosing it.
| Parameter | Type | Notes |
|---|---|---|
source | string |
set_channel
Only present when
has_channel_controlis declared true.
| Parameter | Type | Notes |
|---|---|---|
channel | string |
set_input
Select the input carrying a given signal connection. Issued by the pathfinder, not usually by a person.
| Parameter | Type | Notes |
|---|---|---|
connection | u32 | Signal connection id. The choices are the inputs this set reported, not the ones the manifest guessed. |
set_mute
Only present when
has_discrete_muteis declared true.
| Parameter | Type | Notes |
|---|---|---|
mute | bool |
set_volume
Only present when
has_discrete_volumeis declared true.
| Parameter | Type | Notes |
|---|---|---|
level | u32 0–100 |
volume_down
Only present when
has_volumeis declared true.
No parameters.
volume_up
Only present when
has_volumeis declared true.
No parameters.
Notifications
input_changed
| Parameter | Type | Notes |
|---|---|---|
connection | u32 |
mute_changed
| Parameter | Type | Notes |
|---|---|---|
mute | bool |
online_changed
| Parameter | Type | Notes |
|---|---|---|
online | bool |
power_changed
| Parameter | Type | Notes |
|---|---|---|
on | bool |
source_changed
The set moved to one of its own sources, or off one. source is empty when it is on a jack.
Separate from input_changed because these are not connections and must never be treated as
some: nothing is wired to AirPlay, nothing can be routed through it, and a pathfinder handed one
as a jack would solve a path to a socket that does not exist.
| Parameter | Type | Notes |
|---|---|---|
source | string |
volume_changed
| Parameter | Type | Notes |
|---|---|---|
level | u32 |
State
Last-known values core keeps for a binding of this proxy.
| Key | Type | Meaning |
|---|---|---|
built_in_sources | string[] | The set's own sources, by the names it shows. |
connection | u32 | |
mute | bool | |
on | bool | |
online | bool | |
source | string | Which of them it is on. Empty on a jack. |
volume | u32 |