X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=declarative%2Fcamera.cpp;h=34298326c4690db9976ba3fb14453d07a3f6f706;hb=e22873168e4a096cd64816f1cdcf71b09a471dfa;hp=96298b5d644ca1b3df1be91778ab6630cdbe7777;hpb=c95761c58432ae57f919647fe80fd2b26c509e77;p=harmattan%2Fcameraplus diff --git a/declarative/camera.cpp b/declarative/camera.cpp index 96298b5..3429832 100644 --- a/declarative/camera.cpp +++ b/declarative/camera.cpp @@ -51,6 +51,7 @@ #include "videomute.h" #include "videotorch.h" #include "cameraconfig.h" +#include "quirks.h" Camera::Camera(QObject *parent) : QObject(parent), @@ -74,7 +75,8 @@ Camera::Camera(QObject *parent) : m_roi(0), m_videoMute(0), m_videoTorch(0), - m_config(new CameraConfig(this)) { + m_config(new CameraConfig(this)), + m_quirks(0) { m_config->componentComplete(); } @@ -106,6 +108,7 @@ Camera::~Camera() { delete m_roi; delete m_videoMute; delete m_videoTorch; + delete m_quirks; } int Camera::deviceCount() const { @@ -153,6 +156,7 @@ bool Camera::setDeviceId(const QVariant& deviceId) { } if (m_dev && m_dev->stop(false)) { + emit prepareForDeviceChange(); delete m_dev; } else if (m_dev) { @@ -332,6 +336,10 @@ void Camera::resetCapabilities() { delete m_videoTorch; m_videoTorch = new VideoTorch(dev, this); emit videoTorchChanged(); + + delete m_quirks; + m_quirks = new Quirks(dev->config()->quirks(dev->id()), this); + emit quirksChanged(); } Zoom *Camera::zoom() const { @@ -401,3 +409,7 @@ VideoTorch *Camera::videoTorch() const { CameraConfig *Camera::cameraConfig() const { return m_config; } + +Quirks *Camera::quirks() const { + return m_quirks; +}