Oops - pass method, not result of method call!
Ah, just fail fast.
Even better, log when bad things happen.
We might get Pyro errors being raised by this RPC call, so try/except it.
Silly jrem... pass the function and not a call to it ;)
Merge with 5918c5098408425906ddb7b1cf8ff40a3c0fa0d4
Merge with 56828dc44eccae130cfa7e21d2c638379a76870d
Listener class for the Kramer 602.
Make these log messages generic.
Take a SerialDevice, not just its port, so we can (eventually) identify which device a message comes back from.
Listeners' process() methods return a map, and the superclass is responsible for dispatching the message to listeners.
Include originating device when sending an output mapping update (so we can tell if it's the main or preview switchers, etc.)
Update PC Mix button based on selected outputs.
Wire up a listener for the preview switcher.
Add a button to bring up controls for the blinds.
Start of a blinds control widget.
Up, down and back buttons for blinds.
Stub methods in controller for raising and lowering blinds/screens.
Some initial tests for the Controller.
Serial listeners should be able to specify the message size they're expecting.