VC Cuelist : multiple instance issues

Post Reply
david garyga

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/c ... uelist_fix
Jano Svitok

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!
david garyga

Jano,

Thanks for the feedback, I'll finish this up and do a PR then :)
david garyga

Kinda big PR, I spotted some potential crashes while working in there...

https://github.com/mcallegari/qlcplus/pull/398
Post Reply