I've been encountering issues with the virtual console cue list,
Simple Example:
- Have both a button and a vccuelist associated to the same chaser
- Start the chaser from the button
- the vccuelist is not aware of the function start
Fun Example: (not a real-world application, but I think this should work anyway)
- Have three vccuelists associated with the same chaser
- Start the 3 lists
- Anarchy (steps jumped, etc..)
It's also possible to make QLC+ crash with the Simple Example setup (1 cuelist + 1 button):
- start the chaser with the button
- click start on the cue list
- click stop on the cue list
- start the chaser with the button
-> crash !
I've been working on a fix, but I need some input.
The problem is simple: a chaserrunner can be attached to its chaser (useInternalRunner == true), or to a vccuelist (useInternalRunner == false).
Starting the chaser from a cue list or from a button has a quite different behavior under the hood.
I have two solutions in mind:
FIRST - (the one I've been working on, this one is almost done)
Remove the chaserrunner from the vccuelist, it can only be created in the chaser.
This means only one instance of chaserrunner per chaser.
The cuelist is not tightly tied to a chaserrunner, but to a chaser.
This looks more like the behavior of the simple widgets (when many buttons are attached to the same function, they all behave the same)
From my point of view, this behaves right, and every cuelist has the same visual feedback if attached to the same chaser.
SECOND -
Detach the vccuelist from the chaser state.
Each cuelist contains a chaserrunner.
Each cuelist can be at a different step.
I have not tested this, and I think this may behave like the Fun Example above
What do you think ?
Is this explanation clear enough ?
How are you today ?
I've been planning to do the FIRST solution since I added random order to chasers. I can't think of a reason for a chaser to be run several times in parallel (though I didn't think too hard :) ). If you do it, it would be great!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2014-11-13
Jano,
Thanks for the feedback, I'll finish this up and do a PR then :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2014-11-14
Kinda big PR, I spotted some potential crashes while working in there...
Hi all,
I've been encountering issues with the virtual console cue list,
Simple Example:
- Have both a button and a vccuelist associated to the same chaser
- Start the chaser from the button
- the vccuelist is not aware of the function start
Fun Example: (not a real-world application, but I think this should work anyway)
- Have three vccuelists associated with the same chaser
- Start the 3 lists
- Anarchy (steps jumped, etc..)
It's also possible to make QLC+ crash with the Simple Example setup (1 cuelist + 1 button):
- start the chaser with the button
- click start on the cue list
- click stop on the cue list
- start the chaser with the button
-> crash !
I've been working on a fix, but I need some input.
The problem is simple: a chaserrunner can be attached to its chaser (useInternalRunner == true), or to a vccuelist (useInternalRunner == false).
Starting the chaser from a cue list or from a button has a quite different behavior under the hood.
I have two solutions in mind:
FIRST - (the one I've been working on, this one is almost done)
Remove the chaserrunner from the vccuelist, it can only be created in the chaser.
This means only one instance of chaserrunner per chaser.
The cuelist is not tightly tied to a chaserrunner, but to a chaser.
This looks more like the behavior of the simple widgets (when many buttons are attached to the same function, they all behave the same)
From my point of view, this behaves right, and every cuelist has the same visual feedback if attached to the same chaser.
SECOND -
Detach the vccuelist from the chaser state.
Each cuelist contains a chaserrunner.
Each cuelist can be at a different step.
I have not tested this, and I think this may behave like the Fun Example above
What do you think ?
Is this explanation clear enough ?
How are you today ?
Edit:
Proof-of-concept code: https://github.com/plugz/qlcplus/tree/chaser_vccuelist_fix
Last edit: Anonymous 2014-11-13
David,
I've been planning to do the FIRST solution since I added random order to chasers. I can't think of a reason for a chaser to be run several times in parallel (though I didn't think too hard :) ). If you do it, it would be great!
Jano,
Thanks for the feedback, I'll finish this up and do a PR then :)
Kinda big PR, I spotted some potential crashes while working in there...
https://github.com/mcallegari/qlcplus/pull/398