summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--metawatch/metawatch.pro8
-rw-r--r--metawatch/metawatchanalog.cpp90
-rw-r--r--metawatch/metawatchanalog.h38
-rw-r--r--metawatch/metawatchplugin.cpp6
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;
}