Idea: Fix for chase to end in previous values instead of it's stop values

Post Reply
dmxWolf

This is only some bits of code I've found so far that I think might work. You'd need to track down any thing else that would need to be changed to add the bool chasing(), just like flashing(). Possibly also use || efxRunning() to return previous pan/tilt values. Obviously I don't know enough about this code or C++ to know if this will work, but hopefully it will give an idea of how to do it.

In scene.cpp
Change:
/****************************************************************************
* Flashing, Chasing, or EFX
****************************************************************************/


void Scene::flash(MasterTimer* timer)
{
if (flashing() == true || chasing() == true)
return;

Q_ASSERT(timer != NULL);
Function::flash(timer);
timer->registerDMXSource(this, "Scene");
}

void Scene::unFlash(MasterTimer* timer)
{
if (flashing() == false || chasing == false)
return;

Q_ASSERT(timer != NULL);
Function::unFlash(timer);
}

void Scene::writeDMX(MasterTimer* timer, QList ua)
{
Q_ASSERT(timer != NULL);

if (flashing() == true || chasing == true)
{
// Keep HTP and LTP channels up. Flash is more or less a forceful intervention
// so enforce all values that the user has chosen to flash.
foreach (const SceneValue& sv, m_values.keys())
{
FadeChannel fc;
fc.setFixture(doc(), sv.fxi);
fc.setChannel(sv.channel);
quint32 uni = fc.universe();
if (uni != Universe::invalid())
ua[uni]->write(fc.address(), sv.value);
}
}
else
{
timer->unregisterDMXSource(this);
}
}
/**************************************************************************/

In function.cpp
add:
,m_chasing(false)
dmxWolf

Obviously you wouldn't want the chase button to always want the button itself to be a flash button, but it would be nice if flash buttons could use chases and efx's besides just scenes.
Massimo Callegari

Moved to development.
Please do not suppose we can read your mind.

Properly explain:
- the problem
- the expected behaviour
- how you tested it (eventually sharing a project)
- all the other tests you've done with your modified code to make sure you didn't break any other existing logic
dmxWolf

Sorry, I wasn't sure if it should go here or under ideas. :)

Please read this thread:
https://sourceforge.net/p/qlcplus/discu ... 245b/#e076

My post explaining this problem, the expected behaviour, ect. specifically is here:
https://sourceforge.net/p/qlcplus/discu ... 245b/#01c3

Which also lead me to discover that the "reset to 0" issue, is actually a fade issue, and not a chase issue as described here:
https://sourceforge.net/p/qlcplus/discu ... 245b/#62cb

I haven't done any tests with the modified code because my experience is in Perl, and I've never worked with C++. The code I posted is just to give someone who knows QLC+ code an idea to check out and hope it helps.

I want to say thanks for all your hard work on QLC+! It's really turning out to be the best and most powerful DMX controller available!
dmxWolf

Come to think of it, this wouldn't work, because only intensity channels get returned to their previous values. You can delete this thread.
Post Reply