summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/camerabin/camerabincontrol.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer/camerabin/camerabincontrol.h')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincontrol.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabincontrol.h b/src/plugins/gstreamer/camerabin/camerabincontrol.h
index 7210fa090..4b72e3d14 100644
--- a/src/plugins/gstreamer/camerabin/camerabincontrol.h
+++ b/src/plugins/gstreamer/camerabin/camerabincontrol.h
@@ -42,6 +42,7 @@
#define CAMERABINCONTROL_H
#include <QHash>
+#include <qbasictimer.h>
#include <qcameracontrol.h>
#include "camerabinsession.h"
@@ -69,6 +70,13 @@ public:
bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override;
bool viewfinderColorSpaceConversion() const;
+ QCamera::LockTypes supportedLocks() const override;
+
+ QCamera::LockStatus lockStatus(QCamera::LockType lock) const override;
+
+ void searchAndLock(QCamera::LockTypes locks) override;
+ void unlock(QCamera::LockTypes locks) override;
+
public slots:
void reloadLater();
void setViewfinderColorSpaceConversion(bool enabled);
@@ -82,10 +90,29 @@ private slots:
private:
void updateSupportedResolutions(const QString &device);
+protected:
+ void timerEvent(QTimerEvent *event) override;
+
+private slots:
+ void updateFocusStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason);
+
+private:
+ bool isExposureLocked() const;
+ void lockExposure(QCamera::LockChangeReason reason);
+ void unlockExposure(QCamera::LockStatus status, QCamera::LockChangeReason reason);
+
+ bool isWhiteBalanceLocked() const;
+ void lockWhiteBalance(QCamera::LockChangeReason reason);
+ void unlockWhiteBalance(QCamera::LockStatus status, QCamera::LockChangeReason reason);
+
CameraBinSession *m_session;
QCamera::State m_state;
bool m_reloadPending;
+
+ CameraBinFocus *m_focus;
+ QBasicTimer m_lockTimer;
+ QCamera::LockTypes m_pendingLocks;
};
QT_END_NAMESPACE