diff options
author | Javier <dev.git@javispedro.com> | 2015-03-23 03:28:00 +0100 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-03-23 03:28:00 +0100 |
commit | 5fef356ff3fbcb76a5ec44a81a8d54d29a42f25d (patch) | |
tree | 81eb5f54b3f2fba5b33ff46634628dd1a9b3fd5b /saltoqd/systemmanager.cpp | |
download | saltoq-5fef356ff3fbcb76a5ec44a81a8d54d29a42f25d.tar.gz saltoq-5fef356ff3fbcb76a5ec44a81a8d54d29a42f25d.zip |
initial import
Diffstat (limited to 'saltoqd/systemmanager.cpp')
-rw-r--r-- | saltoqd/systemmanager.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/saltoqd/systemmanager.cpp b/saltoqd/systemmanager.cpp new file mode 100644 index 0000000..4f74ea4 --- /dev/null +++ b/saltoqd/systemmanager.cpp @@ -0,0 +1,55 @@ +#include <QtCore/QDateTime> +#include <QtCore/QTimeZone> +#include "systemmanager.h" +#include "voicecallmanager.h" + +SystemManager::SystemManager(ToqManager *toq) : + QObject(toq), _toq(toq) +{ + _toq->setEndpointListener(ToqConnection::SystemEndpoint, this); +} + +void SystemManager::handleMessage(const ToqConnection::Message &msg) +{ + Q_ASSERT(msg.destination == ToqConnection::SystemEndpoint); + switch (msg.type) { + case 0: + handleGetTimeMessage(msg); + break; + case 7: + handleSilenceMessage(msg); + break; + default: + qWarning() << "Unknown system message" << msg.type; + break; + } +} + +void SystemManager::handleGetTimeMessage(const ToqConnection::Message &msg) +{ + QJsonObject reply, time; + QDateTime dt = QDateTime::currentDateTime(); + QTimeZone tz = dt.timeZone(); + + time.insert("epoch_time", qint64(dt.toTime_t())); + time.insert("time_zone", tz.standardTimeOffset(dt)); + time.insert("dst", tz.isDaylightTime(dt) ? 1 : 0); + + reply.insert("result", int(0)); + reply.insert("description", QLatin1String("current time")); + reply.insert("time", time); + + _toq->sendReply(msg, 0x4000, reply); +} + +void SystemManager::handleSilenceMessage(const ToqConnection::Message &msg) +{ + QJsonObject reply; + + reply.insert("result", int(0)); + reply.insert("description", QLatin1String("Set to Silence Mode Request received")); + + VoiceCallManager::setSilentMode(msg.payload.object()["silence_mode"].toInt()); + + _toq->sendReply(msg, 0x4007, reply); +} |