summaryrefslogtreecommitdiff
path: root/libsowatch/watch.h
diff options
context:
space:
mode:
authorJavier S. Pedro <maemo@javispedro.com>2011-09-17 03:03:23 +0200
committerJavier S. Pedro <maemo@javispedro.com>2011-09-17 03:03:23 +0200
commit3a755f46d9cf6e3650d40a960d0d0db8c1ad9fa1 (patch)
treef330f63caec08b6626c808b5ae70c64cab0246a6 /libsowatch/watch.h
parent0dca79a8c15b76ca53617c0ed3396ab6435f0152 (diff)
downloadsowatch-3a755f46d9cf6e3650d40a960d0d0db8c1ad9fa1.tar.gz
sowatch-3a755f46d9cf6e3650d40a960d0d0db8c1ad9fa1.zip
preparing for library package
Diffstat (limited to 'libsowatch/watch.h')
-rw-r--r--libsowatch/watch.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/libsowatch/watch.h b/libsowatch/watch.h
new file mode 100644
index 0000000..3581ada
--- /dev/null
+++ b/libsowatch/watch.h
@@ -0,0 +1,49 @@
+#ifndef WATCH_H
+#define WATCH_H
+
+#include <QtCore/QObject>
+#include <QtGui/QPaintDevice>
+#include <QtGui/QImage>
+
+namespace sowatch
+{
+
+class Watch : public QObject, public QPaintDevice
+{
+ Q_OBJECT
+ Q_PROPERTY(QString model READ model)
+ Q_PROPERTY(bool connected READ isConnected)
+public:
+ explicit Watch(const QImage& image, QObject* parent = 0);
+ ~Watch();
+
+ QPaintEngine* paintEngine() const;
+ int metric(PaintDeviceMetric metric) const;
+
+ Q_INVOKABLE virtual QString model() const = 0;
+ Q_INVOKABLE virtual bool isConnected() const = 0;
+
+ /** Indicates if watch is too busy atm and we should limit frame rate. */
+ Q_INVOKABLE virtual bool busy() const = 0;
+
+signals:
+ void connected();
+ void disconnected();
+ void buttonPressed(int button);
+ void buttonReleased(int button);
+
+public slots:
+ virtual void update(const QList<QRect>& rects) = 0;
+ virtual void update(const QRect& rect);
+ virtual void vibrate(bool on) = 0;
+
+protected:
+ QImage _image;
+ mutable QPaintEngine* _paintEngine;
+
+friend class WatchPaintEngine;
+};
+
+}
+
+#endif // WATCH_H