Requests

You are reading the documentation for version 1.1.0. Go to the current version (1.1.6)

New in version 1.1.0.

This page is reference material for building your own control panel. If you use Companion, you do not need it: that module speaks this protocol already.

How they are sent

Requests go over the connection from the remote connection as a custom vendor request.

Vendor nameultimate-playout
Also registered asobs-playout — the old name, so panels built earlier keep working

Every request answers with ok: true.

Which playout

Every request takes an optional playout:

ValueMeaning
1–4That playout, whatever is on screen
0, or left outThe playout being driven at that moment

Leaving it out is the behaviour panels had before playouts could be addressed individually, so old buttons keep doing what they did.

The seven requests

RequestParametersDoes
goplayoutTakes the armed cue to air
stopplayoutStops that playout
arm_nextplayoutMoves the green marker one step down
arm_prevplayoutMoves it one step up
armnumber, playoutArms the cue with that number, without playing it
gotonumber, playoutArms that cue and plays it
status—Reports the playouts, see below

number is the number as it appears in the list: 3, 3.1, 3.1.2.

What status returns

count     how many playouts are switched on
playouts  one entry per playout:
            slot   1..4
            name   the output name
            color  that playout's accent colour
            cues   [ { n: "3.1", t: "Announcement 1" }, … ]

That is deliberately everything a panel needs to build itself: the names for its labels, the colour for its buttons, and the cue list for its drop-downs. A panel should not have to be told your rundown — it can ask.

Notes for implementers

Actions run on the program’s own thread. A request returns as soon as it is accepted, not when the cue is on air. Do not treat the answer as confirmation that the picture changed; read status if you need to know.

Hotkeys and requests share one layer. A go request and the GO hotkey are the same call, so behaviour cannot drift between them.

Numbers move. A cue’s number changes when the list changes shape. A panel that stores numbers should refresh them from status rather than assume last week’s are still right.