From aa1c0fd3146b4ed055d181c99d52463afa6bedbb Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Fri, 16 Sep 2011 17:47:24 +0200 Subject: Initial import --- metawatchsimulator.cpp | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 metawatchsimulator.cpp (limited to 'metawatchsimulator.cpp') diff --git a/metawatchsimulator.cpp b/metawatchsimulator.cpp new file mode 100644 index 0000000..1cf7def --- /dev/null +++ b/metawatchsimulator.cpp @@ -0,0 +1,72 @@ +#include +#include + +#include "metawatchsimulator.h" + +#define SIMULATE_DAMAGES 1 + +using namespace sowatch; + +MetaWatchSimulator::MetaWatchSimulator(QObject *parent) : + WatchSimulator(QImage(96, 96, QImage::Format_Mono), parent), + _screen(96, 96), + _form(new MetaWatchSimulatorForm) +{ + _form->showNormal(); + connect(_form, SIGNAL(destroyed()), SIGNAL(disconnected())); + connect(_form, SIGNAL(buttonPressed(int)), SIGNAL(buttonPressed(int))); + connect(_form, SIGNAL(buttonReleased(int)), SIGNAL(buttonReleased(int))); +} + +MetaWatchSimulator::~MetaWatchSimulator() +{ + delete _form; +} + +QString MetaWatchSimulator::model() const +{ + return "metawatch-digital"; +} + +bool MetaWatchSimulator::isConnected() const +{ + return true; +} + +bool MetaWatchSimulator::busy() const +{ + return false; +} + +void MetaWatchSimulator::update(const QList &rects) +{ +#if SIMULATE_DAMAGES + const QRect imageRect = _image.rect(); + QPainter p; + QVector rows(96, false); + unsigned total = 0; + + p.begin(&_screen); + foreach (const QRect& rect, rects) { + QRect r = rect.intersect(imageRect); + for (int i = r.top(); i <= r.bottom(); i++) { + rows[i] = true; + } + total += r.width() * r.height(); + + p.drawImage(r, _image, r); + } + p.end(); + + _form->refreshScreen(_screen); + + qDebug() << "updated " << total << " pixels " << rows.count(true) << " lines"; +#else + _form->refreshScreen(QPixmap::fromImage(_image)); +#endif +} + +void MetaWatchSimulator::vibrate(bool on) +{ + +} -- cgit v1.2.3