Files
T
torstenandCopilot b774f4035c Qt6 Migration: DDS-Stubs, Logger-Fixes, Export-Header Korrekturen
- NGL_ADD_LIBRARY2: 87 CMakeLists.txt konvertiert für Export-Header Generierung
- 44 Export-Header Include-Pfade korrigiert (_export.h)
- 81 DDS-Stub-Header generiert (*_dtc.h, *_fts.h, *_dts.h, *_ftc.h)
- INGLLogger: Duplikat gelöscht, m_logger Member entfernt, variadische Makros
- Q_FUNC_INFO Redefinition behoben (Qt6 definiert bereits)
- FATAL_LOG Makro hinzugefügt
- InfrastructureManagement DDS-Stubs (ism.hpp, ism_enums.hpp, ism_ftc.h)
- FilterManagement DDS-Stubs (flt_ftc.h, flt_dts.h)
- AreaEffectSimulation DDS-Stubs (aes.hpp, aes_enums.hpp)
- SymbolAppearance Klasse vollständig definiert mit content() Methode
- BuildingComponentFilter Klasse definiert mit Copy-Konstruktor
- Ftc Factory: nullptr Return (abstract class)
- AesFilter Klasse in aes.hpp hinzugefügt
- Dtc Klasse in ppm.hpp mit participantChanged Signal
- AesType Enum: alle 15 At* Werte definiert
- AesEffectState_def: EsReceived hinzugefügt
- DataModification Enum: eAdded/eModified/eRemoved
- function_reply_object.h → core_types.h Include-Pfad (72 Dateien)
- Enum-Class-Streaming Template-Operator in INGLLogger.h
- ism_mounting_point.h: QImage → QtGui/QImage, QGuiApplication/QScreen
- ism_data_plugin_interface.h: QSet Include, Include-Reihenfolge
- QRegExp → QRegularExpression in tpm_js_parser.cpp
- .underlying() Aufrufe zu direktem Enum-Vergleich korrigiert
- Include-Pfade: aes.hpp in symbol_appearance_settings_impl.h und aes_display_filter_impl.h

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-19 06:06:24 +02:00

134 lines
3.1 KiB
C++
Executable File

#include "handeleffect.h"
#include <QUrlQuery>
#include <QTimer>
namespace BuildingControlUnit
{
HandelEffect::HandelEffect(QObject *parent, const QString &loggerchannel)
: QObject(parent)
, m_logger(getLogger(QStringLiteral("HandelSingleEffect.") + loggerchannel))
{
}
bool HandelEffect::init(const QVector<Action *> &actions, int repetitions = 1)
{
if (actions.isEmpty())
return false;
m_actions = actions;
m_currentAction = nullptr;
m_repeatCount = repetitions;
return true;
}
void HandelEffect::handleEffect()
{
if (!m_currentAction)
{
if (m_repeatCount != 0)
{
m_currentAction = m_actions.first();
--m_repeatCount;
}
else
{
emit effectReady();
deleteLater();
return;
}
}
else
{
int index = m_actions.indexOf(m_currentAction);
++index;
m_currentAction = m_actions.value(index, nullptr);
if (!m_currentAction)
{
QTimer::singleShot(0, this, &HandelEffect::handleEffect);
return;
}
}
switch (m_currentAction->aclass)
{
case AC_Unset:
DEBUG_LOG() << "---- This is unset ----";
break;
case AC_Standard:
{
DEBUG_LOG() << "---- This is a standard Action ----";
if (!m_currentAction->url.isEmpty())
{
DEBUG_LOG() << "---- emit newHttpRequest(a->url):" << m_currentAction->url.toString();
emit newHttpRequest(m_currentAction->url);
}
break;
}
case AC_Repeat:
{
DEBUG_LOG() << "---- This is a Repeat Action";
const RepeatAction *ra = static_cast<const RepeatAction *>(m_currentAction);
HandelEffect *he = new HandelEffect(this);
he->init(ra->actions, ra->count);
connect(he, &HandelEffect::effectReady, this, &HandelEffect::handleEffect);
connect(he, &HandelEffect::newHttpRequest, this, &HandelEffect::newHttpRequest);
connect(he, &HandelEffect::triggerAllFlashlights, this, &HandelEffect::triggerAllFlashlights);
QTimer::singleShot(0, he, &HandelEffect::handleEffect);
return;
}
case AC_Pause:
{
const PauseAction *pa = static_cast<const PauseAction *>(m_currentAction);
DEBUG_LOG() << "---- This is a Pause Action Pause=" << pa->pause
<< " comment=" << pa->comment;
QTimer::singleShot(pa->pause, this, &HandelEffect::handleEffect);
return;
}
case AC_Bsm:
{
DEBUG_LOG() << "---- This is a Bsm Action ";
const BsmAction *ba = static_cast<const BsmAction*>(m_currentAction);
if (!ba->isNull())
{
DEBUG_LOG() << "emit triggerAllFlashlights ------ atype=" << m_currentAction->atype
<< " pause=" << ba->pause
<< " choplength=" << ba->choplength
<< " pulses=" << ba->pulses
<< " pulseduration=" << ba->pulseduration
<< " comment=" << ba->comment
<< " this: " << this;
emit triggerAllFlashlights(ba->pulses, ba->pause, ba->choplength, ba->pulseduration);
}
break;
}
default:
break;
}
DEBUG_LOG() << "--- End Action ";
QTimer::singleShot(0, this, &HandelEffect::handleEffect);
}
}