summaryrefslogtreecommitdiff
path: root/src/metawatch.cpp
diff options
context:
space:
mode:
authorJavier S. Pedro <dev.git@javispedro.com>2014-09-17 01:24:22 +0200
committerJavier S. Pedro <dev.git@javispedro.com>2014-09-17 01:24:22 +0200
commitbca10d6ab21bf0e49253fc01e313a4618b7fcae7 (patch)
tree6158979ea58697412e665bef5be6bb0cc176ff35 /src/metawatch.cpp
parentffa3bc65f508aa805c82db28f90b8e0776846c1a (diff)
downloadsalmeta-bca10d6ab21bf0e49253fc01e313a4618b7fcae7.tar.gz
salmeta-bca10d6ab21bf0e49253fc01e313a4618b7fcae7.zip
Improve how notifications look
Diffstat (limited to 'src/metawatch.cpp')
-rw-r--r--src/metawatch.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/metawatch.cpp b/src/metawatch.cpp
index 9b0bae2..ff05aca 100644
--- a/src/metawatch.cpp
+++ b/src/metawatch.cpp
@@ -155,15 +155,33 @@ void MetaWatch::updateWidgetList(const QList<WidgetInfo> &widgets)
}
}
+void MetaWatch::clearModeImage(WatchMode mode, bool black)
+{
+ _transport->sendMessage(MessageLoadTemplate,
+ mode & 0x3,
+ QByteArray(1, black ? 1 : 0));
+}
+
void MetaWatch::sendModeImage(WatchMode mode, const QImage &image)
{
+ const int bytesPerLine = image.bytesPerLine();
Q_ASSERT(image.width() == 96 && image.height() == 96);
- Q_ASSERT(image.bytesPerLine() == 12);
- QByteArray data(1 + image.bytesPerLine(), '\0');//Qt::Uninitialized);
+ Q_ASSERT(bytesPerLine == 12);
+ QByteArray data(1 + bytesPerLine, '\0');
for (int i = 0; i < image.height(); i++) {
+ const uchar *scanline = image.scanLine(i);
+
+ bool empty = true;
+ for (int j = 0; j < bytesPerLine; j++) {
+ empty &= scanline[j] == 0;
+ }
+ if (empty) {
+ continue;
+ }
+
data[0] = i;
- memcpy(data.data() + 1, image.scanLine(i), image.bytesPerLine());
+ memcpy(data.data() + 1, scanline, bytesPerLine);
_transport->sendMessage(MessageWriteLcdBuffer,
0x10 | (mode & 0x3),