From c7800b90ff9090b55ae91d40010c1a201069d2ac Mon Sep 17 00:00:00 2001 From: Micke Prag Date: Thu, 12 May 2011 15:33:49 +0000 Subject: [PATCH] Implemented TDSensorEvent in com.telldus.core --- telldus-gui/Plugins/TelldusCore/tellduscoreobject.cpp | 9 ++++++++- telldus-gui/Plugins/TelldusCore/tellduscoreobject.h | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/telldus-gui/Plugins/TelldusCore/tellduscoreobject.cpp b/telldus-gui/Plugins/TelldusCore/tellduscoreobject.cpp index ada1a586..cb6c925b 100644 --- a/telldus-gui/Plugins/TelldusCore/tellduscoreobject.cpp +++ b/telldus-gui/Plugins/TelldusCore/tellduscoreobject.cpp @@ -7,11 +7,13 @@ TelldusCoreObject::TelldusCoreObject( QObject * parent ) tdInit(); deviceEventId = tdRegisterDeviceEvent(reinterpret_cast(&TelldusCoreObject::deviceEventCallback), this); deviceChangeEventId = tdRegisterDeviceChangeEvent(reinterpret_cast(&TelldusCoreObject::deviceChangeEventCallback), this); + sensorEventId = tdRegisterSensorEvent(reinterpret_cast(&TelldusCoreObject::sensorEventCallback), this); } TelldusCoreObject::~TelldusCoreObject() { tdUnregisterCallback(deviceEventId); tdUnregisterCallback(deviceChangeEventId); + tdUnregisterCallback(sensorEventId); tdClose(); } @@ -108,7 +110,6 @@ void TelldusCoreObject::triggerError(int deviceId, int errorId) { emit errorOccurred(deviceId, errorId, message); } - void WINAPI TelldusCoreObject::deviceChangeEventCallback(int deviceId, int eventId, int changeType, int callbackId, void *context) { TelldusCoreObject *parent = static_cast(context); if (parent) { @@ -123,3 +124,9 @@ void WINAPI TelldusCoreObject::deviceEventCallback(int deviceId, int method, con } } +void WINAPI TelldusCoreObject::sensorEventCallback(const char *protocol, const char *model, int id, int dataType, const char *value, int timestamp, int callbackId, void *context) { + TelldusCoreObject *parent = static_cast(context); + if (parent) { + emit parent->sensorEvent(QString::fromUtf8(protocol), QString::fromUtf8(model), id, dataType, QString::fromUtf8(value), timestamp); + } +} diff --git a/telldus-gui/Plugins/TelldusCore/tellduscoreobject.h b/telldus-gui/Plugins/TelldusCore/tellduscoreobject.h index d8e14a78..83515258 100644 --- a/telldus-gui/Plugins/TelldusCore/tellduscoreobject.h +++ b/telldus-gui/Plugins/TelldusCore/tellduscoreobject.h @@ -14,6 +14,7 @@ public: signals: void deviceChange( int deviceId, int eventId ); void deviceEvent( int deviceId, int method, const QString &data ); + void sensorEvent( const QString &protocol, const QString &model, int id, int dataType, const QString &value, int timestamp); void errorOccurred( int deviceId, int errorId, const QString &errorString ); public slots: @@ -37,9 +38,11 @@ private: static void WINAPI deviceChangeEventCallback(int deviceId, int eventId, int changeType, int callbackId, void *context); static void WINAPI deviceEventCallback(int deviceId, int method, const char *data, int callbackId, void *context); + static void WINAPI sensorEventCallback(const char *protocol, const char *model, int id, int dataType, const char *value, int timestamp, int callbackId, void *context); int deviceEventId; int deviceChangeEventId; + int sensorEventId; };