diff --git a/libnymea-core/libnymea-core.pro b/libnymea-core/libnymea-core.pro index 5d4ceceb..b1f07e6e 100644 --- a/libnymea-core/libnymea-core.pro +++ b/libnymea-core/libnymea-core.pro @@ -26,6 +26,7 @@ HEADERS += nymeacore.h \ ruleengine/stateevaluator.h \ ruleengine/ruleaction.h \ ruleengine/ruleactionparam.h \ + scriptengine/scriptengine.h \ transportinterface.h \ nymeaconfiguration.h \ servermanager.h \ @@ -101,6 +102,7 @@ SOURCES += nymeacore.cpp \ ruleengine/stateevaluator.cpp \ ruleengine/ruleaction.cpp \ ruleengine/ruleactionparam.cpp \ + scriptengine/scriptengine.cpp \ transportinterface.cpp \ nymeaconfiguration.cpp \ servermanager.cpp \ diff --git a/libnymea-core/nymeacore.cpp b/libnymea-core/nymeacore.cpp index 6c98bf9c..264b40d1 100644 --- a/libnymea-core/nymeacore.cpp +++ b/libnymea-core/nymeacore.cpp @@ -98,6 +98,7 @@ #include "tagging/tagsstorage.h" #include "platform/platform.h" #include "experiences/experiencemanager.h" +#include "scriptengine/scriptengine.h" #include "devices/devicemanagerimplementation.h" #include "devices/device.h" @@ -160,6 +161,8 @@ void NymeaCore::init() { qCDebug(dcApplication) << "Creating Rule Engine"; m_ruleEngine = new RuleEngine(this); + new ScriptEngine(m_deviceManager, this); + qCDebug(dcApplication()) << "Creating Tags Storage"; m_tagsStorage = new TagsStorage(m_deviceManager, m_ruleEngine, this); diff --git a/libnymea-core/scriptengine/scriptengine.cpp b/libnymea-core/scriptengine/scriptengine.cpp new file mode 100644 index 00000000..5dd19745 --- /dev/null +++ b/libnymea-core/scriptengine/scriptengine.cpp @@ -0,0 +1,22 @@ +#include "scriptengine.h" +#include "devices/devicemanager.h" + +#include + +namespace nymeaserver { + +ScriptEngine::ScriptEngine(DeviceManager *deviceManager, QObject *parent) : QObject(parent), + m_deviceManager(deviceManager) +{ + loadScripts(); +} + +void ScriptEngine::loadScripts() +{ + QString fileName = "/home/micha/Develop/nymea/tests/script.qml"; + QQmlApplicationEngine *engine = new QQmlApplicationEngine(this); + + engine->load(fileName); +} + +} diff --git a/libnymea-core/scriptengine/scriptengine.h b/libnymea-core/scriptengine/scriptengine.h new file mode 100644 index 00000000..a5f72844 --- /dev/null +++ b/libnymea-core/scriptengine/scriptengine.h @@ -0,0 +1,27 @@ +#ifndef SCRIPTENGINE_H +#define SCRIPTENGINE_H + +#include + +class DeviceManager; + +namespace nymeaserver { + +class ScriptEngine : public QObject +{ + Q_OBJECT +public: + explicit ScriptEngine(DeviceManager *deviceManager, QObject *parent = nullptr); + +signals: + +private: + void loadScripts(); + +private: + DeviceManager *m_deviceManager = nullptr; +}; + +} + +#endif // SCRIPTENGINE_H