MiniDisplay/minidisplay.h
author sl
Thu, 29 May 2014 19:46:57 +0200
changeset 18 79801cc3bc94
parent 16 35f01a0d460a
child 23 1f607fa8542f
permissions -rw-r--r--
Restoring some of our on-screen functionality for debug purposes.
We could prove that updating a single pixel is much faster than updating our
whole screen. Single pixel updates runs at full 24 FPS.
     1 #ifndef MINIDISPLAY_H
     2 #define MINIDISPLAY_H
     3 
     4 #include <QQuickItem>
     5 #include <QQuickWindow>
     6 #include "FutabaVfd.h"
     7 
     8 class MiniDisplay : public QQuickItem
     9 {
    10     Q_OBJECT
    11     Q_DISABLE_COPY(MiniDisplay)
    12     //
    13     Q_PROPERTY(bool isOpen READ isOpen NOTIFY statusChanged)
    14     Q_PROPERTY(bool offScreenMode READ offScreenMode WRITE setOffScreenMode NOTIFY offScreenModeChanged)
    15     Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
    16     Q_PROPERTY(QString vendor READ vendor)
    17     Q_PROPERTY(QString product READ product)
    18     Q_PROPERTY(QString serialNumber READ serialNumber)
    19     Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
    20     Q_PROPERTY(int maxBrightness READ maxBrightness NOTIFY opened)
    21     Q_PROPERTY(int minBrightness READ minBrightness NOTIFY opened)
    22     Q_PROPERTY(QPoint framePosition READ framePosition WRITE setFramePosition NOTIFY closed)
    23 
    24 public:
    25     //Methods
    26     Q_INVOKABLE void open();
    27     Q_INVOKABLE void close();
    28     //
    29     Q_INVOKABLE void clear();
    30     Q_INVOKABLE void fill();
    31     Q_INVOKABLE void swapBuffers();
    32     //
    33     Q_INVOKABLE void requestPowerStatus();
    34     Q_INVOKABLE void requestDeviceId();
    35     Q_INVOKABLE void requestFirmwareVersion();
    36 
    37     Q_INVOKABLE void renderOwnWindow();
    38     Q_INVOKABLE void renderWindow(QQuickWindow* aWindow);
    39     Q_INVOKABLE void renderImage(QImage* aImage);
    40     //
    41     Q_INVOKABLE void setPixel(int x, int y, bool on);
    42 
    43 
    44 
    45 
    46 public:
    47     //Properties
    48     bool isOpen();
    49     QFont font() const {return iFont;}
    50     void setFont(const QFont& aFont);
    51     //
    52     bool offScreenMode();
    53     void setOffScreenMode(bool aOn);
    54     //
    55     QString vendor();
    56     QString product();
    57     QString serialNumber();
    58     //
    59     int maxBrightness() const;
    60     int minBrightness() const;
    61     int brightness() const;
    62     void setBrightness(int aBrightness);
    63     //
    64     QPoint framePosition() const;
    65     void setFramePosition(const QPoint& aPoint);
    66 
    67 signals:
    68     void opened();
    69     void openError();
    70     void closing();
    71     void closed();
    72     void statusChanged();
    73     void fontChanged();
    74     void brightnessChanged();
    75     void offScreenModeChanged();
    76     //
    77     void powerStatus(bool powerOn);
    78     void deviceId(QString deviceId);
    79     void firmwareVersion(QString version);
    80 
    81 public slots:
    82     void readTimer();
    83 
    84 
    85 public:
    86     MiniDisplay(QQuickItem *parent = 0);
    87     ~MiniDisplay();
    88 
    89 private:
    90     GP1212A01A iDisplay;
    91     QFont iFont;
    92     int iReadAttempt;
    93     int iBrightness;
    94     QPoint iFramePosition;
    95 };
    96 
    97 #endif // MINIDISPLAY_H
    98