mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Added skeleton for effect engine development
Former-commit-id: e1fb69fd4de4b8968075660e3ba7f7add021c152
This commit is contained in:
31
libsrc/effectengine/CMakeLists.txt
Normal file
31
libsrc/effectengine/CMakeLists.txt
Normal 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})
|
10
libsrc/effectengine/Effect.cpp
Normal file
10
libsrc/effectengine/Effect.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "Effect.h"
|
||||
|
||||
Effect::Effect()
|
||||
{
|
||||
}
|
||||
|
||||
Effect::~Effect()
|
||||
{
|
||||
}
|
||||
|
12
libsrc/effectengine/Effect.h
Normal file
12
libsrc/effectengine/Effect.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class Effect : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Effect();
|
||||
virtual ~Effect();
|
||||
};
|
42
libsrc/effectengine/EffectEngine.cpp
Normal file
42
libsrc/effectengine/EffectEngine.cpp
Normal 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;
|
||||
}
|
Reference in New Issue
Block a user