2026-08-31 13:45:54 -04:00
{
"id" : "propresenter-timers" ,
"name" : "Timers" ,
2026-09-13 13:03:30 -04:00
"version" : "1.3.0" ,
"proddash" : ">=1.4.0" ,
"description" : "Timers, Clocks, and LTC From configured Modules" ,
"provides" : [ "timers" ],
2026-09-11 10:27:08 -04:00
"permissions" : [
{ "kind" : "microphone" , "reason" : "Decoding SMPTE LTC timecode from an audio input on this machine" },
{ "kind" : "local-network" , "reason" : "Reaching ProPresenter on this network" }
],
2026-08-31 13:45:54 -04:00
"client" : "client.js" ,
"server" : "server.js" ,
"style" : "style.css" ,
2026-09-10 13:29:06 -04:00
"minSize" : { "w" : 2 , "h" : 1 },
2026-09-13 13:03:30 -04:00
"defaultSize" : { "w" : 4 , "h" : 3 },
"configGroups" : {
"ProPresenter" : {
"toggle" : "ppEnabled" ,
"help" : "The timers configured in ProPresenter, read over its network API. Enable the network in ProPresenter's Preferences › Network and enter the host and port shown there. Switch it off on a day ProPresenter isn't running and nothing is polled."
},
"LTC Timecode" : {
"toggle" : "ltcEnabled" ,
"help" : "SMPTE LTC decoded from an audio input on this machine, shown as a running timecode. Pick the device and the channel the timecode arrives on; macOS has to grant ProdDash the microphone (see the launcher's Permissions)."
},
"PCO Plan" : {
"toggle" : "pcoEnabled" ,
"help" : "Timers the PCO Plan module offers — service elapsed, current item, countdown to service — appear here under a PCO Plan heading when that module is installed and configured. Nothing to set up on this side."
}
},
2026-08-31 13:45:54 -04:00
"configSchema" : {
2026-09-13 13:03:30 -04:00
"ppEnabled" : {
"type" : "switch" ,
"label" : "ProPresenter timers" ,
"group" : "ProPresenter" ,
"default" : true
},
2026-08-31 19:33:08 +00:00
"propresenter" : {
"type" : "endpoint" ,
"label" : "ProPresenter" ,
2026-09-10 13:29:06 -04:00
"group" : "ProPresenter" ,
"default" : { "host" : "" , "port" : 1025 }
2026-08-31 13:45:54 -04:00
},
"password" : {
"type" : "password" ,
2026-09-13 13:03:30 -04:00
"label" : "API password" ,
2026-09-10 13:29:06 -04:00
"group" : "ProPresenter" ,
2026-09-13 13:03:30 -04:00
"default" : "" ,
"help" : "Only if a password is set in ProPresenter's network preferences."
2026-08-31 15:21:12 -04:00
},
2026-09-08 17:21:48 -04:00
"ltcEnabled" : {
2026-09-10 13:29:06 -04:00
"type" : "switch" ,
2026-09-13 13:03:30 -04:00
"label" : "LTC timecode" ,
2026-09-10 13:29:06 -04:00
"group" : "LTC Timecode" ,
2026-09-08 17:21:48 -04:00
"default" : false
},
"ltcDevice" : {
"type" : "select" ,
2026-09-10 13:29:06 -04:00
"label" : "Audio device" ,
"group" : "LTC Timecode" ,
"showWhen" : "ltcEnabled" ,
2026-09-08 17:21:48 -04:00
"default" : "" ,
"optionsRoute" : "/ltc/devices"
},
"ltcChannel" : {
"type" : "number" ,
2026-09-13 13:03:30 -04:00
"label" : "Channel" ,
2026-09-10 13:29:06 -04:00
"group" : "LTC Timecode" ,
"showWhen" : "ltcEnabled" ,
2026-09-13 13:03:30 -04:00
"default" : 1 ,
"help" : "The channel on that device carrying the timecode, counted from 1."
},
"pcoEnabled" : {
"type" : "switch" ,
"label" : "PCO Plan timers" ,
"group" : "PCO Plan" ,
"default" : true
},
2026-09-10 15:23:07 -04:00
"timerFont" : {
"type" : "select" ,
"label" : "Timer font" ,
"group" : "Display" ,
"default" : "default" ,
"options" : [
{ "value" : "default" , "label" : "Default (system)" },
{ "value" : "monospace" , "label" : "Monospace — steadier changing digits" }
]
2026-08-31 13:45:54 -04:00
}
2026-09-13 13:03:30 -04:00
},
"instanceGroups" : {
"Show" : { "collapsed" : false , "columns" : 2 },
2026-09-14 15:36:41 -04:00
"Clock" : { "collapsed" : false , "toggle" : "showClock" },
2026-09-13 13:03:30 -04:00
"Colours" : {
"collapsed" : true ,
"columns" : 2 ,
"help" : "The time's colour per state. Left at the default, a colour follows the dashboard theme; one you change here wins over it."
}
},
"instanceSchema" : {
"showProPresenter" : { "type" : "boolean" , "label" : "ProPresenter timers" , "default" : true , "group" : "Show" },
"showLtc" : { "type" : "boolean" , "label" : "LTC timecode" , "default" : true , "group" : "Show" },
"showModules" : { "type" : "boolean" , "label" : "Module timers" , "default" : true , "group" : "Show" },
"showHeadings" : { "type" : "boolean" , "label" : "Source headings" , "default" : true , "group" : "Show" },
"showStatus" : { "type" : "boolean" , "label" : "Status lines" , "default" : true , "group" : "Show" },
2026-09-14 15:36:41 -04:00
"showClock" : { "type" : "switch" , "label" : "Clock" , "default" : true , "group" : "Clock" },
2026-09-13 13:03:30 -04:00
"clockFormat" : {
"type" : "select" ,
"label" : "Clock format" ,
"default" : "24h" ,
"group" : "Clock" ,
"options" : [
{ "value" : "24h" , "label" : "24-hour" },
{ "value" : "12h" , "label" : "12-hour" }
]
},
"clockSeconds" : { "type" : "boolean" , "label" : "Seconds" , "default" : true , "group" : "Clock" },
"clockDate" : { "type" : "boolean" , "label" : "Date" , "default" : false , "group" : "Clock" },
"runningColor" : { "type" : "color" , "label" : "Running" , "default" : "#2ee59a" , "group" : "Colours" },
"warningColor" : { "type" : "color" , "label" : "Warning" , "default" : "#f0b429" , "group" : "Colours" },
"overrunColor" : { "type" : "color" , "label" : "Overrun" , "default" : "#f4433c" , "group" : "Colours" },
"idleColor" : { "type" : "color" , "label" : "Idle" , "default" : "#8b98a5" , "group" : "Colours" }
2026-08-31 13:45:54 -04:00
}
}