diff options
Diffstat (limited to 'src/plugins/gstreamer/camerabin/camerabincontrol.h')
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabincontrol.h | 27 |
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 |