From bca10d6ab21bf0e49253fc01e313a4618b7fcae7 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Wed, 17 Sep 2014 01:24:22 +0200 Subject: Improve how notifications look --- src/metawatch.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/metawatch.cpp') 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 &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), -- cgit v1.2.3