Added skeleton for effect engine development

Former-commit-id: e1fb69fd4de4b8968075660e3ba7f7add021c152
This commit is contained in:
johan
2013-11-24 16:10:48 +01:00
parent 333cecdca8
commit 5454ddb375
19 changed files with 304 additions and 12 deletions

View File

@@ -0,0 +1,31 @@
# Define the current source locations
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/effectengine)
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/effectengine)
# Group the headers that go through the MOC compiler
SET(EffectEngineQT_HEADERS
${CURRENT_HEADER_DIR}/EffectEngine.h
${CURRENT_SOURCE_DIR}/Effect.h
)
SET(EffectEngineHEADERS
)
SET(EffectEngineSOURCES
${CURRENT_SOURCE_DIR}/EffectEngine.cpp
${CURRENT_SOURCE_DIR}/Effect.cpp
)
QT4_WRAP_CPP(EffectEngineHEADERS_MOC ${EffectEngineQT_HEADERS})
add_library(effectengine
${EffectEngineHEADERS}
${EffectEngineQT_HEADERS}
${EffectEngineHEADERS_MOC}
${EffectEngineSOURCES}
)
target_link_libraries(effectengine
hyperion
${QT_LIBRARIES})

View File

@@ -0,0 +1,10 @@
#include "Effect.h"
Effect::Effect()
{
}
Effect::~Effect()
{
}

View File

@@ -0,0 +1,12 @@
#pragma once
#include <QObject>
class Effect : public QObject
{
Q_OBJECT
public:
Effect();
virtual ~Effect();
};

View File

@@ -0,0 +1,42 @@
#include <effectengine/EffectEngine.h>
EffectEngine::EffectEngine(Hyperion * hyperion) :
_hyperion(hyperion),
_availableEffects()
{
// connect the Hyperion channel clear feedback
connect(_hyperion, SIGNAL(channelCleared(int)), this, SLOT(channelCleared(int)));
connect(_hyperion, SIGNAL(allChannelsCleared()), this, SLOT(allChannelsCleared()));
// read all effects
_availableEffects["test"] = "test.py";
}
EffectEngine::~EffectEngine()
{
}
std::list<std::string> EffectEngine::getEffects() const
{
std::list<std::string> effectNames;
foreach (auto entry, _availableEffects) {
effectNames.push_back(entry.first);
}
return effectNames;
}
int EffectEngine::runEffect(const std::string &effectName, int priority, int timeout)
{
std::cout << "run effect " << effectName << " on channel " << priority << std::endl;
return 0;
}
void EffectEngine::channelCleared(int priority)
{
std::cout << "clear effect on channel " << priority << std::endl;
}
void EffectEngine::allChannelsCleared()
{
std::cout << "clear effect on every channel" << std::endl;
}