Page 1 of 1

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

Posted: Sat Feb 14, 2015 5:50 pm
by 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)

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

Posted: Sat Feb 14, 2015 5:55 pm
by 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.

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

Posted: Sat Feb 14, 2015 6:00 pm
by 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

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

Posted: Sat Feb 14, 2015 6:33 pm
by 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!

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

Posted: Sat Feb 14, 2015 6:59 pm
by 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.