ProPresenter's HTTP API has no timecode route (verified: 21.4 returns 404), but its classic stage-display websocket still answers — so LTC now comes from a stage layout field labeled "LTC": a zero-dependency RFC6455 client (stage-ws.js) authenticates (new stagePassword admin config), resolves the LTC-labeled frame's uid from the layout list, and treats any message carrying that uid as the timecode text. "Receiving" is a 2.5s staleness heuristic; frozen or placeholder text reads as no-signal. The HTTP probe stays authoritative when it ever answers (a 404 verdict is retried once a minute), and the LTC card surfaces the reason when timecode is unavailable (bad stage password, no LTC field). pp-timers-mock grows a /stagedisplay websocket with --stage-pwd and --no-ltc-field to exercise every path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
29 lines
735 B
JSON
29 lines
735 B
JSON
{
|
|
"id": "propresenter-timers",
|
|
"name": "Timers",
|
|
"version": "1.0.0",
|
|
"description": "Live ProPresenter timers and LTC timecode",
|
|
"client": "client.js",
|
|
"server": "server.js",
|
|
"style": "style.css",
|
|
"minSize": { "w": 2, "h": 1 },
|
|
"defaultSize": { "w": 4, "h": 2 },
|
|
"configSchema": {
|
|
"propresenter": {
|
|
"type": "endpoint",
|
|
"label": "ProPresenter",
|
|
"default": { "host": "", "port": 1025 }
|
|
},
|
|
"password": {
|
|
"type": "password",
|
|
"label": "API password (only if set in ProPresenter)",
|
|
"default": ""
|
|
},
|
|
"stagePassword": {
|
|
"type": "password",
|
|
"label": "Stage display password (for LTC — ProPresenter Settings → Network)",
|
|
"default": ""
|
|
}
|
|
}
|
|
}
|