diff options
-rw-r--r-- | metawatch/metawatch.pro | 8 | ||||
-rw-r--r-- | metawatch/metawatchanalog.cpp | 90 | ||||
-rw-r--r-- | metawatch/metawatchanalog.h | 38 | ||||
-rw-r--r-- | metawatch/metawatchplugin.cpp | 6 |
4 files changed, 139 insertions, 3 deletions
diff --git a/metawatch/metawatch.pro b/metawatch/metawatch.pro index 366695e..96518da 100644 --- a/metawatch/metawatch.pro +++ b/metawatch/metawatch.pro @@ -16,14 +16,16 @@ SOURCES += metawatchplugin.cpp \ metawatchsimulator.cpp \ metawatchpaintengine.cpp \ metawatch.cpp \ - metawatchdigital.cpp + metawatchdigital.cpp \ + metawatchanalog.cpp HEADERS += metawatchplugin.h \ metawatchsimulatorform.h \ metawatchsimulator.h \ metawatchpaintengine.h \ metawatch.h \ - metawatchdigital.h + metawatchdigital.h \ + metawatchanalog.h FORMS += \ metawatchsimulatorform.ui @@ -73,3 +75,5 @@ unix:!symbian { } + + diff --git a/metawatch/metawatchanalog.cpp b/metawatch/metawatchanalog.cpp new file mode 100644 index 0000000..cfd8f19 --- /dev/null +++ b/metawatch/metawatchanalog.cpp @@ -0,0 +1,90 @@ +#include "metawatchanalog.h" + +using namespace sowatch; + +MetaWatchAnalog::MetaWatchAnalog(const QBluetoothAddress& address, QSettings* settings, QObject *parent) : + MetaWatch(address, settings, parent) +{ +} + +int MetaWatchAnalog::metric(PaintDeviceMetric metric) const +{ + switch (metric) { + case PdmWidth: + return screenWidth; + case PdmHeight: + return screenHeight; + case PdmWidthMM: + return 8; + case PdmHeightMM: + return 8; + case PdmNumColors: + return 2; + case PdmDepth: + return 1; + case PdmDpiX: + case PdmPhysicalDpiX: + return 96; + case PdmDpiY: + case PdmPhysicalDpiY: + return 96; + } + + return -1; +} + +QString MetaWatchAnalog::model() const +{ + return "metawatch-analog"; +} + +void MetaWatchAnalog::updateNotificationCount(Notification::Type type, int count) +{ + // Analog doesn't do anything with this +} + +void MetaWatchAnalog::updateWeather(WeatherNotification *weather) +{ + // Analog doesn't do anything with this +} + +void MetaWatchAnalog::displayIdleScreen() +{ + qDebug() << "displaying idle screen"; + MetaWatch::displayIdleScreen(); +} + +void MetaWatchAnalog::displayNotification(Notification *n) +{ + qDebug() << "display notification" << n->title() << n->body(); + + // Render the notification and display it before invoking haptic feedback + _currentMode = NotificationMode; + // TODO + + MetaWatch::displayNotification(n); +} + +void MetaWatchAnalog::displayApplication() +{ + qDebug() << "entering application mode"; + + MetaWatch::displayApplication(); +} + +void MetaWatchAnalog::update(Mode mode, const QList<QRect> &rects) +{ + if (!_connected) return; + // TODO +} + +void MetaWatchAnalog::clear(Mode mode, bool black) +{ + if (!_connected) return; + // TODO Still need to understand this +} + +void MetaWatchAnalog::handleWatchConnected() +{ + +} diff --git a/metawatch/metawatchanalog.h b/metawatch/metawatchanalog.h new file mode 100644 index 0000000..ff941c5 --- /dev/null +++ b/metawatch/metawatchanalog.h @@ -0,0 +1,38 @@ +#ifndef METAWATCHANALOG_H +#define METAWATCHANALOG_H + +#include "metawatch.h" + +namespace sowatch +{ + +class MetaWatchAnalog : public MetaWatch +{ + Q_OBJECT +public: + explicit MetaWatchAnalog(const QBluetoothAddress& address, QSettings* settings = 0, QObject *parent = 0); + + static const int screenWidth = 80; + static const int screenHeight = 16*2; + + int metric(PaintDeviceMetric metric) const; + + QString model() const; + + void updateNotificationCount(Notification::Type type, int count); + void updateWeather(WeatherNotification *weather); + + void displayIdleScreen(); + void displayNotification(Notification *notification); + void displayApplication(); + + void clear(Mode mode, bool black = false); + void update(Mode mode, const QList<QRect>& rects = QList<QRect>()); + +protected: + void handleWatchConnected(); +}; + +} + +#endif // METAWATCHANALOG_H diff --git a/metawatch/metawatchplugin.cpp b/metawatch/metawatchplugin.cpp index 5744196..5e649a9 100644 --- a/metawatch/metawatchplugin.cpp +++ b/metawatch/metawatchplugin.cpp @@ -1,6 +1,7 @@ #include <QtGui/QFontDatabase> #include <QtConnectivity/QBluetoothAddress> #include "metawatchdigital.h" +#include "metawatchanalog.h" #include "metawatchsimulator.h" #include "metawatchplugin.h" @@ -28,7 +29,7 @@ MetaWatchPlugin::~MetaWatchPlugin() QStringList MetaWatchPlugin::drivers() { QStringList d; - d << "metawatch-digital"; + d << "metawatch-digital" << "metawatch-analog"; return d; } @@ -37,6 +38,9 @@ Watch* MetaWatchPlugin::getWatch(const QString& driver, QSettings& settings, QOb if (driver == "metawatch-digital") { QBluetoothAddress address(settings.value("address").toString()); return new MetaWatchDigital(address, &settings, parent); + } else if (driver == "metawatch-analog") { + QBluetoothAddress address(settings.value("address").toString()); + return new MetaWatchAnalog(address, &settings, parent); } else { return 0; } |