summaryrefslogtreecommitdiff
path: root/src/metawatch.cpp
diff options
context:
space:
mode:
authorJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
committerJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
commitd9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 (patch)
tree8ba1186f98da2e5c06363c2dd44f65b5f6901bc7 /src/metawatch.cpp
parent9af5d200411adf947fdc1876bc76ce22789dde00 (diff)
downloadsalmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.tar.gz
salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.zip
minimal notifications
Diffstat (limited to 'src/metawatch.cpp')
-rw-r--r--src/metawatch.cpp52
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) {