Would it be possible to add the functionality where the device would maintain it's dmx values if the device were to be closed then reopened?
I've noticed that the blackout command will remain either on or off if I have one application set it, then close the device and then another app open it; however, each time the device is opened, all the channels are reset to 0.
I am wondering if a feature could be added where the device would not reset its values to 0 (for instance, if the program or computer crashed - and you just wanted to resume a show from where you left off without everything going black).
In addition, it would be nice to have a function that would return the current value of a DMX channel the device is outputting, so that if a program were to open the device and the device had channels set still, the program could read the values the device has to update its copy of the DMX universe.
A way I could see this working without breaking any existing code is as follows:
1. add a function to return the value of a set channel
2. add a function that specifies whether or not the device should reset to 0 when opened.
3. add a function to return the value of the variable set by #2
The first time the device is opened, all of the channels would be set to 0 - and as such, the default value of #2 is false.
an application could set #2 to true if they wanted to maintain the channel data across sessions - and the device would check this variable each time it is opened to determine whether or not to set all chans to 0.
if an application opens a device, it may check #3 to determine whether or not it should run through #1 to get the values of the currently set channels.
this approach should not break existing code, as nothing would change except the addition of functions.
also, I would recommend the blackout routines be incorporated into this as well (preserve from session to session) as they currently behave differently than channel values.
