Added updated() signal to be used to detect change of optional resources.
authorMohammed Sameer <msameer@foolab.org>
Sat, 27 Oct 2012 00:05:44 +0000 (03:05 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sat, 27 Oct 2012 12:21:07 +0000 (15:21 +0300)
src/cameraresources.cpp
src/cameraresources.h

index 007ebbc..daa849e 100644 (file)
@@ -22,6 +22,8 @@
 #include <dbusconnectioneventloop.h>
 #include <QDebug>
 
+// TODO: video recording ?
+// TODO: more resources ?
 CameraResources::CameraResources(QObject *parent) :
   QObject(parent),
   m_worker(new CameraResourcesWorker) {
@@ -38,6 +40,7 @@ CameraResources::CameraResources(QObject *parent) :
 
   QObject::connect(m_worker, SIGNAL(acquiredChanged()), this, SIGNAL(acquiredChanged()));
   QObject::connect(m_worker, SIGNAL(hijackedChanged()), this, SIGNAL(hijackedChanged()));
+  QObject::connect(m_worker, SIGNAL(updated()), this, SLOT(updated()));
 }
 
 CameraResources::~CameraResources() {
@@ -132,6 +135,13 @@ void CameraResourcesWorker::lostResources() {
 void CameraResourcesWorker::resourcesGranted(const QList<ResourcePolicy::ResourceType>& optional) {
   Q_UNUSED(optional);
 
+  if (!m_acquiring) {
+    // This can happen when:
+    // 1) We lose/gain optional resources.
+    // 2) A higher priority application releases resources back.
+    emit updated();
+  }
+
   m_acquiring = false;
 
   setAcquired(true);
index c6c7594..33502c6 100644 (file)
@@ -69,6 +69,7 @@ public:
 signals:
   void acquiredChanged();
   void hijackedChanged();
+  void updated();
 
 private:
   CameraResourcesWorker *m_worker;
@@ -91,6 +92,7 @@ public slots:
 signals:
   void acquiredChanged();
   void hijackedChanged();
+  void updated();
 
 private slots:
   void init();