I learned a little bit of python scripting while looking at the videoswitch script, and I made a video medm screen.
Each monitor has a dropdown menu for all the common cameras we use (medm only lets you put a limited # of lines on a dropdown menu...when we want to add things like OMCR or RCT, we'll need to add another dropdown set)
Each monitor also has a readback to tell you what is on the TV. So far, the quads only say "QUAD#", not what the 4 components are.
I put a set of epics inputs in the PEM model, under a subsystem with top-names VID to represent the different monitors. The readbacks on the video screen look at these, with the names corresponding to the numbers listed in the videoswitch script. The videoswitch script now does an ezcawrite to these epics inputs so that even if you change the monitors via command line, the screen stays updated.
For example, since MC2F's camera is plugged in to Input #1 of the video matrix, if you type "./videoswitch MON1 MC2F", the script will write a "1" to the channel "C1:VID-MON1", and the screen will show "MC2F" in the Mon1 cartoon.
This required a quick recompile of the PEM model, but not the framebuilder since these were just epics channels.
There is also a dropdown menu for "Presets", which right now only include my 2 arm locking settings.
All of the dropdowns just call an iteration of the videoswitch script.