[-]
[+]
|
Added |
_service:tar_git:stpcntrd.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:stpcntrd.spec
^
|
|
[-]
[+]
|
Added |
_service:tar_git:stpcntrd-0.0.4.tar.bz2/.gitignore
^
|
@@ -0,0 +1,3 @@
+src/adaptor.cpp
+src/adaptor.h
+stpcntrd.pro.user
|
[-]
[+]
|
Changed |
_service:tar_git:stpcntrd-0.0.4.tar.bz2/config/com.kimmoli.stpcntrd.xml
^
|
@@ -10,6 +10,7 @@
<method name="setAutoUpdate">
<arg name="value" type="b" direction="in" />
</method>
+ <method name="resetStoredSteps" />
<method name="quit" />
<signal name="steps">
<arg name="value" type="i" direction="out" />
|
[-]
[+]
|
Changed |
_service:tar_git:stpcntrd-0.0.4.tar.bz2/src/stepcounter.cpp
^
|
@@ -27,6 +27,7 @@
{
sensor->start();
sensor->setStandbyOverride(true);
+ getStoredSteps();
update();
}
}
@@ -44,6 +45,7 @@
if (sensor)
{
+ setStoredSteps();
setAutoUpdate(false);
sensor->stop();
delete sensor;
@@ -93,7 +95,7 @@
{
m_currentSteps = data.x();
- emit steps(m_currentSteps);
+ emit steps(m_storedSteps + m_currentSteps);
}
int StepCounter::getSteps()
@@ -101,7 +103,7 @@
if (!m_isConnected)
update();
- return m_currentSteps;
+ return m_storedSteps + m_currentSteps;
}
void StepCounter::setAutoUpdate(const bool &value)
@@ -125,6 +127,32 @@
}
}
+void StepCounter::getStoredSteps()
+{
+ QSettings settings("kimmoli.stpcntrd", "stpcntrd");
+
+ m_storedSteps = settings.value("steps", 0).toInt();
+
+ printf("Retrieved stored step count %d.\n", m_storedSteps);
+}
+
+void StepCounter::setStoredSteps()
+{
+ QSettings settings("kimmoli.stpcntrd", "stpcntrd");
+
+ settings.setValue("steps", QVariant(m_storedSteps + m_currentSteps));
+
+ printf("Stored step count %d.\n", m_storedSteps + m_currentSteps);
+}
+
+void StepCounter::resetStoredSteps()
+{
+ QSettings settings("kimmoli.stpcntrd", "stpcntrd");
+
+ settings.setValue("steps", QVariant(0));
+ m_storedSteps = 0;
+}
+
QString StepCounter::getVersion()
{
return APPVERSION;
|
[-]
[+]
|
Changed |
_service:tar_git:stpcntrd-0.0.4.tar.bz2/src/stepcounter.h
^
|
@@ -5,6 +5,7 @@
#include <sensord-qt5/stepcountersensor_i.h>
#include <sensord-qt5/sensormanagerinterface.h>
#include <QtDBus/QtDBus>
+#include <QSettings>
#define SERVICE_NAME "com.kimmoli.stpcntrd"
@@ -23,6 +24,7 @@
QString getVersion();
int getSteps();
Q_NOREPLY void setAutoUpdate(const bool& value);
+ Q_NOREPLY void resetStoredSteps();
Q_NOREPLY void quit();
signals:
@@ -33,9 +35,12 @@
private:
void update();
+ void getStoredSteps();
+ void setStoredSteps();
StepCounterSensorChannelInterface* sensor;
int m_currentSteps;
+ int m_storedSteps;
bool m_isConnected;
bool m_dbusRegistered;
};
|
[-]
[+]
|
Changed |
_service:tar_git:stpcntrd-0.0.4.tar.bz2/src/stpcntrd.cpp
^
|
@@ -7,15 +7,21 @@
#include <stdio.h>
#include <unistd.h>
+#include <signal.h>
#include <sys/types.h>
#include "stepcounter.h"
#include "adaptor.h"
#include <QtCore/QCoreApplication>
+static void daemonize();
+static void signalHandler(int sig);
+
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
+ daemonize();
+
setlinebuf(stdout);
setlinebuf(stderr);
@@ -32,3 +38,29 @@
return app.exec();
}
+
+static void daemonize()
+{
+ /* register signals to monitor / ignore */
+ signal(SIGCHLD,SIG_IGN); /* ignore child */
+ signal(SIGTSTP,SIG_IGN); /* ignore tty signals */
+ signal(SIGTTOU,SIG_IGN);
+ signal(SIGTTIN,SIG_IGN);
+ signal(SIGHUP,SIG_IGN); /* ignore hangup signal */
+ signal(SIGTERM,signalHandler); /* catch kill signal */
+}
+
+
+static void signalHandler(int sig) /* signal handler function */
+{
+ switch(sig)
+ {
+ case SIGTERM:
+ printf("Received signal SIGTERM\n");
+ QCoreApplication::quit();
+ break;
+
+ default:
+ break;
+ }
+}
|