}
void QtCamImageMode::applySettings() {
+ QPair<int, int> fps = d_ptr->night ? d->settings.nightFrameRate() : d->settings.frameRate();
+
d_ptr->setCaps("image-capture-caps", d->settings.captureResolution(),
d->settings.frameRate());
- d_ptr->setCaps("viewfinder-caps", d->settings.viewfinderResolution(),
- d->settings.frameRate());
+
+ d_ptr->setCaps("viewfinder-caps", d->settings.viewfinderResolution(), fps);
setPreviewSize(d->settings.previewResolution());
}
void QtCamMode::setFileName(const QString& fileName) {
d_ptr->doneHandler->fileName = fileName;
}
+
+void QtCamMode::setNightMode(bool night) {
+ if (d_ptr->night != night) {
+ d_ptr->night = night;
+ applySettings();
+
+ emit nightModeChanged();
+ }
+}
+
+bool QtCamMode::inNightMode() const {
+ return d_ptr->night;
+}
Q_PROPERTY(bool canCapture READ canCapture NOTIFY canCaptureChanged);
Q_PROPERTY(bool active READ isActive NOTIFY activeChanged);
+ Q_PROPERTY(bool nightMode READ inNightMode WRITE setNightMode NOTIFY nightModeChanged);
public:
QtCamMode(QtCamModePrivate *d, const char *mode, const char *done, QObject *parent = 0);
virtual void applySettings() = 0;
+ void setNightMode(bool night);
+ bool inNightMode() const;
+
public slots:
void activate();
void saved(const QString& fileName);
void canCaptureChanged();
void activeChanged();
+ void nightModeChanged();
protected:
virtual void start() = 0;
class QtCamModePrivate {
public:
- QtCamModePrivate(QtCamDevicePrivate *d) : id(-1), dev(d) {}
+ QtCamModePrivate(QtCamDevicePrivate *d) : id(-1), dev(d), night(false) {}
virtual ~QtCamModePrivate() {}
int modeId(const char *mode) {
QtCamDevicePrivate *dev;
PreviewImageHandler *previewImageHandler;
DoneHandler *doneHandler;
+ bool night;
};
#endif /* QT_CAM_MODE_P_H */
}
void QtCamVideoMode::applySettings() {
+ QPair<int, int> fps = d_ptr->night ? d->settings.nightFrameRate() : d->settings.frameRate();
+
d_ptr->setCaps("viewfinder-caps", d->settings.captureResolution(),
- d->settings.frameRate());
+ fps);
d_ptr->setCaps("video-capture-caps", d->settings.captureResolution(),
- d->settings.frameRate());
+ fps);
setPreviewSize(d->settings.previewResolution());
}