summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLincoln Ramsay <lincoln.ramsay@nokia.com>2012-05-28 12:09:55 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-28 04:58:41 +0200
commit7d54123daa2080f96c7d74f58125141555832b09 (patch)
tree78bde141a400fc6f630f70e462383c752a0a440e /src
parent8ff4b2dbeeba8ffc6503a6a8ac53a3df2625298a (diff)
Report failure to connect and disconnect from the emulator.
This does not happen very often but it's good to report it when it does. Change-Id: Iaec494f3aa449dbfcda1522ecde4da9311fa27c9 Reviewed-by: Zsolt Simon <zsolt.simon@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.cpp13
-rw-r--r--src/plugins/sensors/simulator/simulatorcommon.h3
2 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/sensors/simulator/simulatorcommon.cpp b/src/plugins/sensors/simulator/simulatorcommon.cpp
index 900b6bd8..1b0afcc3 100644
--- a/src/plugins/sensors/simulator/simulatorcommon.cpp
+++ b/src/plugins/sensors/simulator/simulatorcommon.cpp
@@ -80,6 +80,7 @@ public:
signals:
void queueConnectToServer();
+ void connectionFailed();
void initialSensorsDataSent();
void setAmbientLightData(const QtMobility::QAmbientLightReadingData &);
void setLightData(const QtMobility::QLightReadingData &);
@@ -97,6 +98,7 @@ private slots:
mWorker.reset(mConnection->connectToServer(Connection::simulatorHostName(true), 0xbeef+1));
if (!mWorker) {
qWarning("QtSensors simulator backend could not connect to the simulator!");
+ emit connectionFailed();
return;
}
mWorker->addReceiver(this);
@@ -111,11 +113,14 @@ private:
SensorsConnection::SensorsConnection(QObject *parent)
: QObject(parent)
, mInitialDataSent(false)
+ , mConnectionFailed(false)
{
mConnection = new SimulatorAsyncConnection();
connect(mConnection, SIGNAL(initialSensorsDataSent()),
this, SLOT(initialSensorsDataSent()));
+ connect(mConnection, SIGNAL(connectionFailed()),
+ this, SLOT(slotConnectionFailed()));
connect(mConnection, SIGNAL(setAmbientLightData(QtMobility::QAmbientLightReadingData)),
this, SLOT(setAmbientLightData(QtMobility::QAmbientLightReadingData)));
connect(mConnection, SIGNAL(setLightData(QtMobility::QLightReadingData)),
@@ -187,6 +192,12 @@ void SensorsConnection::initialSensorsDataSent()
mInitialDataSent = true;
}
+void SensorsConnection::slotConnectionFailed()
+{
+ mInitialDataSent = false;
+ mConnectionFailed = true;
+}
+
SimulatorCommon::SimulatorCommon(QSensor *sensor)
: QSensorBackend(sensor)
, m_timerid(0)
@@ -229,7 +240,7 @@ void SimulatorCommon::stop()
void SimulatorCommon::timerEvent(QTimerEvent * /*event*/)
{
SensorsConnection *connection = SensorsConnection::instance();
- if (!connection) {
+ if (!connection || connection->connectionFailed()) {
stop();
sensorStopped();
}
diff --git a/src/plugins/sensors/simulator/simulatorcommon.h b/src/plugins/sensors/simulator/simulatorcommon.h
index 6555f1fc..82fffd86 100644
--- a/src/plugins/sensors/simulator/simulatorcommon.h
+++ b/src/plugins/sensors/simulator/simulatorcommon.h
@@ -58,6 +58,7 @@ public:
static SensorsConnection *instance();
bool safe() const { return mInitialDataSent; }
+ bool connectionFailed() const { return mConnectionFailed; }
public slots:
void setAmbientLightData(const QtMobility::QAmbientLightReadingData &);
@@ -68,10 +69,12 @@ public slots:
void setProximityData(const QtMobility::QProximityReadingData &);
void setIRProximityData(const QtMobility::QIRProximityReadingData &);
void initialSensorsDataSent();
+ void slotConnectionFailed();
private:
SimulatorAsyncConnection *mConnection;
bool mInitialDataSent;
+ bool mConnectionFailed;
public:
QtMobility::QAmbientLightReadingData qtAmbientLightData;