import QtQuick 1.1
import com.nokia.meego 1.1
import QtCamera 1.0
+import CameraPlus 1.0
CameraPage {
id: page
orientationLock: PageOrientation.LockLandscape
+ DisplayState {
+ inhibitDim: videoMode.recording
+ }
+
Button {
id: recording
anchors.right: parent.right
// TODO: mass storage
// TODO: resource policy
// TODO: prevent going to mass storage while recording and capturing
-// TODO: prevent screen dimming while recording
// TODO: sounds
// TODO: grid lines, face tracking
// TODO: complete settings pages
--- /dev/null
+#include "displaystate.h"
+#include <qmsystem2/qmdisplaystate.h>
+#include <QTimer>
+#include <QDebug>
+
+DisplayState::DisplayState(QObject *parent) :
+ QObject(parent), m_state(new MeeGo::QmDisplayState(this)), m_timer(new QTimer(this)) {
+
+ m_timer->setSingleShot(false);
+ m_timer->setInterval(50 * 1000);
+
+ QObject::connect(m_timer, SIGNAL(timeout()), this, SLOT(timeout()));
+}
+
+DisplayState::~DisplayState() {
+ setInhibitDim(false);
+}
+
+bool DisplayState::isDimInhibited() const {
+ return m_timer->isActive();
+}
+
+void DisplayState::setInhibitDim(bool inhibit) {
+ if (m_timer->isActive() == inhibit) {
+ return;
+ }
+
+ if (!inhibit) {
+ if (!m_state->cancelBlankingPause()) {
+ qWarning() << "Failed to cancel display dimming!";
+ }
+
+ m_timer->stop();
+ }
+ else {
+ if (!m_state->setBlankingPause()) {
+ qWarning() << "Failed to inhibit display dimming!";
+ return;
+ }
+
+ m_timer->start();
+ }
+
+ emit inhibitDimChanged();
+}
+
+void DisplayState::timeout() {
+ if (!m_state->setBlankingPause()) {
+ qWarning() << "Failed to inhibit display dimming!";
+ }
+}
--- /dev/null
+// -*- c++ -*-
+
+#ifndef DISPLAY_STATE_H
+#define DISPLAY_STATE_H
+
+#include <QObject>
+
+class QTimer;
+namespace MeeGo {
+ class QmDisplayState;
+};
+
+class DisplayState : public QObject {
+ Q_OBJECT
+ Q_PROPERTY(bool inhibitDim READ isDimInhibited WRITE setInhibitDim NOTIFY inhibitDimChanged);
+
+public:
+ DisplayState(QObject *parent = 0);
+ ~DisplayState();
+
+ bool isDimInhibited() const;
+ void setInhibitDim(bool inhibit);
+
+signals:
+ void inhibitDimChanged();
+
+private slots:
+ void timeout();
+
+private:
+ MeeGo::QmDisplayState *m_state;
+ QTimer *m_timer;
+};
+
+#endif /* DISPLAY_STATE_H */
#include "settings.h"
#include "filenaming.h"
#include "quillitem.h"
+#include "displaystate.h"
Q_DECL_EXPORT int main(int argc, char *argv[]) {
QApplication::setAttribute(Qt::AA_X11InitThreads, true);
qmlRegisterType<Settings>("CameraPlus", 1, 0, "Settings");
qmlRegisterType<FileNaming>("CameraPlus", 1, 0, "FileNaming");
qmlRegisterType<QuillItem>("CameraPlus", 1, 0, "QuillItem");
+ qmlRegisterType<DisplayState>("CameraPlus", 1, 0, "DisplayState");
QUrl sourceUrl = QUrl::fromLocalFile(QDir::currentPath() + "/main.qml");
view.setSource(sourceUrl);
CONFIG += link_pkgconfig debug static
PKGCONFIG = gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-tag-0.10 \
- gstreamer-pbutils-0.10 meego-gstreamer-interfaces-0.10 quill
+ gstreamer-pbutils-0.10 meego-gstreamer-interfaces-0.10 quill qmsystem2
LIBS += -L../imports/ -limports -L../lib/ -lqtcamera
-SOURCES += main.cpp settings.cpp filenaming.cpp quillitem.cpp
-HEADERS += settings.h filenaming.h quillitem.h
+SOURCES += main.cpp settings.cpp filenaming.cpp quillitem.cpp displaystate.cpp
+HEADERS += settings.h filenaming.h quillitem.h displaystate.h