Shows, Snapshots and Cues
Shows and their snapshots/cues can be loaded by providing their names to the following method calls. There will be no check whether a show with the given name actually exists. Information about the currently loaded show, snapshot or cue is also available.
The ShowController object is available in conn.shows and supports these operations:
| Call | Description |
|---|---|
currentShow$ | Currently loaded show |
currentSnapshot$ | Currently loaded snapshot |
currentCue$ | Currently loaded cue |
shows$ | All shows with their snapshots and cues (see below) |
loadShow(showName) | Load a show by its name |
loadSnapshot(showName, snapshotName) | Load a snapshot in a show by its name |
loadCue(showName, cueName) | Load a cue in a show by its name |
saveSnapshot(showName, snapshotName) | Save a snapshot in a show. This will overwrite an existing snapshot. |
saveCue(showName, cueName) | Save a cue in a show. This will overwrite an existing cue. |
updateCurrentSnapshot() | Update/overwrite the currently loaded snapshot |
updateCurrentCue() | Update/overwrite the currently loaded cue |
refreshShows() | Request the current shows and their snapshots/cues from the mixer |
Please be aware that no confirmation is required when snapshots or cues are saved. Be careful not to overwrite existing parts by accident.
Listing shows, snapshots and cues
Unlike fader levels or mute states, the available shows and their snapshots/cues are not part of the global mixer state. The mixer sends this information per-client and only on request. The library requests it automatically whenever the connection is (re-)established, so shows$ emits as soon as the data arrives. Call refreshShows() to refresh it manually.
shows$ emits a map of show name to its snapshots and cues. As snapshots and cues are not hierarchical, they are listed side by side for each show:
conn.shows.shows$.subscribe(shows => console.log(shows));
// {
// Default: { snapshots: ['* Init *', 'snap2'], cues: ['test'] },
// testshow: { snapshots: [], cues: [] }
// }
The Mixer Web App shows a hierarchical order of Show > Snapshot > Cue. However, in the protocol, cues are contained in shows, which is why loadCue() accepts a show and a cue as parameters, but no snapshot.