MiniDisplay/minidisplay.h
author sl
Sun, 01 Jun 2014 21:15:33 +0200
changeset 23 1f607fa8542f
parent 18 79801cc3bc94
child 29 a42cc76a2d5a
permissions -rw-r--r--
Adding an option to disable frame differencing.
     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(bool frameDifferencing READ frameDifferencing WRITE setFrameDifferencing NOTIFY frameDifferencingChanged)
    23     //Debug only
    24     Q_PROPERTY(QPoint framePosition READ framePosition WRITE setFramePosition NOTIFY closed)
    25 
    26 public:
    27     //Methods
    28     Q_INVOKABLE void open();
    29     Q_INVOKABLE void close();
    30     //
    31     Q_INVOKABLE void clear();
    32     Q_INVOKABLE void fill();
    33     Q_INVOKABLE void swapBuffers();
    34     //
    35     Q_INVOKABLE void requestPowerStatus();
    36     Q_INVOKABLE void requestDeviceId();
    37     Q_INVOKABLE void requestFirmwareVersion();
    38 
    39     Q_INVOKABLE void renderOwnWindow();
    40     Q_INVOKABLE void renderWindow(QQuickWindow* aWindow);
    41     Q_INVOKABLE void renderImage(QImage* aImage);
    42     //
    43     Q_INVOKABLE void setPixel(int x, int y, bool on);
    44 
    45 
    46 
    47 
    48 public:
    49     //Properties
    50     bool isOpen();
    51     QFont font() const {return iFont;}
    52     void setFont(const QFont& aFont);
    53     //
    54     bool offScreenMode();
    55     void setOffScreenMode(bool aOn);
    56     //
    57     QString vendor();
    58     QString product();
    59     QString serialNumber();
    60     //
    61     int maxBrightness() const;
    62     int minBrightness() const;
    63     int brightness() const;
    64     void setBrightness(int aBrightness);
    65     //
    66     bool frameDifferencing() const;
    67     void setFrameDifferencing(bool aOn);
    68     //Debug only
    69     QPoint framePosition() const;
    70     void setFramePosition(const QPoint& aPoint);
    71 
    72 signals:
    73     void opened();
    74     void openError();
    75     void closing();
    76     void closed();
    77     void statusChanged();
    78     void fontChanged();
    79     void brightnessChanged();
    80     void offScreenModeChanged();
    81     void frameDifferencingChanged();
    82     //
    83     void powerStatus(bool powerOn);
    84     void deviceId(QString deviceId);
    85     void firmwareVersion(QString version);
    86 
    87 public slots:
    88     void readTimer();
    89 
    90 
    91 public:
    92     MiniDisplay(QQuickItem *parent = 0);
    93     ~MiniDisplay();
    94 
    95 private:
    96     GP1212A01A iDisplay;
    97     QFont iFont;
    98     int iReadAttempt;
    99     int iBrightness;
   100     QPoint iFramePosition;
   101 };
   102 
   103 #endif // MINIDISPLAY_H
   104