diff options
author | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-15 01:53:44 +0200 |
---|---|---|
committer | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-15 01:53:44 +0200 |
commit | d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 (patch) | |
tree | 8ba1186f98da2e5c06363c2dd44f65b5f6901bc7 /src/metawatch.cpp | |
parent | 9af5d200411adf947fdc1876bc76ce22789dde00 (diff) | |
download | salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.tar.gz salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.zip |
minimal notifications
Diffstat (limited to 'src/metawatch.cpp')
-rw-r--r-- | src/metawatch.cpp | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/src/metawatch.cpp b/src/metawatch.cpp index b6042af..9b0bae2 100644 --- a/src/metawatch.cpp +++ b/src/metawatch.cpp @@ -1,6 +1,8 @@ #include <QtCore/QDataStream> #include <QtCore/QDateTime> #include <QtCore/QDebug> +#include <QtCore/QThread> +#include <QtGui/QImage> #include "metawatch.h" #include "metawatchbletransport.h" @@ -16,15 +18,16 @@ MetaWatch::MetaWatch(const QString &btAddr, QObject *parent) : connect(_transport, &MetaWatchTransport::messageReceived, this, &MetaWatch::handleTransportMessage); } -QList<QUrl> MetaWatch::availableClocks() +void MetaWatch::setVibrateMode(bool enable, int on_duration, int off_duration, int cycles) { - QList<QUrl> clocks; + QByteArray data; + QDataStream s(&data, QIODevice::WriteOnly); + s.setByteOrder(QDataStream::LittleEndian); - for (int i = 0; i < 6; i++) { - clocks << QUrl("clock://" + QString::number(i)); - } + s << quint8(enable ? 1 : 0); + s << quint16(on_duration) << quint16(off_duration) << quint8(cycles); - return clocks; + _transport->sendMessage(MessageSetVibrateMode, 0, data); } void MetaWatch::setDateTime(const QDateTime &dt) @@ -34,6 +37,7 @@ void MetaWatch::setDateTime(const QDateTime &dt) QByteArray data; QDataStream s(&data, QIODevice::WriteOnly); s.setByteOrder(QDataStream::BigEndian); + s << quint16(date.year()) << quint8(date.month()) << quint8(date.day()); s << quint8(date.dayOfWeek() % 7); s << quint8(time.hour()) << quint8(time.minute()) << quint8(time.second()); @@ -71,6 +75,14 @@ void MetaWatch::updateLcdDisplayPage(int page) QByteArray()); } +void MetaWatch::updateLcdDisplayMode(WatchMode mode) +{ + Q_ASSERT(mode != WatchModeIdle); // TODO + _transport->sendMessage(MessageUpdateLcdDisplay, + (mode & 0x3), + QByteArray()); +} + void MetaWatch::updateWidgetList(const QList<WidgetInfo> &widgets) { int num_widgets = 0; @@ -143,6 +155,22 @@ void MetaWatch::updateWidgetList(const QList<WidgetInfo> &widgets) } } +void MetaWatch::sendModeImage(WatchMode mode, const QImage &image) +{ + Q_ASSERT(image.width() == 96 && image.height() == 96); + Q_ASSERT(image.bytesPerLine() == 12); + QByteArray data(1 + image.bytesPerLine(), '\0');//Qt::Uninitialized); + + for (int i = 0; i < image.height(); i++) { + data[0] = i; + memcpy(data.data() + 1, image.scanLine(i), image.bytesPerLine()); + + _transport->sendMessage(MessageWriteLcdBuffer, + 0x10 | (mode & 0x3), + data); + } +} + void MetaWatch::connectDevice() { _transport->connectDevice(); @@ -153,18 +181,6 @@ void MetaWatch::disconnectDevice() _transport->disconnectDevice(); } -int MetaWatch::clockUrlToClockId(const QUrl &url) -{ - if (url.scheme() != "clock") - return -1; - - QString host = url.host(); - if (!host.startsWith("clock")) - return -1; - - return host.mid(5).toInt(); -} - void MetaWatch::handleTransportMessage(quint8 type, quint8 options, const QByteArray &payload) { switch (type) { |