Added QtCamCapability (base class for capabilities) and implemented flash, zoom and...
[harmattan/cameraplus] / lib / qtcamcapability.h
diff --git a/lib/qtcamcapability.h b/lib/qtcamcapability.h
new file mode 100644 (file)
index 0000000..d22f5da
--- /dev/null
@@ -0,0 +1,49 @@
+// -*- c++ -*-
+
+#ifndef QT_CAM_CAPABILITY_H
+#define QT_CAM_CAPABILITY_H
+
+#include <QObject>
+
+class QtCamDevice;
+class QtCamCapabilityPrivate;
+
+class QtCamCapability : public QObject {
+  Q_OBJECT
+  Q_FLAGS(Capability Capabilities)
+
+public:
+  typedef enum {
+    EvComp = (1 << 0),
+    IsoSpeed = (1 << 1),
+    WbMode = (1 << 2),
+    ColourTone = (1 << 3),
+    Scene = (1 << 4),
+    Flash = (1 << 5),
+    Zoom = (1 << 6),
+    Focus = (1 << 7),
+    Aperture = (1 << 8),
+    Eposure = (1 << 9),
+    Shake = (1 << 10),
+    NoiseReduction = (1 << 11)
+  } Capability;
+
+  Q_DECLARE_FLAGS(Capabilities, Capability)
+
+  static Capabilities capabilities(QtCamDevice *dev);
+
+  QtCamCapability(QtCamCapabilityPrivate *d, QObject *parent = 0);
+  virtual ~QtCamCapability();
+
+  bool isSupported();
+
+signals:
+  void valueChanged();
+  void minimumValueChanged();
+  void maximumValueChanged();
+
+protected:
+  QtCamCapabilityPrivate *d_ptr;
+};
+
+#endif /* QT_CAM_CAPABILITY_H */