Changes to night mode handling:
[harmattan/cameraplus] / imports / mode.h
1 // -*- c++ -*-
2
3 #ifndef MODE_H
4 #define MODE_H
5
6 #include <QObject>
7
8 class Camera;
9 class QImage;
10 class QtCamMode;
11
12 class Mode : public QObject {
13   Q_OBJECT
14
15   Q_PROPERTY(Camera* camera READ camera WRITE setCamera NOTIFY cameraChanged);
16   Q_PROPERTY(bool canCapture READ canCapture NOTIFY canCaptureChanged);
17   Q_PROPERTY(bool active READ isActive NOTIFY activeChanged);
18   Q_PROPERTY(bool ready READ isReady NOTIFY isReadyChanged);
19
20 public:
21   Mode(QObject *parent = 0);
22   virtual ~Mode();
23
24   Camera *camera();
25   virtual void setCamera(Camera *camera);
26
27   bool isActive();
28
29   bool canCapture();
30
31   bool isReady() const;
32
33 signals:
34   void cameraChanged();
35   void canCaptureChanged();
36   void activeChanged();
37   void previewAvailable(const QString& preview, const QString& fileName);
38   void saved(const QString& fileName);
39   void isReadyChanged();
40
41 private slots:
42   void gotPreview(const QImage& image, const QString& fileName);
43
44 protected:
45   virtual void preChangeMode() = 0;
46   virtual void postChangeMode() = 0;
47   virtual void changeMode() = 0;
48
49   Camera *m_cam;
50   QtCamMode *m_mode;
51
52 private slots:
53   void deviceChanged();
54
55 private:
56   unsigned long long m_seq;
57 };
58
59 #endif /* MODE_H */