MiniDisplay/minidisplay.h
author sl
Wed, 04 Jun 2014 18:30:37 +0200
changeset 33 cf5eba52cb1d
parent 29 a42cc76a2d5a
permissions -rw-r--r--
Marquee loop can now be paused and resumed.
Cleaning up our MiniDisplay coneection to render loop API.
sl@2
     1
#ifndef MINIDISPLAY_H
sl@2
     2
#define MINIDISPLAY_H
sl@2
     3
sl@2
     4
#include <QQuickItem>
sl@15
     5
#include <QQuickWindow>
sl@4
     6
#include "FutabaVfd.h"
sl@2
     7
sl@2
     8
class MiniDisplay : public QQuickItem
sl@2
     9
{
sl@2
    10
    Q_OBJECT
sl@2
    11
    Q_DISABLE_COPY(MiniDisplay)
sl@4
    12
    //
sl@5
    13
    Q_PROPERTY(bool isOpen READ isOpen NOTIFY statusChanged)
sl@18
    14
    Q_PROPERTY(bool offScreenMode READ offScreenMode WRITE setOffScreenMode NOTIFY offScreenModeChanged)
sl@5
    15
    Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged)
sl@8
    16
    Q_PROPERTY(QString vendor READ vendor)
sl@8
    17
    Q_PROPERTY(QString product READ product)
sl@8
    18
    Q_PROPERTY(QString serialNumber READ serialNumber)
sl@10
    19
    Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged)
sl@10
    20
    Q_PROPERTY(int maxBrightness READ maxBrightness NOTIFY opened)
sl@10
    21
    Q_PROPERTY(int minBrightness READ minBrightness NOTIFY opened)
sl@23
    22
    Q_PROPERTY(bool frameDifferencing READ frameDifferencing WRITE setFrameDifferencing NOTIFY frameDifferencingChanged)
sl@23
    23
    //Debug only
sl@11
    24
    Q_PROPERTY(QPoint framePosition READ framePosition WRITE setFramePosition NOTIFY closed)
sl@4
    25
sl@4
    26
public:
sl@5
    27
    //Methods
sl@4
    28
    Q_INVOKABLE void open();
sl@4
    29
    Q_INVOKABLE void close();
sl@4
    30
    //
sl@4
    31
    Q_INVOKABLE void clear();
sl@4
    32
    Q_INVOKABLE void fill();
sl@4
    33
    Q_INVOKABLE void swapBuffers();
sl@9
    34
    //
sl@9
    35
    Q_INVOKABLE void requestPowerStatus();
sl@9
    36
    Q_INVOKABLE void requestDeviceId();
sl@9
    37
    Q_INVOKABLE void requestFirmwareVersion();
sl@4
    38
sl@15
    39
    Q_INVOKABLE void renderOwnWindow();
sl@15
    40
    Q_INVOKABLE void renderWindow(QQuickWindow* aWindow);
sl@15
    41
    Q_INVOKABLE void renderImage(QImage* aImage);
sl@16
    42
    //
sl@33
    43
    Q_INVOKABLE void connectRenderLoop(QQuickWindow* aWindow, QJSValue aFunction);
sl@33
    44
    Q_INVOKABLE void disconnectRenderLoop();
sl@29
    45
    //
sl@16
    46
    Q_INVOKABLE void setPixel(int x, int y, bool on);
sl@16
    47
sl@16
    48
sl@16
    49
sl@15
    50
sl@5
    51
public:
sl@5
    52
    //Properties
sl@5
    53
    bool isOpen();
sl@5
    54
    QFont font() const {return iFont;}
sl@5
    55
    void setFont(const QFont& aFont);
sl@8
    56
    //
sl@18
    57
    bool offScreenMode();
sl@18
    58
    void setOffScreenMode(bool aOn);
sl@18
    59
    //
sl@8
    60
    QString vendor();
sl@8
    61
    QString product();
sl@8
    62
    QString serialNumber();
sl@10
    63
    //
sl@10
    64
    int maxBrightness() const;
sl@10
    65
    int minBrightness() const;
sl@10
    66
    int brightness() const;
sl@10
    67
    void setBrightness(int aBrightness);
sl@11
    68
    //
sl@23
    69
    bool frameDifferencing() const;
sl@23
    70
    void setFrameDifferencing(bool aOn);
sl@23
    71
    //Debug only
sl@11
    72
    QPoint framePosition() const;
sl@11
    73
    void setFramePosition(const QPoint& aPoint);
sl@5
    74
sl@29
    75
public slots:
sl@29
    76
    void onAfterAnimating();
sl@29
    77
sl@4
    78
signals:
sl@5
    79
    void opened();
sl@5
    80
    void openError();
sl@11
    81
    void closing();
sl@5
    82
    void closed();
sl@5
    83
    void statusChanged();
sl@5
    84
    void fontChanged();
sl@10
    85
    void brightnessChanged();
sl@18
    86
    void offScreenModeChanged();
sl@23
    87
    void frameDifferencingChanged();
sl@9
    88
    //
sl@9
    89
    void powerStatus(bool powerOn);
sl@9
    90
    void deviceId(QString deviceId);
sl@9
    91
    void firmwareVersion(QString version);
sl@9
    92
sl@9
    93
public slots:
sl@9
    94
    void readTimer();
sl@9
    95
sl@2
    96
sl@2
    97
public:
sl@2
    98
    MiniDisplay(QQuickItem *parent = 0);
sl@2
    99
    ~MiniDisplay();
sl@4
   100
sl@4
   101
private:
sl@4
   102
    GP1212A01A iDisplay;
sl@5
   103
    QFont iFont;
sl@9
   104
    int iReadAttempt;
sl@10
   105
    int iBrightness;
sl@11
   106
    QPoint iFramePosition;
sl@29
   107
    QJSValue iAfterAnimatingCallback;
sl@29
   108
    QQuickWindow* iWindow;
sl@33
   109
    int iFrameCount;
sl@2
   110
};
sl@2
   111
sl@2
   112
#endif // MINIDISPLAY_H
sl@2
   113