[-]
[+]
|
Changed |
_service:tar_git:sensorfw.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:sensorfw-qt5-hybris.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -4,4 +4,4 @@
<param name="branch">master</param>
<param name="revision">HEAD</param>
</service>
-</services>
+</services>
\ No newline at end of file
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/LuneOS/sysbus/com.nokia.SensorService.json.prv
^
|
@@ -0,0 +1,14 @@
+{
+ "role": {
+ "exeName":"/usr/sbin/sensorfwd",
+ "type": "privileged",
+ "allowedNames": ["com.nokia.SensorService"]
+ },
+ "permissions": [
+ {
+ "service":"com.nokia.SensorService",
+ "inbound":["*"],
+ "outbound":["*"]
+ }
+ ]
+}
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/LuneOS/sysbus/com.nokia.SensorService.service.prv
^
|
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=com.nokia.SensorService
+Exec=/usr/sbin/sensrofwd
+Type=static
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/LuneOS/systemd/sensorfwd.service
^
|
@@ -0,0 +1,17 @@
+[Unit]
+Description=Sensor daemon for sensor framework
+After=dbus.socket ls-hubd_private.service
+Requires=dbus.service ls-hubd_private.service
+Conflicts=actdead.target
+
+[Service]
+Type=forking
+BusName=com.nokia.SensorService
+ExecStartPre=/bin/sh /usr/bin/sensord-daemon-conf-setup
+ExecStart=/usr/sbin/sensorfwd -c=/etc/sensorfw/primaryuse.conf -d --log-level=warning --no-magnetometer-bg-calibration
+ExecReload=/bin/kill -HUP $MAINPID
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=multi-user.target
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/adaptor-config.pri
^
|
@@ -17,3 +17,6 @@
INSTALLS += target
+config_hybris {
+ CONFIG += link_pkgconfig
+}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/alsadaptor-evdev/alsadaptor-evdevplugin.cpp
^
|
@@ -1,6 +1,6 @@
/**
- @file alsadaptorplugin-sysfs.cpp
- @brief Plugin for ALSAdaptorSysfs
+ @file alsadaptor-evdevplugin.cpp
+ @brief Plugin for ALSAdaptorEvdev
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/alsadaptor-evdev/alsevdevadaptor.h
^
|
@@ -1,5 +1,5 @@
/**
- @file inputdevadaptor.cpp
+ @file alsevdevadaptor.h
@brief Contains ALSAdaptorEvdev.
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/alsadaptor-sysfs/alsadaptor-sysfsplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file alsadaptorplugin-sysfs.cpp
+ @file alsadaptor-sysfsplugin.cpp
@brief Plugin for ALSAdaptorSysfs
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/gyroscopeadaptor-evdev/gyroadaptor-evdevplugin.h
^
|
@@ -1,6 +1,6 @@
/**
- @file alsadaptor-evdevplugin.h
- @brief Plugin for ALSAdaptorEvdevPlugin
+ @file gyroadaptor-evdevplugin.h
+ @brief Plugin for GyroAdaptorEvdevPlugin
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisaccelerometer/hybrisaccelerometer.pro
^
|
@@ -9,5 +9,5 @@
include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisaccelerometer/hybrisaccelerometeradaptor.cpp
^
|
@@ -44,20 +44,19 @@
bool HybrisAccelerometerAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "Hybris AccelAdaptor start\n";
return true;
}
void HybrisAccelerometerAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "Hybris AccelAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisalsadaptor/hybrisalsadaptor.cpp
^
|
@@ -52,11 +52,10 @@
bool HybrisAlsAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "Hybris HybrisAlsAdaptor start\n";
return true;
}
@@ -120,9 +119,9 @@
void HybrisAlsAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "Hybris HybrisAlsAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisalsadaptor/hybrisalsadaptor.pro
^
|
@@ -7,7 +7,7 @@
hybrisalsadaptorplugin.cpp
LIBS+= -L../../core -lhybrissensorfw-qt5
-include(../adaptor-config.pri )
+include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.cpp
^
|
@@ -51,20 +51,19 @@
bool HybrisGyroscopeAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "HybrisGyroscopeAdaptor start\n";
return true;
}
void HybrisGyroscopeAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() &&!powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "HybrisGyroscopeAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisgyroscopeadaptor/hybrisgyroscopeadaptor.pro
^
|
@@ -10,5 +10,5 @@
include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.cpp
^
|
@@ -48,20 +48,19 @@
bool HybrisMagnetometerAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() &&!powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "HybrisMagnetometerAdaptor start\n";
return true;
}
void HybrisMagnetometerAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "HybrisMagnetometerAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrismagnetometeradaptor/hybrismagnetometeradaptor.pro
^
|
@@ -10,5 +10,5 @@
include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.cpp
^
|
@@ -64,20 +64,19 @@
bool HybrisOrientationAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "Hybris OrientationAdaptor start\n";
return true;
}
void HybrisOrientationAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "Hybris OrientationAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisorientationadaptor/hybrisorientationadaptor.pro
^
|
@@ -10,5 +10,5 @@
include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrispressureadaptor/hybrispressureadaptor.cpp
^
|
@@ -50,20 +50,19 @@
bool HybrisPressureAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "Hybris HybrisPressureAdaptor start\n";
return true;
}
void HybrisPressureAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "Hybris HybrisPressureAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrispressureadaptor/hybrispressureadaptor.pro
^
|
@@ -7,7 +7,7 @@
hybrispressureadaptorplugin.cpp
LIBS+= -L../../core -lhybrissensorfw-qt5
-include(../adaptor-config.pri )
+include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.cpp
^
|
@@ -57,10 +57,10 @@
bool HybrisProximityAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "HybrisProximityAdaptor start\n";
return true;
}
@@ -127,9 +127,9 @@
void HybrisProximityAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "HybrisProximityAdaptor stop\n";
}
@@ -138,7 +138,7 @@
ProximityData *d = buffer->nextSlot();
d->timestamp_ = quint64(data.timestamp * .001);
bool near = false;
- if (data.distance < maxRange) {
+ if (data.distance < maxRange()) {
near = true;
}
d->withinProximity_ = near;
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisproximityadaptor/hybrisproximityadaptor.pro
^
|
@@ -10,5 +10,5 @@
include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.cpp
^
|
@@ -56,11 +56,10 @@
bool HybrisStepCounterAdaptor::startSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "1");
if (!(HybrisAdaptor::startSensor()))
return false;
-
+ if (isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "1");
sensordLogD() << "Hybris HybrisStepCounterAdaptor start\n";
return true;
}
@@ -72,9 +71,9 @@
void HybrisStepCounterAdaptor::stopSensor()
{
- if(!powerStatePath.isEmpty())
- writeToFile(powerStatePath, "0");
HybrisAdaptor::stopSensor();
+ if (!isRunning() && !powerStatePath.isEmpty())
+ writeToFile(powerStatePath, "0");
sensordLogD() << "Hybris HybrisStepCounterAdaptor stop\n";
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/hybrisstepcounteradaptor/hybrisstepcounteradaptor.pro
^
|
@@ -7,7 +7,7 @@
hybrisstepcounteradaptorplugin.cpp
LIBS+= -L../../core -lhybrissensorfw-qt5
-include(../adaptor-config.pri )
+include( ../adaptor-config.pri )
config_hybris {
- INCLUDEPATH+=/usr/include/android
+ PKGCONFIG += android-headers
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/adaptors/magnetometeradaptor-evdev/magnetometeradaptor-evdevplugin.h
^
|
@@ -1,6 +1,6 @@
/**
- @file alsadaptor-sysfsplugin.h
- @brief Plugin for ALSAdaptorSysfs
+ @file magnetometeradaptor-evdevplugin.h
+ @brief Plugin for MagnetometerAdaptorEvdev
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/chains/compasschain/compasschain.cpp
^
|
@@ -178,6 +178,9 @@
addStandbyOverrideSource(accelerometerChain);
setIntervalSource(accelerometerChain);
+ } else {
+ addStandbyOverrideSource(orientAdaptor);
+ setIntervalSource(orientAdaptor);
}
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/chains/orientationchain/orientationchainplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file accelerometerchainplugin.cpp
+ @file orientationchainplugin.cpp
@brief Plugin for AccelerometerChain
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/chains/orientationchain/orientationchainplugin.h
^
|
@@ -1,6 +1,6 @@
/**
- @file accelerometerchainplugin.h
- @brief Plugin for AccelerometerChain
+ @file orientationchainplugin.h
+ @brief Plugin for OrientationChain
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/config.tests/hybris/hybris.pro
^
|
@@ -1,6 +1,8 @@
TEMPLATE = app
-INCLUDEPATH=/usr/include/android
+CONFIG += link_pkgconfig
+PKGCONFIG += android-headers
+
TARGET = hybris
SOURCES += main.cpp
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/config/10-sensord-default.conf
^
|
(renamed from config/90-sensord-default.conf)
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/config/20-sensors-default.conf
^
|
@@ -0,0 +1,48 @@
+[available]
+; Availability of some sensors can be defined in hw-settings configuration
+; files. By enabling ssu-sysinfo usage, sensorfwd configuration can be
+; written so that it just refers to hw-settings config. If ssu-sysinfo
+; is not used, these will default to "True".
+;
+; In case of virtual sensors can be implemented on top of multiple real
+; sensors, multiple '|' separated features can be given and the sensor
+; is enabled if at least one of those is set in hw-settings.
+
+accelerometersensor=Feature_AccelerationSensor
+alssensor=Feature_LightSensor
+compasssensor=Feature_CompassSensor
+gyroscopesensor=Feature_GyroSensor
+orientationsensor=Feature_GyroSensor|Feature_AccelerationSensor
+proximitysensor=Feature_ProximitySensor
+
+; In theory having Feature_CoverSensor == have lidsensor. However
+; in practice only mce is expected to track lidsensor and atm it
+; does it via suspend proofed evdev inputs rather than sensorfwd.
+; So, even if the lidsensor adaptors provided by sensorfwd would
+; work, they might interfere with the only user of the sensor.
+; lidsensor=Feature_CoverSensor
+lidsensor=False
+
+; Some sensors that are in theory supported by sensorfwd do not have
+; a suitable hybris adaptors, and thus it makes no sense to list them
+; as being available regardless of the hw / android hal status.
+tapsensor=False
+temperaturesensor=False
+
+; Sensors that have not been available in any officially supported
+; devices -> hide by default.
+humiditysensor=False
+stepcountersensor=False
+
+; To minimize chances of regression, sensors that have been available at
+; least in one officially supported device -> do not hide by default.
+; (sensor loading should fail, so false positive should cause only
+; cosmetic issues on 1st use after bootup)
+
+magnetometersensor=True
+pressuresensor=True
+rotationsensor=True
+
+; To avoid revisiting config files for all old ports in the future, the
+; defaults for added sensors should be set "False" by default here, and
+; to "True" in device specific override config as appropriate.
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/config/60-sensors-DEVICE.conf
^
|
@@ -0,0 +1,29 @@
+[available]
+
+; Sensors that are enabled by default.
+; -> Disable as appropriate
+
+;magnetometersensor=False
+;pressuresensor=False
+;rotationsensor=False
+
+; Sensors that are disabled by default.
+; -> Enable as appropriate
+
+;humiditysensor=True
+;stepcountersensor=True
+;tapsensor=True
+;temperaturesensor=True
+
+; Sensors that should/can be enabled/disabled based on
+; hw settings config - or are enabled if sensorfwd is
+; built without ssu-sysinfo support.
+; -> Override as appropriate.
+
+;accelerometersensor=False
+;alssensor=False
+;compasssensor=False
+;gyroscopesensor=False
+;lidsensor=False
+;orientationsensor=False
+;proximitysensor=False
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/config/sensord-daemon-conf-setup
^
|
@@ -6,7 +6,7 @@
cd /etc/sensorfw/
if [ -x /usr/sbin/sensorfwd ]; then
- if [ -f /usr/lib/libhybrissensorfw*.so ]; then
+ if ldconfig -p | grep libhybrissensorfw ; then
# Always prefer hybris sensor backend to anything else (also overwrite
# old setting, as sometimes the boardname matches, e.g. on grouper)
if [ "$(readlink primaryuse.conf)" != sensord-hybris.conf ]; then
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/config.cpp
^
|
@@ -39,94 +39,68 @@
}
Config::~Config() {
- clearConfig();
}
void Config::clearConfig() {
- foreach(QSettings* setting, settings)
- delete setting;
- settings.clear();
+ m_settings.clear();
}
bool Config::loadConfig(const QString &defConfigPath, const QString &configDPath) {
- Config *config = NULL;
+ /* Not having config files is ok, failing to load one that exists is not */
bool ret = true;
-
- /* Check/create new static config */
- if (static_configuration) {
- config = static_configuration;
- } else {
- config = new Config();
+ if (!static_configuration) {
+ static_configuration = new Config();
}
-
- if (!config->loadConfigFile(defConfigPath))
- ret = false;
-
- /* Scan config.d dir */
- QStringList fileList;
- if(!configDPath.isEmpty())
- {
+ /* Process config.d dir in alnum order */
+ if (!configDPath.isEmpty()) {
QDir dir(configDPath, "*.conf", QDir::Name, QDir::Files);
- fileList = dir.entryList();
- foreach(const QString& file, fileList)
- {
- if (!config->loadConfigFile(dir.absoluteFilePath(file)))
+ foreach(const QString &file, dir.entryList()) {
+ if (!static_configuration->loadConfigFile(dir.absoluteFilePath(file))) {
ret = false;
+ }
}
}
-
- static_configuration = config;
-
+ /* Primary config file overrides config.d */
+ if (!defConfigPath.isEmpty() && QFile::exists(defConfigPath) ) {
+ if (!static_configuration->loadConfigFile(defConfigPath))
+ ret = false;
+ }
return ret;
}
bool Config::loadConfigFile(const QString &configFileName) {
- if(!QFile::exists(configFileName))
- {
+ /* Success means the file was loaded and processed without hiccups */
+ bool loaded = false;
+ if (!QFile::exists(configFileName)) {
sensordLogW() << "File does not exists \"" << configFileName << "\"";
- return false;
- }
- QSettings* setting = new QSettings(configFileName, QSettings::IniFormat);
- if(setting->status() == QSettings::NoError) {
- settings.append(setting);
- sensordLogD() << "Config file \"" << configFileName << "\" successfully loaded";
- return true;
+ } else {
+ QSettings merge(configFileName, QSettings::IniFormat);
+ QSettings::Status status(merge.status());
+ if (status == QSettings::FormatError ) {
+ sensordLogW() << "Configuration file \"" << configFileName << "\" is in wrong format";
+ } else if (status != QSettings::NoError) {
+ sensordLogW() << "Unable to open \"" << configFileName << "\" configuration file";
+ } else {
+ foreach (const QString &key, merge.allKeys()) {
+ m_settings.setValue(key, merge.value(key));
+ }
+ loaded = true;
+ }
}
- else if(setting->status() == QSettings::AccessError)
- sensordLogW() << "Unable to open \"" << configFileName << "\" configuration file";
- else if(setting->status() == QSettings::FormatError)
- sensordLogW() << "Configuration file \"" << configFileName << "\" is in wrong format";
- else
- sensordLogW() << "Configuration file \"" << configFileName << "\" parsing failed to unknown error: " << setting->status();
- delete setting;
- return false;
+ return loaded;
}
QVariant Config::value(const QString &key) const {
- /* Iterate through configs so that keys in the first files
- * have preference over the last.
- */
- foreach(QSettings* setting, settings) {
- if(setting->contains(key))
- {
- QVariant var = setting->value(key, QVariant());
- if(var.isValid())
- sensordLogD() << "Value for key '" << key << "': " << var.toString();
- return var;
- }
+ QVariant var = m_settings.value(key, QVariant());
+ if(var.isValid()) {
+ sensordLogT() << "Value for key" << key << ":" << var.toString();
}
- return QVariant();
+ return var;
}
QStringList Config::groups() const
{
- QStringList groups;
- foreach(QSettings* setting, settings) {
- foreach(const QString& group, setting->childGroups()) {
- if(!groups.contains(group))
- groups << group;
- }
- }
+ QStringList groups = m_settings.childGroups();
return groups;
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/config.h
^
|
@@ -136,7 +136,7 @@
*/
void clearConfig();
- QList<QSettings*> settings; /**< parsed QSettings */
+ QSettings m_settings; /**< parsed QSettings */
};
template<typename T>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/core.pro
^
|
@@ -80,6 +80,19 @@
DEFINES += SENSORFW_MCE_WATCHER
}
+contains(CONFIG,ssusysinfo) {
+ PKGCONFIG += ssu-sysinfo
+ QMAKE_CXXFLAGS += -DUSE_SSUSYSINFO
+}
+
+lunaservice {
+ SOURCES += lsclient.cpp
+ HEADERS += lsclient.h
+ DEFINES += SENSORFW_LUNA_SERVICE_CLIENT
+ PKGCONFIG += Qt5Gui json-c
+ PKGCONFIG += luna-service2 LunaSysMgrCommon LunaSysMgrIpcMessages
+}
+
contains(CONFIG,hybris) {
} else {
publicheaders.path = $${publicheaders.path}/core
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/deviceadaptor.cpp
^
|
@@ -83,7 +83,11 @@
#ifdef SENSORFW_MCE_WATCHER
screenBlanked_(!SensorManager::instance().MCEWatcher()->displayEnabled())
#else
- screenBlanked_(false)
+ #ifdef SENSORFW_LUNA_SERVICE_CLIENT
+ screenBlanked_(!SensorManager::instance().LSClient_instance()->displayEnabled())
+ #else
+ screenBlanked_(false)
+ #endif
#endif
{
setValid(true);
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/hybris.pro
^
|
@@ -6,7 +6,7 @@
include( ../common-config.pri )
CONFIG += link_pkgconfig
-INCLUDEPATH+=/usr/include/android
+PKGCONFIG += android-headers
SENSORFW_INCLUDEPATHS = .. \
../include \
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/hybrisadaptor.cpp
^
|
@@ -31,519 +31,792 @@
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
+#include <time.h>
+#include <signal.h>
+/* Older devices probably have old android hal and thus do
+ * not define sensor all sensor types that have been added
+ * later on -> In order to both use symbolic names and
+ * compile for all devices we need to fill in holes that
+ * android hal for some particular device might have.
+ */
+#ifndef SENSOR_TYPE_META_DATA
+#define SENSOR_TYPE_META_DATA (0)
+#endif
#ifndef SENSOR_TYPE_ACCELEROMETER
-#define SENSOR_TYPE_ACCELEROMETER (1)
+#define SENSOR_TYPE_ACCELEROMETER (1)
+#endif
+#ifndef SENSOR_TYPE_GEOMAGNETIC_FIELD
+#define SENSOR_TYPE_GEOMAGNETIC_FIELD (2)
#endif
#ifndef SENSOR_TYPE_MAGNETIC_FIELD
-#define SENSOR_TYPE_MAGNETIC_FIELD (2)
+#define SENSOR_TYPE_MAGNETIC_FIELD SENSOR_TYPE_GEOMAGNETIC_FIELD
#endif
#ifndef SENSOR_TYPE_ORIENTATION
-#define SENSOR_TYPE_ORIENTATION (3)
+#define SENSOR_TYPE_ORIENTATION (3)
#endif
#ifndef SENSOR_TYPE_GYROSCOPE
-#define SENSOR_TYPE_GYROSCOPE (4)
+#define SENSOR_TYPE_GYROSCOPE (4)
#endif
#ifndef SENSOR_TYPE_LIGHT
-#define SENSOR_TYPE_LIGHT (5)
+#define SENSOR_TYPE_LIGHT (5)
#endif
#ifndef SENSOR_TYPE_PRESSURE
-#define SENSOR_TYPE_PRESSURE (6)
+#define SENSOR_TYPE_PRESSURE (6)
#endif
#ifndef SENSOR_TYPE_TEMPERATURE
-#define SENSOR_TYPE_TEMPERATURE (7)
+#define SENSOR_TYPE_TEMPERATURE (7)
#endif
#ifndef SENSOR_TYPE_PROXIMITY
-#define SENSOR_TYPE_PROXIMITY (8)
+#define SENSOR_TYPE_PROXIMITY (8)
#endif
#ifndef SENSOR_TYPE_GRAVITY
-#define SENSOR_TYPE_GRAVITY (9)
+#define SENSOR_TYPE_GRAVITY (9)
#endif
#ifndef SENSOR_TYPE_LINEAR_ACCELERATION
-#define SENSOR_TYPE_LINEAR_ACCELERATION (10)
+#define SENSOR_TYPE_LINEAR_ACCELERATION (10)
#endif
#ifndef SENSOR_TYPE_ROTATION_VECTOR
-#define SENSOR_TYPE_ROTATION_VECTOR (11)
+#define SENSOR_TYPE_ROTATION_VECTOR (11)
#endif
#ifndef SENSOR_TYPE_RELATIVE_HUMIDITY
-#define SENSOR_TYPE_RELATIVE_HUMIDITY (12)
+#define SENSOR_TYPE_RELATIVE_HUMIDITY (12)
#endif
#ifndef SENSOR_TYPE_AMBIENT_TEMPERATURE
-#define SENSOR_TYPE_AMBIENT_TEMPERATURE (13)
+#define SENSOR_TYPE_AMBIENT_TEMPERATURE (13)
+#endif
+#ifndef SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED
+#define SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED (14)
+#endif
+#ifndef SENSOR_TYPE_GAME_ROTATION_VECTOR
+#define SENSOR_TYPE_GAME_ROTATION_VECTOR (15)
+#endif
+#ifndef SENSOR_TYPE_GYROSCOPE_UNCALIBRATED
+#define SENSOR_TYPE_GYROSCOPE_UNCALIBRATED (16)
+#endif
+#ifndef SENSOR_TYPE_SIGNIFICANT_MOTION
+#define SENSOR_TYPE_SIGNIFICANT_MOTION (17)
+#endif
+#ifndef SENSOR_TYPE_STEP_DETECTOR
+#define SENSOR_TYPE_STEP_DETECTOR (18)
#endif
-//#define SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED (14)
-//#define SENSOR_TYPE_GAME_ROTATION_VECTOR (15)
-//#define SENSOR_TYPE_GYROSCOPE_UNCALIBRATED (16)
-//#define SENSOR_TYPE_SIGNIFICANT_MOTION (17)
-//#define SENSOR_TYPE_STEP_DETECTOR (18)
#ifndef SENSOR_TYPE_STEP_COUNTER
-#define SENSOR_TYPE_STEP_COUNTER (19)
+#define SENSOR_TYPE_STEP_COUNTER (19)
#endif
-//#define SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR (20)
-
-Q_GLOBAL_STATIC(HybrisManager, hybrisManager)
+#ifndef SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR
+#define SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR (20)
+#endif
+#ifndef SENSOR_TYPE_HEART_RATE
+#define SENSOR_TYPE_HEART_RATE (21)
+#endif
+#ifndef SENSOR_TYPE_TILT_DETECTOR
+#define SENSOR_TYPE_TILT_DETECTOR (22)
+#endif
+#ifndef SENSOR_TYPE_WAKE_GESTURE
+#define SENSOR_TYPE_WAKE_GESTURE (23)
+#endif
+#ifndef SENSOR_TYPE_GLANCE_GESTURE
+#define SENSOR_TYPE_GLANCE_GESTURE (24)
+#endif
+#ifndef SENSOR_TYPE_PICK_UP_GESTURE
+#define SENSOR_TYPE_PICK_UP_GESTURE (25)
+#endif
+#ifndef SENSOR_TYPE_WRIST_TILT_GESTURE
+#define SENSOR_TYPE_WRIST_TILT_GESTURE (26)
+#endif
+
+/* ========================================================================= *
+ * UTILITIES
+ * ========================================================================= */
+
+static char const *
+sensorTypeName(int type)
+{
+ switch (type) {
+ case SENSOR_TYPE_META_DATA: return "META_DATA";
+ case SENSOR_TYPE_ACCELEROMETER: return "ACCELEROMETER";
+ case SENSOR_TYPE_GEOMAGNETIC_FIELD: return "GEOMAGNETIC_FIELD";
+ case SENSOR_TYPE_ORIENTATION: return "ORIENTATION";
+ case SENSOR_TYPE_GYROSCOPE: return "GYROSCOPE";
+ case SENSOR_TYPE_LIGHT: return "LIGHT";
+ case SENSOR_TYPE_PRESSURE: return "PRESSURE";
+ case SENSOR_TYPE_TEMPERATURE: return "TEMPERATURE";
+ case SENSOR_TYPE_PROXIMITY: return "PROXIMITY";
+ case SENSOR_TYPE_GRAVITY: return "GRAVITY";
+ case SENSOR_TYPE_LINEAR_ACCELERATION: return "LINEAR_ACCELERATION";
+ case SENSOR_TYPE_ROTATION_VECTOR: return "ROTATION_VECTOR";
+ case SENSOR_TYPE_RELATIVE_HUMIDITY: return "RELATIVE_HUMIDITY";
+ case SENSOR_TYPE_AMBIENT_TEMPERATURE: return "AMBIENT_TEMPERATURE";
+ case SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED: return "MAGNETIC_FIELD_UNCALIBRATED";
+ case SENSOR_TYPE_GAME_ROTATION_VECTOR: return "GAME_ROTATION_VECTOR";
+ case SENSOR_TYPE_GYROSCOPE_UNCALIBRATED: return "GYROSCOPE_UNCALIBRATED";
+ case SENSOR_TYPE_SIGNIFICANT_MOTION: return "SIGNIFICANT_MOTION";
+ case SENSOR_TYPE_STEP_DETECTOR: return "STEP_DETECTOR";
+ case SENSOR_TYPE_STEP_COUNTER: return "STEP_COUNTER";
+ case SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR: return "GEOMAGNETIC_ROTATION_VECTOR";
+ case SENSOR_TYPE_HEART_RATE: return "HEART_RATE";
+ case SENSOR_TYPE_TILT_DETECTOR: return "TILT_DETECTOR";
+ case SENSOR_TYPE_WAKE_GESTURE: return "WAKE_GESTURE";
+ case SENSOR_TYPE_GLANCE_GESTURE: return "GLANCE_GESTURE";
+ case SENSOR_TYPE_PICK_UP_GESTURE: return "PICK_UP_GESTURE";
+ case SENSOR_TYPE_WRIST_TILT_GESTURE: return "WRIST_TILT_GESTURE";
+ }
+
+ static char buf[32];
+ snprintf(buf, sizeof buf, "type%d", type);
+ return buf;
+}
-HybrisManager::HybrisManager(QObject *parent)
- : QObject(parent)
- , device(NULL)
- , sensorList(NULL)
- , module(NULL)
- , sensorsCount(0)
- , sensorMap()
- , registeredAdaptors()
- , adaptorReader(parent)
+static void ObtainTemporaryWakeLock()
{
- init();
+ static bool triedToOpen = false;
+ static int wakeLockFd = -1;
+
+ if (!triedToOpen) {
+ triedToOpen = true;
+ wakeLockFd = ::open("/sys/power/wake_lock", O_RDWR);
+ if (wakeLockFd == -1) {
+ sensordLogW() << "wake locks not available:" << ::strerror(errno);
+ }
+ }
+
+ if (wakeLockFd != -1) {
+ sensordLogD() << "wake lock to guard sensor data io";
+ static const char m[] = "sensorfwd_pass_data 1000000000\n";
+ if (::write(wakeLockFd, m, sizeof m - 1) == -1) {
+ sensordLogW() << "wake locking failed:" << ::strerror(errno);
+ ::close(wakeLockFd), wakeLockFd = -1;
+ }
+ }
}
-HybrisManager::~HybrisManager()
+/* ========================================================================= *
+ * HybrisSensorState
+ * ========================================================================= */
+
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/hybrisadaptor.h
^
|
@@ -26,73 +26,78 @@
#include <QTimer>
#include <QFile>
+#include <pthread.h>
+
#include "deviceadaptor.h"
#include <hardware/sensors.h>
#define SENSORFW_MCE_WATCHER
class HybrisAdaptor;
-class HybrisAdaptorReader : public QThread
+struct HybrisSensorState
{
- Q_OBJECT
- Q_DISABLE_COPY(HybrisAdaptorReader)
-
-public:
+ HybrisSensorState();
+ ~HybrisSensorState();
- HybrisAdaptorReader(QObject *parent);
- ~HybrisAdaptorReader();
-
- void run();
- void stopReader();
- void startReader();
-
-private:
- bool running_;
+ int m_minDelay;
+ int m_maxDelay;
+ int m_delay;
+ int m_active;
+ sensors_event_t m_fallbackEvent;
};
-
class HybrisManager : public QObject
{
Q_OBJECT
public:
- explicit HybrisManager(QObject *parent = 0);
static HybrisManager *instance();
- virtual ~HybrisManager();
-
- int handleForType(int sensorType);
- int maxRange(int sensorType);
- int minDelay(int sensorType);
- int resolution(int sensorType);
-
- bool setDelay(int handle, int interval);
- void startReader(HybrisAdaptor *adaptor);
- void stopReader(HybrisAdaptor *adaptor);
-
- bool resumeReader(HybrisAdaptor *adaptor);
- void standbyReader(HybrisAdaptor *adaptor);
-
- bool openSensors();
- bool closeSensors();
- void registerAdaptor(HybrisAdaptor * adaptor);
-
- void processSample(const sensors_event_t& data);
+ explicit HybrisManager(QObject *parent = 0);
+ virtual ~HybrisManager();
-protected:
- // methods
- void init();
- void closeAllSensors();
+ /* - - - - - - - - - - - - - - - - - - - *
+ * android sensor hal functions
+ * - - - - - - - - - - - - - - - - - - - */
+
+ sensors_event_t *halEventForHandle(int handle) const;
+ int halIndexForHandle(int handle) const;
+ int halIndexForType (int sensorType) const;
+ int halHandleForType (int sensorType) const;
+ float halGetMaxRange (int handle) const;
+ float halGetResolution (int handle) const;
+ int halGetMinDelay (int handle) const;
+ int halGetMaxDelay (int handle) const;
+ int halGetDelay (int handle) const;
+ bool halSetDelay (int handle, int delay_ms);
+ bool halGetActive (int handle) const;
+ bool halSetActive (int handle, bool active);
+
+ /* - - - - - - - - - - - - - - - - - - - *
+ * HybrisManager <--> sensorfwd
+ * - - - - - - - - - - - - - - - - - - - */
+
+ void startReader (HybrisAdaptor *adaptor);
+ void stopReader (HybrisAdaptor *adaptor);
+ void registerAdaptor (HybrisAdaptor * adaptor);
+ void processSample (const sensors_event_t& data);
+private:
// fields
- struct sensors_poll_device_t* device;
- struct sensor_t const* sensorList;
- struct sensors_module_t* module;
- int sensorsCount;
- QMap <int, int> sensorMap; //type, index
- QMap <int, HybrisAdaptor *> registeredAdaptors; //type, obj
- HybrisAdaptorReader adaptorReader;
+ bool m_initialized;
+ QMap <int, HybrisAdaptor *> m_registeredAdaptors; // type -> obj
+ struct sensors_module_t *m_halModule;
+ struct sensors_poll_device_t *m_halDevice;
+ int m_halSensorCount;
+ const struct sensor_t *m_halSensorArray; // [m_halSensorCount]
+ HybrisSensorState *m_halSensorState; // [m_halSensorCount]
+ QMap <int, int> m_halIndexOfType; // type -> index
+ QMap <int, int> m_halIndexOfHandle; // handle -> index
+ pthread_t m_halEventReaderTid;
friend class HybrisAdaptorReader;
+
+private:
+ static void *halEventReaderThread(void *aptr);
};
class HybrisAdaptor : public DeviceAdaptor
@@ -102,47 +107,44 @@
virtual ~HybrisAdaptor();
virtual void init();
- bool addSensorType(int type);
+
virtual bool startAdaptor();
- bool isRunning() const;
+ bool isRunning() const;
virtual void stopAdaptor();
+ void evaluateSensor();
virtual bool startSensor();
virtual void stopSensor();
virtual bool standby();
-
virtual bool resume();
- qreal maxRange;
- qint32 minDelay;
- qreal resolution;
+ virtual void sendInitialData();
friend class HybrisManager;
- int sensorHandle;
- int sensorType;
- int cachedInterval;
-
- virtual void sendInitialData() {}
protected:
virtual void processSample(const sensors_event_t& data) = 0;
+ qreal minRange() const;
+ qreal maxRange() const;
+ qreal resolution() const;
+
+ unsigned int minInterval() const;
+ unsigned int maxInterval() const;
+
virtual unsigned int interval() const;
virtual bool setInterval(const unsigned int value, const int sessionId);
virtual unsigned int evaluateIntervalRequests(int& sessionId) const;
static bool writeToFile(const QByteArray& path, const QByteArray& content);
private:
- void stopReaderThread();
- bool startReaderThread();
-
- QList<int> sensorIds;
- unsigned int interval_;
- bool inStandbyMode_;
- bool running_;
- bool shouldBeRunning_;
+ bool m_inStandbyMode;
+ volatile bool m_isRunning;
+ bool m_shouldBeRunning;
+ int m_sensorHandle;
+ int m_sensorType;
};
#endif // HybrisAdaptor_H
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/loader.cpp
^
|
@@ -31,13 +31,19 @@
#include <QPluginLoader>
#include <QStringList>
#include <QList>
+#include <QDir>
#include <QCoreApplication>
#include "logging.h"
#include "config.h"
+#ifdef USE_SSUSYSINFO
+# include <ssusysinfo/ssusysinfo.h>
+#endif
+
Loader::Loader()
{
+ scanAvailablePlugins();
}
Loader& Loader::instance()
@@ -47,99 +53,183 @@
return the_loader;
}
-bool Loader::loadPluginFile(const QString& name, QString *errorString, QStringList& newPluginNames, QList<PluginBase*>& newPlugins) const
-{
- sensordLogT() << "Loading plugin:" << name;
+#define PLUGIN_PREFIX_ENV "SENSORFW_LIBRARY_PATH"
+#define PLUGIN_DIRECTORY "/usr/lib/sensord-qt5"
+#define PLUGIN_PREFIX "lib"
+#define PLUGIN_SUFFIX "-qt5.so"
+#define SENSOR_SUFFIX "sensor"
-#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
- QString pluginPath = QString::fromLatin1("/usr/lib/sensord/lib%1.so").arg(name);
-#else
- QString pluginPath;
- QByteArray env = qgetenv("SENSORFW_LIBRARY_PATH");
- if (env.isEmpty())
- pluginPath = QString::fromLatin1("/usr/lib/sensord-qt5/lib%1-qt5.so").arg(name);
- else
- pluginPath = QString::fromLatin1(env+"/usr/lib/sensord-qt5/lib%1-qt5.so").arg(name);
+static QString getPluginDirectory()
+{
+ QByteArray env = qgetenv(PLUGIN_PREFIX_ENV);
+ return QString::fromUtf8(env + PLUGIN_DIRECTORY);
+}
-#endif
+static QString getPluginPath(const QString &name)
+{
+ return QString("%1/" PLUGIN_PREFIX "%2" PLUGIN_SUFFIX).arg(getPluginDirectory()).arg(name);
+}
- QPluginLoader qpl(pluginPath);
+bool Loader::loadPluginFile(const QString &name, QString &errorString, QStringList &stack)
+{
+ const QString resolvedName(resolveRealPluginName(name));
+ QPluginLoader qpl(getPluginPath(resolvedName));
qpl.setLoadHints(QLibrary::ExportExternalSymbolsHint);
- if (!qpl.load()) {
- *errorString = qpl.errorString();
- sensordLogC() << "plugin loading error: " << *errorString;
- return false;
- }
-
- QObject* object = qpl.instance();
- if (!object) {
- *errorString = "not able to instanciate";
- sensordLogC() << "plugin loading error: " << *errorString;
- return false;
- }
-
- PluginBase* plugin = qobject_cast<PluginBase*>(object);
- if (!plugin) {
- *errorString = "not a Plugin type";
- sensordLogC() << "plugin loading error: " << *errorString;
- return false;
- }
-
- // Add plugins to the front of the list so they are initialized in reverse order. This will guarantee that dependencies are initialized first for each plugin.
- newPluginNames.prepend(name);
- newPlugins.prepend(plugin);
-
- // Get dependencies
- QStringList requiredPlugins(plugin->Dependencies());
- sensordLogT() << name << " requires: " << requiredPlugins;
-
- bool loaded = true;
- for (int i = 0; i < requiredPlugins.size() && loaded; ++i) {
- if (!(loadedPluginNames_.contains(requiredPlugins.at(i)) ||
- newPluginNames.contains(requiredPlugins.at(i))))
- {
- sensordLogT() << requiredPlugins.at(i) << " is not yet loaded, trying to load.";
- QString resolvedName = resolveRealPluginName(requiredPlugins.at(i));
- sensordLogT() << requiredPlugins.at(i) << " resolved as " << resolvedName << ". Loading";
- loaded = loadPluginFile(resolvedName, errorString, newPluginNames, newPlugins);
+ QObject *object = 0;
+ PluginBase *plugin = 0;
+ sensordLogD() << "Loader loading plugin:" << resolvedName << "as:" << name << "from:" << qpl.fileName();
+ bool loaded = false;
+ bool cyclic = stack.contains(resolvedName);
+ stack.prepend(resolvedName);
+ if (cyclic) {
+ errorString = "cyclic plugin dependency";
+ sensordLogC() << "Plugin has cyclic dependency:" << resolvedName;
+ } else if (loadedPluginNames_.contains(resolvedName)) {
+ sensordLogD() << "Plugin is already loaded:" << resolvedName;
+ loaded = true;
+ } else if (!pluginAvailable(resolvedName)) {
+ errorString = "plugin not available";
+ sensordLogW() << "Plugin not available:" << resolvedName;
+ } else if (!qpl.load()) {
+ errorString = qpl.errorString();
+ sensordLogC() << "Plugin loading error:" << resolvedName << "-" << errorString;
+ } else if (!(object = qpl.instance())) {
+ errorString = "not able to instanciate";
+ sensordLogC() << "Plugin loading error: " << resolvedName << "-" << errorString;
+ } else if (!(plugin = qobject_cast<PluginBase*>(object))) {
+ errorString = "not a Plugin type";
+ sensordLogC() << "Plugin loading error: " << resolvedName << "-" << errorString;
+ } else {
+ loaded = true;
+ QStringList dependencies(plugin->Dependencies());
+ sensordLogD() << resolvedName << "requires:" << dependencies;
+ foreach (const QString &dependency, dependencies) {
+ if (!(loaded = loadPluginFile(dependency, errorString, stack))) {
+ break;
+ }
+ }
+ if (loaded) {
+ plugin->Register(*this);
+ loadedPluginNames_.append(resolvedName);
+ plugin->Init(*this);
}
}
+ stack.removeOne(resolvedName);
+ if (!loaded) {
+ invalidatePlugin(resolvedName);
+ }
return loaded;
}
-bool Loader::loadPlugin(const QString& name, QString* errorString)
+bool Loader::loadPlugin(const QString& name, QString *errorString)
{
QString error;
- bool loaded = false;
- QStringList newPluginNames;
- QList<PluginBase*> newPlugins;
-
- if (loadedPluginNames_.contains(name)) {
- sensordLogD() << "Plugin already loaded.";
- return true;
+ QStringList stack;
+ bool loaded = loadPluginFile(name, error, stack);
+ if (!loaded && errorString) {
+ *errorString = error;
}
+ return loaded;
+}
- if (loadPluginFile(name, &error, newPluginNames, newPlugins)) {
+#ifdef USE_SSUSYSINFO
+static ssusysinfo_t *ssusysinfo = 0;
+#endif
- // Register newly loaded plugins
- foreach (PluginBase* base, newPlugins) {
- base->Register(*this);
+static bool evaluateAvailabilityValue(const QString &name, const QString &val)
+{
+ bool available = true;
+ if (val.startsWith("Feature_")) {
+#ifdef USE_SSUSYSINFO
+ const QStringList features(val.split("|"));
+ bool allow = false;
+ bool deny = false;
+ foreach(const QString &feature, features) {
+ hw_feature_t id = ssusysinfo_hw_feature_from_name(feature.toUtf8().constData());
+ if (id == Feature_Invalid ) {
+ sensordLogW() << "unknown hw feature:" << feature;
+ continue;
+ }
+ if( ssusysinfo_has_hw_feature(ssusysinfo, id) ) {
+ allow = true;
+ break;
+ }
+ deny = true;
}
- loadedPluginNames_.append(newPluginNames);
- loaded = true;
+ if( deny && !allow ) {
+ sensordLogD() << "plugin disabled in hw-config: " << name << "value" << val;
+ available = false;
+ }
+#else
+ // When compiled without ssu-support, these are enabled by design
+ sensordLogD() << "sensor plugin enabled implicitly: " << name << "value" << val;
+#endif
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/loader.h
^
|
@@ -50,8 +50,31 @@
* @param name plugin name.
* @param errorMessage object to write error message if plugin loading
* fails. If NULL then error message is not written.
+ * @return true on success, false on failure
*/
- bool loadPlugin(const QString& name, QString* errorMessage = 0);
+ bool loadPlugin(const QString &name, QString *errorMessage = 0);
+
+ /**
+ * Test if a plugin is available for loading
+ *
+ * @param name plugin name
+ * @return true if plugin is available, false if not
+ */
+ bool pluginAvailable(const QString &name) const;
+
+ /**
+ * Get a list of plugins available for loading
+ *
+ * @return Array of plugin names
+ */
+ QStringList availablePlugins() const;
+
+ /**
+ * Get a list of sensor plugins available for loading
+ *
+ * @return Array of plugin names
+ */
+ QStringList availableSensorPlugins() const;
private:
Loader();
@@ -63,10 +86,11 @@
*
* @param name plugin to load.
* @param errorString object to write error message if plugin loading fails.
- * @param newPluginNames List of new loaded plugin names.
- * @param newPlugin List of new loaded plugin objects.
+ * @param stack Pending plugin load stack for detecting circular dependencies.
*/
- bool loadPluginFile(const QString& name, QString *errorString, QStringList& newPluginNames, QList<PluginBase*>& newPlugins) const;
+ bool loadPluginFile(const QString &name, QString &errorString, QStringList &stack);
+
+ void invalidatePlugin(const QString &name);
/**
* Resolve plugin name.
@@ -74,9 +98,13 @@
* @param pluginName plugin name.
* @return resolved plugin name.
*/
- QString resolveRealPluginName(const QString& pluginName) const;
+ QString resolveRealPluginName(const QString &pluginName) const;
QStringList loadedPluginNames_; /**< list of loaded plugins */
+
+ QStringList availablePluginNames_; /**< list of loaded plugins */
+
+ void scanAvailablePlugins();
};
#endif
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/logging.h
^
|
@@ -29,10 +29,9 @@
#include <QDebug>
-#define sensordLogT() (qDebug())
-#define sensordLogD() (qDebug())
-#define sensordLogW() (qWarning())
-#define sensordLogC() (qCritical())
-#define sensordLog() (qDebug())
+#define sensordLogT(ARGS_...) (qDebug(ARGS_))
+#define sensordLogD(ARGS_...) (qInfo(ARGS_))
+#define sensordLogW(ARGS_...) (qWarning(ARGS_))
+#define sensordLogC(ARGS_...) (qCritical(ARGS_))
#endif //LOGGING_H
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/lsclient.cpp
^
|
@@ -0,0 +1,191 @@
+/**
+ @file lsclient.cpp
+ @brief LunaService signal utility
+
+ <p>
+ Copyright (C) 2009-2010 Nokia Corporation
+ Copyright (C) 2015-2018 Nikolay Nizov
+
+ @author Timo Rongas <ext-timo.2.rongas@nokia.com>
+ @author Lihan Guo <ext-lihan.4.guo@nokia.com>
+ @author Nikolay Nizov <nizovn@gmail.com>
+
+ This file is part of Sensord.
+
+ Sensord is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License
+ version 2.1 as published by the Free Software Foundation.
+
+ Sensord is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with Sensord. If not, see <http://www.gnu.org/licenses/>.
+ </p>
+ */
+
+#include "lsclient.h"
+#include "JSONUtils.h"
+#include "HostBase.h"
+#include <json.h>
+
+#define URI_SIGNAL_ADDMATCH "palm://com.palm.lunabus/signal/addmatch"
+#define JSON_CHARGER_SIGNAL_ADDMATCH "{\"category\":\"/com/palm/power\",\"method\":\"chargerStatus\"}"
+#define URI_DISPLAY_STATUS "palm://com.palm.display/control/status"
+#define JSON_DISPLAY_SUBSCRIBE "{\"subscribe\":true}"
+
+LSClient::LSClient(QObject* parent) : QObject(parent),
+ displayState(true),
+ powerSave(true)
+{
+ bool retVal;
+ LSError lserror;
+ LSErrorInit(&lserror);
+ LSHandle *serviceHandle;
+
+ retVal = LSRegister("com.nokia.SensorService", &serviceHandle, &lserror);
+ if (!retVal) {
+ goto error;
+ }
+
+ retVal = LSCall(serviceHandle, URI_SIGNAL_ADDMATCH, JSON_CHARGER_SIGNAL_ADDMATCH, LSClient::chargerCallback, this, NULL, &lserror);
+ if (!retVal) {
+ goto error;
+ }
+
+ retVal = LSCall(serviceHandle, URI_DISPLAY_STATUS, JSON_DISPLAY_SUBSCRIBE, LSClient::displayCallback, this, NULL, &lserror);
+ if (!retVal) {
+ goto error;
+ }
+
+ retVal = LSGmainAttach(serviceHandle, HostBase::instance()->mainLoop(), &lserror);
+ if (!retVal) {
+ goto error;
+ }
+
+ return;
+
+error:
+ if (LSErrorIsSet(&lserror)) {
+ LSErrorPrint(&lserror, stderr);
+ LSErrorFree(&lserror);
+ }
+
+ qDebug() << "Unable to start service.";
+}
+
+bool LSClient::displayEnabled() const
+{
+ return displayState;
+}
+
+bool LSClient::PSMEnabled() const
+{
+ return powerSave;
+}
+
+bool LSClient::chargerCallback(LSHandle *sh, LSMessage *message, void *ctx)
+{
+ LSError lserror;
+ LSErrorInit(&lserror);
+
+ // {"type": string, "connected": boolean}
+ VALIDATE_SCHEMA_AND_RETURN(sh,
+ message,
+ SCHEMA_2(REQUIRED(type, string), REQUIRED(connected, boolean)));
+
+ LSClient* lsclient = (LSClient*)ctx;
+
+ json_object* label = 0;
+ json_object* root = 0;
+ bool newState = true;
+ const char* str = LSMessageGetPayload(message);
+ if (!str)
+ goto error;
+
+ root = json_tokener_parse(str);
+ if (!root || is_error(root))
+ goto error;
+
+ label = json_object_object_get(root, "connected");
+ if (!label)
+ goto error;
+
+ newState = !json_object_get_boolean(label);
+
+ if (lsclient->powerSave != newState)
+ {
+ lsclient->powerSave = newState;
+ emit lsclient->devicePSMStateChanged(newState);
+ }
+
+error:
+
+ if (root && !is_error(root))
+ json_object_put(root);
+
+ return true;
+}
+
+bool LSClient::displayCallback(LSHandle *sh, LSMessage *message, void *ctx)
+{
+ LSError lserror;
+ LSErrorInit(&lserror);
+
+ VALIDATE_SCHEMA_AND_RETURN(sh,
+ message,
+ SCHEMA_7(
+ REQUIRED(returnValue, boolean),
+ REQUIRED(event, string),
+ OPTIONAL(state, string),
+ OPTIONAL(timeout, integer),
+ OPTIONAL(blockDisplay, string),
+ OPTIONAL(active, boolean),
+ OPTIONAL(subscribed, boolean)
+ ));
+
+ LSClient* lsclient = (LSClient*)ctx;
+
+ json_object* root = 0;
+ const char* value = 0;
+ bool newState = true;
+ bool ret = false;
+ const char* str = LSMessageGetPayload(message);
+ if (!str)
+ goto error;
+
+ root = json_tokener_parse(str);
+ if (!root || is_error(root))
+ goto error;
+
+ ret = json_object_get_boolean(json_object_object_get(root, "returnValue"));
+ if (!ret)
+ goto error;
+
+ value = json_object_get_string(json_object_object_get(root, "event"));
+ if (!value || is_error(value))
+ goto error;
+
+ if (0 == strcmp (value, "displayOff"))
+ newState = false;
+
+ value = json_object_get_string(json_object_object_get(root, "state"));
+ if (value && !is_error(value))
+ if (0 == strcmp (value, "off"))
+ newState = false;
+
+ if (lsclient->displayState != newState)
+ {
+ lsclient->displayState = newState;
+ emit lsclient->displayStateChanged(newState);
+ }
+
+error:
+
+ if (root && !is_error(root))
+ json_object_put(root);
+
+ return true;
+}
\ No newline at end of file
|
[-]
[+]
|
Added |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/lsclient.h
^
|
@@ -0,0 +1,103 @@
+/**
+ @file lsclient.h
+ @brief LunaService signal utility
+
+ <p>
+ Copyright (C) 2009-2010 Nokia Corporation
+ Copyright (C) 2015-2018 Nikolay Nizov
+
+ @author Timo Rongas <ext-timo.2.rongas@nokia.com>
+ @author Lihan Guo <ext-lihan.4.guo@nokia.com>
+ @author Antti Virtanen <antti.i.virtanen@nokia.com>
+ @author Nikolay Nizov <nizovn@gmail.com>
+
+ This file is part of Sensord.
+
+ Sensord is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License
+ version 2.1 as published by the Free Software Foundation.
+
+ Sensord is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with Sensord. If not, see <http://www.gnu.org/licenses/>.
+ </p>
+ */
+
+#ifndef SENSORD_LUNA_SERVICE_CLIENT_H
+#define SENSORD_LUNA_SERVICE_CLIENT_H
+
+#include <QObject>
+#include <luna-service2/lunaservice.h>
+
+/**
+ * Class for monitoring various LS signals.
+ */
+class LSClient : public QObject
+{
+ Q_OBJECT
+ Q_DISABLE_COPY(LSClient)
+
+public:
+ /**
+ * Constructor.
+ *
+ * @param parent Parent object.
+ */
+ LSClient(QObject* parent = 0);
+
+ /**
+ * Get display state.
+ *
+ * @return display state.
+ */
+ bool displayEnabled() const;
+
+ /**
+ * Get powersave-mode state.
+ *
+ * @return powersave-mode state.
+ */
+ bool PSMEnabled() const;
+
+signals:
+ /**
+ * Emitted when display state has changed.
+ *
+ * @param displayOn \c true if display went to 'on' or 'dimmed',
+ * \c false if 'off'.
+ */
+ void displayStateChanged(bool displayOn);
+
+ /**
+ * Emitted when powersave-mode has changed.
+ *
+ * @param PSM is powersave-mode enabled or not.
+ */
+ void devicePSMStateChanged(bool PSM);
+
+private slots:
+ /**
+ * Slot for LS display state change signals.
+ *
+ * @param state name of the state.
+ */
+ static bool displayCallback(LSHandle *sh, LSMessage *message, void *ctx);
+
+ /**
+ * Slot for LS powersave-mode state change signals.
+ *
+ * @param mode is powersave-mode enabled or not.
+ */
+ static bool chargerCallback(LSHandle *sh, LSMessage *message, void *ctx);
+
+private:
+ bool displayState; /**< current display state */
+ bool powerSave; /**< current powersave-mode state */
+
+};
+
+#endif // SENSORD_LUNA_SERVICE_CLIENT_H
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/nodebase.cpp
^
|
@@ -80,7 +80,7 @@
{
if (!m_dataRangeList.contains(range))
{
- sensordLogD() << "Introduced new data range: " << range.min << "-" << range.max << ", " << range.resolution;
+ sensordLogD() << "Introduced new data range for '" << id_ << "':" << range.min << "-" << range.max << "," << range.resolution;
m_dataRangeList.append(range);
}
}
@@ -273,7 +273,7 @@
{
if (!m_intervalList.contains(interval))
{
- sensordLogD() << "Introduced new interval: " << interval.min << "-" << interval.max;
+ sensordLogD() << "Introduced new interval for '" << id_ << "':" << interval.min << "-" << interval.max;
m_intervalList.append(interval);
}
}
@@ -375,7 +375,7 @@
bool NodeBase::setStandbyOverrideRequest(const int sessionId, const bool override)
{
- sensordLogD() << sessionId << " requested standbyoverride for '" << id() << "' :" << override;
+ sensordLogD() << sessionId << "requested standbyoverride for '" << id() << "' :" << override;
// Only store true requests, id is enough, no need for value
if (override == false)
{
@@ -459,7 +459,7 @@
{
if (!isValidIntervalRequest(value))
{
- sensordLogW() << "Attempting to define invalid default data rate: " << value;
+ sensordLogW() << "Attempting to define invalid default data rate:" << value;
return false;
}
m_defaultInterval = value;
@@ -711,36 +711,41 @@
{
Q_UNUSED(range);
Q_UNUSED(sessionId);
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return false;
}
bool NodeBase::setStandbyOverride(bool override)
{
Q_UNUSED(override);
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return false;
}
unsigned int NodeBase::interval() const
{
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return 0;
}
bool NodeBase::setInterval(unsigned int value, int sessionId)
{
- sensordLogW() << "setInterval() not implemented in some node using it.";
Q_UNUSED(value);
Q_UNUSED(sessionId);
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return false;
}
bool NodeBase::setBufferSize(unsigned int value)
{
Q_UNUSED(value);
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return false;
}
bool NodeBase::setBufferInterval(unsigned int value)
{
Q_UNUSED(value);
+ sensordLogD() << __func__ << "not implemented in some node using it.";
return false;
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/sensormanager.cpp
^
|
@@ -36,6 +36,9 @@
#ifdef SENSORFW_MCE_WATCHER
#include "mcewatcher.h"
#endif // SENSORFW_MCE_WATCHER
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+#include "lsclient.h"
+#endif // SENSORFW_LUNA_SERVICE_CLIENT
#include <QSocketNotifier>
#include <errno.h>
#include "sockethandler.h"
@@ -144,6 +147,17 @@
this, SLOT(devicePSMStateChanged(const bool)));
#endif //SENSORFW_MCE_WATCHER
+
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+
+ lsClient_ = new LSClient(this);
+ connect(lsClient_, SIGNAL(displayStateChanged(const bool)),
+ this, SLOT(displayStateChanged(const bool)));
+
+ connect(lsClient_, SIGNAL(devicePSMStateChanged(const bool)),
+ this, SLOT(devicePSMStateChanged(const bool)));
+
+#endif //SENSORFW_LUNA_SERVICE_CLIENT
}
SensorManager::~SensorManager()
@@ -203,6 +217,10 @@
#ifdef SENSORFW_MCE_WATCHER
delete mceWatcher_;
#endif //SENSORFW_MCE_WATCHER
+
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+ delete lsClient_;
+#endif //SENSORFW_LUNA_SERVICE_CLIENT
}
void SensorManager::setError(SensorManagerError errorCode, const QString& errorString)
@@ -292,7 +310,7 @@
void SensorManager::removeSensor(const QString& id)
{
- sensordLogD() << "Removing sensor: " << id;
+ sensordLogD() << "SensorManager removing sensor:" << id;
QMap<QString, SensorInstanceEntry>::iterator entryIt = sensorInstanceMap_.find(id);
bus().unregisterObject(OBJECT_PATH + "/" + id);
@@ -303,7 +321,7 @@
bool SensorManager::loadPlugin(const QString& name)
{
- sensordLogD() << "Loading plugin: " << name;
+ sensordLogD() << "SensorManager loading plugin:" << name;
QString errorMessage;
bool result;
@@ -315,9 +333,27 @@
return result;
}
+QStringList SensorManager::availablePlugins() const
+{
+ Loader& l = Loader::instance();
+ return l.availablePlugins();
+}
+
+bool SensorManager::pluginAvailable(const QString &name) const
+{
+ Loader& l = Loader::instance();
+ return l.pluginAvailable(name);
+}
+
+QStringList SensorManager::availableSensorPlugins() const
+{
+ Loader& l = Loader::instance();
+ return l.availableSensorPlugins();
+}
+
int SensorManager::requestSensor(const QString& id)
{
- sensordLogD() << "Requesting sensor: " << id;
+ sensordLogD() << "Requesting sensor:" << id;
clearError();
@@ -422,7 +458,7 @@
{
chain = chainFactoryMap_[type](id);
Q_ASSERT(chain);
- sensordLogD() << "Instantiated chain '" << id << "'. Valid = " << chain->isValid();
+ sensordLogD() << "Instantiated chain '" << id << "'. Valid =" << chain->isValid();
entryIt.value().cnt_++;
entryIt.value().chain_ = chain;
@@ -481,7 +517,7 @@
DeviceAdaptor* SensorManager::requestDeviceAdaptor(const QString& id)
{
- sensordLogD() << "Requesting adaptor: " << id;
+ sensordLogD() << "Requesting adaptor:" << id;
clearError();
if( id.contains(';') ) // no parameter passing in release
@@ -499,7 +535,7 @@
Q_ASSERT( entryIt.value().adaptor_ );
da = entryIt.value().adaptor_;
entryIt.value().cnt_++;
- sensordLogD() << "Found adaptor '" << id << "'. Ref count: " << entryIt.value().cnt_;
+ sensordLogD() << "Found adaptor '" << id << "'. Ref count:" << entryIt.value().cnt_;
}
else
{
@@ -520,7 +556,7 @@
{
entryIt.value().adaptor_ = da;
entryIt.value().cnt_++;
- sensordLogD() << "Instantiated adaptor '" << id << "'. Valid = " << da->isValid();
+ sensordLogD() << "Instantiated adaptor '" << id << "'. Valid =" << da->isValid();
}
else
{
@@ -545,7 +581,7 @@
void SensorManager::releaseDeviceAdaptor(const QString& id)
{
- sensordLogD() << "Releasing adaptor: " << id;
+ sensordLogD() << "Releasing adaptor:" << id;
clearError();
if( id.contains(';') ) // no parameter passing in release
@@ -576,7 +612,7 @@
}
else
{
- sensordLogD() << "Adaptor '" << id << "' has ref count: " << entryIt.value().cnt_;
+ sensordLogD() << "Adaptor '" << id << "' has ref count:" << entryIt.value().cnt_;
}
}
else
@@ -592,7 +628,7 @@
FilterBase* SensorManager::instantiateFilter(const QString& id)
{
- sensordLogD() << "Instantiating filter: " << id;
+ sensordLogD() << "Instantiating filter:" << id;
QMap<QString, FilterFactoryMethod>::iterator it = filterFactoryMap_.find(id);
if(it == filterFactoryMap_.end())
@@ -655,12 +691,16 @@
void SensorManager::displayStateChanged(bool displayState)
{
- sensordLogD() << "Signal detected, display state changed to: " << displayState;
+ sensordLogD() << "Signal detected, display state changed to:" << displayState;
if (displayState) {
/// Emit signal to make background calibration resume from sleep
emit displayOn();
#ifdef SENSORFW_MCE_WATCHER
if (!mceWatcher_->PSMEnabled())
+#else
+ #ifdef SENSORFW_LUNA_SERVICE_CLIENT
+ if (!lsClient_->PSMEnabled())
+ #endif // SENSORFW_LUNA_SERVICE_CLIENT
#endif // SENSORFW_MCE_WATCHER
{
emit resumeCalibration();
@@ -807,6 +847,13 @@
}
#endif // SENSORFW_MCE_WATCHER
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+LSClient* SensorManager::LSClient_instance() const
+{
+ return lsClient_;
+}
+#endif // SENSORFW_LUNA_SERVICE_CLIENT
+
#ifdef SM_PRINT
void SensorManager::print() const
{
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/sensormanager.h
^
|
@@ -45,6 +45,10 @@
class MceWatcher;
#endif
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+#include "lsclient.h"
+#endif
+
class QSocketNotifier;
class SocketHandler;
@@ -273,6 +277,27 @@
bool loadPlugin(const QString& name);
/**
+ * Test if a plugin is available
+ *
+ * @return true if plugin exists, false otherwise
+ */
+ bool pluginAvailable(const QString &name) const;
+
+ /**
+ * List all available plugins.
+ *
+ * @return array of plugin names
+ */
+ QStringList availablePlugins() const;
+
+ /**
+ * List available sensor plugins.
+ *
+ * @return array of plugin names
+ */
+ QStringList availableSensorPlugins() const;
+
+ /**
* Request sensor.
*
* @param id Sensor ID.
@@ -322,6 +347,15 @@
MceWatcher* MCEWatcher() const;
#endif
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+ /**
+ * Get pointer to LSClient instance.
+ *
+ * @return LSClient instance pointer.
+ */
+ LSClient* LSClient_instance() const;
+#endif
+
double magneticDeviation();
void setMagneticDeviation(double level);
@@ -334,14 +368,14 @@
void lostClient(int sessionId);
/**
- * Callback for MCE display state change event.
+ * Callback for MCE or LS display state change event.
*
* @param displayState display state.
*/
void displayStateChanged(bool displayState);
/**
- * Callback for MCE powersave mode change event.
+ * Callback for MCE or LS powersave mode change event.
*
* @param deviceMode device PSM state.
*/
@@ -450,6 +484,9 @@
SocketHandler* socketHandler_; /**< socket handler */
MceWatcher* mceWatcher_; /**< MCE watcher */
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+ LSClient* lsClient_; /**< LS client */
+#endif
SensorManagerError errorCode_; /** global error code */
QString errorString_; /** global error description */
int pipefds_[2]; /** pipe for sensor samples */
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/sensormanager_a.cpp
^
|
@@ -54,16 +54,31 @@
return sensorManager()->loadPlugin(name);
}
+QStringList SensorManagerAdaptor::availablePlugins() const
+{
+ return sensorManager()->availablePlugins();
+}
+
+bool SensorManagerAdaptor::pluginAvailable(const QString &name) const
+{
+ return sensorManager()->pluginAvailable(name);
+}
+
+QStringList SensorManagerAdaptor::availableSensorPlugins() const
+{
+ return sensorManager()->availableSensorPlugins();
+}
+
int SensorManagerAdaptor::requestSensor(const QString &id, qint64 pid)
{
int session = sensorManager()->requestSensor(id);
- sensordLog() << "Sensor '" << id << "' requested. Created session: " << session << ". Client PID: " << pid;
+ sensordLogD() << "Sensor '" << id << "' requested. Created session: " << session << ". Client PID: " << pid;
return session;
}
bool SensorManagerAdaptor::releaseSensor(const QString &id, int sessionId, qint64 pid)
{
- sensordLog() << "Sensor '" << id << "' release requested for session " << sessionId << ". Client PID: " << pid;
+ sensordLogD() << "Sensor '" << id << "' release requested for session " << sessionId << ". Client PID: " << pid;
return sensorManager()->releaseSensor(id, sessionId);
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/core/sensormanager_a.h
^
|
@@ -88,6 +88,27 @@
bool loadPlugin(const QString& name);
/**
+ * Test if a plugin is available
+ *
+ * @return true if plugin exists, false otherwise
+ */
+ bool pluginAvailable(const QString& name) const;
+
+ /**
+ * List all available plugins.
+ *
+ * @return array of plugin names
+ */
+ QStringList availablePlugins() const;
+
+ /**
+ * List available sensor plugins.
+ *
+ * @return array of plugin names
+ */
+ QStringList availableSensorPlugins() const;
+
+ /**
* Request new sensor session to be created.
*
* @param id Sensor ID.
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/debian/rules
^
|
@@ -48,7 +48,7 @@
dh_testdir
# Add here commands to configure the package.
- cd $(BUILD_DIR) && qmake $(QMAKECONFIG) CONFIG+="configs" "QMAKE_CXXFLAGS=$(CFLAGS)" "MAKE_DOCS=$(MAKE_DOCS)" ../$(PROJECT_NAME).pro
+ cd $(BUILD_DIR) && qmake $(QMAKECONFIG) CONFIG+="configs" CONFIG+="autohybris" "QMAKE_CXXFLAGS=$(CFLAGS)" "MAKE_DOCS=$(MAKE_DOCS)" ../$(PROJECT_NAME).pro
export LD_RUN_PATH=/usr/lib/sensord-qt5/
touch configure-stamp
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/doc/PLUGIN-GUIDE
^
|
@@ -221,7 +221,8 @@
(1) /etc/sensorfw/sensord.conf
(2) /etc/sensorfw/sensord.conf.d/
-Any option set in (1) will override options set in any of the files in (2). Files in (2) are given priority based on alphanumeric order. Using double-digits as the beginning of the filename for clarity is encouraged.
+Any option set in (1) will override options set in any of the files in (2). Files in (2) are processed in alpha-numerical order, and later files can override settings from earlier files. Using double-digits as the beginning of the filename for clarity is encouraged.
+
Configuration files contain sections for different HW. These sections should connect plugin metanames (sampleadaptor) with the real plugin that should be used (sampleadaptor-inputdev). The configuration file also contains option 'deviceId', which specifies which section should be used. This will be removed once we have automatic detection of underlying HW in place.
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/doc/mainpage.h
^
|
@@ -694,9 +694,9 @@
(1) /etc/sensorfw/sensord.conf
(2) /etc/sensorfw/sensord.conf.d/
-Any option set in (1) will override options set in any of the files in (2). Files in (2) are given
-priority based on alphanumeric order. Using double-digits as the beginning of the filename for
-clarity is encouraged.
+Any option set in (1) will override options set in any of the files in (2). Files in (2) are
+processed in alpha-numerical order, and later files can override settings from earlier files.
+Using double-digits as the beginning of the filename for clarity is encouraged.
Configuration files contain sections for different HW. These sections should connect plugin
metanames (sampleadaptor) with the real plugin that should be used (sampleadaptor-inputdev).
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/examples/sensorplugin/samplesensor_a.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file accelerometersensor_a.cpp
+ @file samplesensor_a.cpp
@brief Sample D-Bus adaptor for sensors
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/filters/magcoordinatealignfilter/magcoordinatealignfilterplugin.cpp
^
|
@@ -1,6 +1,6 @@
/**
- @file MagCoordinateAlignFilterPlugin.cpp
- @brief Plugin for CoordinateAlignFilter
+ @file magcoordinatealignfilterplugin.cpp
+ @brief Plugin for MagCoordinateAlignFilter
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/filters/magcoordinatealignfilter/magcoordinatealignfilterplugin.h
^
|
@@ -1,6 +1,6 @@
/**
- @file coordinatealignfilterplugin.h
- @brief Plugin for CoordinateAlignFilter
+ @file magcoordinatealignfilterplugin.h
+ @brief Plugin for MagCoordinateAlignFilter
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/filters/rotationfilter/rotationfilterplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file rotationfilterplugin.cppp
+ @file rotationfilterplugin.cpp
@brief Plugin for RotationFilter
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/qt-api/abstractsensor_i.cpp
^
|
@@ -31,6 +31,9 @@
#ifdef SENSORFW_MCE_WATCHER
#include "mcewatcher.h"
#endif
+#ifdef SENSORFW_LUNA_SERVICE_CLIENT
+#include "lsclient.h"
+#endif
struct AbstractSensorChannelInterface::AbstractSensorChannelInterfaceImpl : public QDBusAbstractInterface
{
@@ -80,6 +83,12 @@
QObject::connect(mcewatcher,SIGNAL(displayStateChanged(bool)),
this,SLOT(displayStateChanged(bool)),Qt::UniqueConnection);
#endif
+#ifdef SENSORFW_LUNA_SERVICE
+ LSClient *lsclient;
+ lsclient = new LSClient(this);
+ QObject::connect(lsclient,SIGNAL(displayStateChanged(bool)),
+ this,SLOT(displayStateChanged(bool)),Qt::UniqueConnection);
+#endif
}
AbstractSensorChannelInterface::~AbstractSensorChannelInterface()
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/qt-api/lidsensor_i.h
^
|
@@ -1,6 +1,6 @@
/**
- @file alssensor_i.h
- @brief Interface for ALSSensor
+ @file lidsensor_i.h
+ @brief Interface for LidSensor
<p>
Copyright (C) 2016 Canonical, Ltd.
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensord/main.cpp
^
|
@@ -1,5 +1,3 @@
-
-
/**
@file main.cpp
@brief Sensord initiation point
@@ -32,13 +30,16 @@
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
+#include <QSocketNotifier>
#include <systemd/sd-daemon.h>
+#include <unistd.h>
#include <signal.h>
#include <iostream>
#include <errno.h>
#include <unistd.h>
+#include <fcntl.h>
#include "config.h"
#include "sensormanager.h"
@@ -50,9 +51,27 @@
static QtMsgType logLevel;
static QtMessageHandler previousMessageHandler;
+static int normalizeLevel(QtMsgType type)
+{
+ /* Map QtMsgType enum values to something that hopefully
+ * makes sense in less-than / greater-than sense too. */
+ switch (type) {
+ case QtDebugMsg:
+ return 0;
+ case QtInfoMsg:
+ return 1;
+ case QtWarningMsg:
+ return 3;
+ case QtCriticalMsg:
+ return 4;
+ default:
+ return static_cast<int>(type);
+ }
+}
+
static void messageOutput(QtMsgType type, const QMessageLogContext &context, const QString &str)
{
- if (type < logLevel)
+ if (normalizeLevel(type) < normalizeLevel(logLevel))
return;
previousMessageHandler(type, context, str);
@@ -63,11 +82,14 @@
void signalUSR1(int param)
{
Q_UNUSED(param);
-
- logLevel = QtMsgType(logLevel + 1);
- if (logLevel > QtSystemMsg)
+ if (logLevel != QtDebugMsg) {
logLevel = QtDebugMsg;
- qDebug() << "New debugging level: " << logLevel;
+ sensordLogW() << "Debug logging enabled";
+ }
+ else {
+ logLevel = QtWarningMsg;
+ sensordLogW() << "Debug logging disabled";
+ }
}
void signalUSR2(int param)
@@ -87,10 +109,92 @@
void signalINT(int param)
{
- Q_UNUSED(param);
+ signal(param, SIG_DFL);
+ sensordLogD() << "Terminating ...";
QCoreApplication::exit(0);
}
+class SignalNotifier : public QObject
+{
+public:
+ SignalNotifier();
+ ~SignalNotifier();
+private slots:
+ void handleSignalInput(int socket);
+private:
+ static void handleAsyncSignal(int sig);
+ QSocketNotifier *m_socketNotifier;
+ static int s_pipe[2];
+ static const int s_signals[];
+};
+
+SignalNotifier::SignalNotifier()
+ : m_socketNotifier(0)
+{
+ sensordLogD() << "Setup async signal handlers";
+ if (pipe2(s_pipe, O_CLOEXEC) == -1) {
+ qFatal("Failed to create a pipe for signal passunc");
+ }
+ m_socketNotifier = new QSocketNotifier(s_pipe[0], QSocketNotifier::Read, this);
+ connect(m_socketNotifier, &QSocketNotifier::activated,
+ this, &SignalNotifier::handleSignalInput);
+ struct sigaction action;
+ memset(&action, 0, sizeof action);
+ action.sa_handler = handleAsyncSignal;
+ sigemptyset(&action.sa_mask);
+ action.sa_flags = SA_RESTART;
+ for (size_t i = 0; s_signals[i] != -1; ++i )
+ sigaction(s_signals[i], &action, 0);
+}
+
+SignalNotifier::~SignalNotifier()
+{
+ sensordLogD() << "Reset async signal handlers";
+ for (size_t i = 0; s_signals[i] != -1; ++i )
+ signal(s_signals[i], SIG_DFL);
+ delete m_socketNotifier; m_socketNotifier = 0;
+ close(s_pipe[1]), s_pipe[1] = -1;
+ close(s_pipe[0]), s_pipe[0] = -1;
+}
+
+void SignalNotifier::handleAsyncSignal(int sig)
+{
+ /* Can call only async-signal safe functions! */
+ if (write(s_pipe[1], &sig, sizeof sig) == -1) {
+ _exit(EXIT_FAILURE);
+ }
+}
+
+void SignalNotifier::handleSignalInput(int socket)
+{
+ Q_UNUSED(socket);
+ int sig = SIGTERM;
+ uint64_t tmp = 0;
+ if (read(s_pipe[0], &sig, sizeof sig) == -1) {
+ // dontcare
+ }
+ sensordLogD() << "Caught async signal" << strsignal(sig);
+ switch (sig) {
+ case SIGINT:
+ case SIGTERM:
+ signalINT(sig);
+ break;
+ case SIGUSR1:
+ signalUSR1(sig);
+ break;
+ case SIGUSR2:
+ signalUSR2(sig);
+ break;
+ };
+}
+
+int SignalNotifier::s_pipe[2] = { -1, -1 };
+
+const int SignalNotifier::s_signals[] =
+{
+ SIGINT, SIGTERM, SIGUSR1, SIGUSR2, -1
+};
+
int main(int argc, char *argv[])
{
previousMessageHandler = qInstallMessageHandler(messageOutput);
@@ -133,10 +237,6 @@
}
}
- signal(SIGUSR1, signalUSR1);
- signal(SIGUSR2, signalUSR2);
- signal(SIGINT, signalINT);
-
if (parser.createDaemon())
{
fflush(0);
@@ -182,7 +282,10 @@
sd_notify(0, "READY=1");
}
+ SignalNotifier *signalNotifier = new SignalNotifier();
int ret = app.exec();
+ delete signalNotifier; signalNotifier = 0;
+
sensordLogD() << "Exiting...";
Config::close();
return ret;
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensord/parser.cpp
^
|
@@ -56,8 +56,10 @@
{
data = opt.split("=");
QString logLevel = data.at(1);
- if (logLevel == "test" || logLevel == "debug")
+ if (logLevel == "test")
logLevel_ = QtDebugMsg;
+ else if (logLevel == "debug")
+ logLevel_ = QtInfoMsg;
else if (logLevel == "warning")
logLevel_ = QtWarningMsg;
else if (logLevel == "critical")
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensorfw.pro
^
|
@@ -1,5 +1,17 @@
-load(configure)
-qtCompileTest(hybris)
+# RPM build: Hybris plugin has separate spec file that does:
+# qmake CONFIG+=hybris
+# And pro-file behavioral differences are handled via:
+# contains(CONFIG,hybris) { ... }
+#
+# Debian builds: debian/rules triggers build time hybris check:
+# qmake CONFIG+=autohybris
+# And pro-file behavioral differences are handled via:
+# config_hybris { ... }
+
+contains(CONFIG,autohybris) {
+ load(configure)
+ qtCompileTest(hybris)
+}
TEMPLATE = subdirs
CONFIG += ordered
@@ -92,7 +104,8 @@
DBUSCONFIGFILES.path = /etc/dbus-1/system.d
INSTALLS += DBUSCONFIGFILES
- SENSORDCONFIGFILES.files = config/90-sensord-default.conf
+ SENSORDCONFIGFILES.files = config/10-sensord-default.conf
+ SENSORDCONFIGFILES.files += config/20-sensors-default.conf
SENSORDCONFIGFILES.path = /etc/sensorfw/sensord.conf.d
INSTALLS += SENSORDCONFIGFILES
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensors/contextplugin/stabilitybin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file stabilitybin.h
+ @file stabilitybin.cpp
@brief Stability Bin for ContextFW
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensors/humiditysensor/humidityplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file HumidityPlugin.cpp
+ @file humidityplugin.cpp
@brief Plugin for HumiditySensor
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensors/lidsensor/lidplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file LidPlugin.cpp
+ @file lidplugin.cpp
@brief Plugin for LidSensor
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensors/pressuresensor/pressureplugin.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file PressurePlugin.cpp
+ @file pressureplugin.cpp
@brief Plugin for PressureSensor
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/sensors/proximitysensor/proximityplugin.cpp
^
|
@@ -30,7 +30,7 @@
void ProximityPlugin::Register(class Loader&)
{
- sensordLog() << "registering proximitysensor";
+ sensordLogD() << "registering proximitysensor";
SensorManager& sm = SensorManager::instance();
sm.registerSensor<ProximitySensorChannel>("proximitysensor");
}
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/tests/deadclient/datareceiver.h
^
|
@@ -1,5 +1,5 @@
/**
- @file deadclient.h
+ @file datareceiver.h
@brief Automatic tests for dead client handling
<p>
Copyright (C) 2009-2010 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/tests/testapp/sensorhandler_qtapi.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file sensorhandler.cpp
+ @file sensorhandler_qtapi.cpp
@brief sensor handler
<p>
Copyright (C) 2010-2011 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/tests/testapp/sensorhandler_qtapi.h
^
|
@@ -1,5 +1,5 @@
/**
- @file sensorhandler.h
+ @file sensorhandler_qtapi.h
@brief test application to create sensor
<p>
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/tests/testapp/sensorhandler_qtmob.cpp
^
|
@@ -1,5 +1,5 @@
/**
- @file sensorhandler_qmsystem2.cpp
+ @file sensorhandler_qtmob.cpp
@brief sensor handler
<p>
Copyright (C) 2011 Nokia Corporation
|
[-]
[+]
|
Changed |
_service:tar_git:hybris-libsensorfw-qt5-0.10.4.tar.bz2/tests/testapp/sensorhandler_qtmob.h
^
|
@@ -1,5 +1,5 @@
/**
- @file sensorhandler_qmsystem2.h
+ @file sensorhandler_qtmob.h
@brief test application to create sensor
<p>
|
[-]
[+]
|
Deleted |
_service:tar_git:hybris-libsensorfw-qt5-0.9.4.tar.bz2/.gitignore
^
|
@@ -1,29 +0,0 @@
-Makefile
-*.o
-moc_*
-.qmake.cache
-RPMS/
-*.so
-*.so.*
-*.swp
-config.log
-core/Makefile.hybris
-documentation.list
-installroot/
-doc/html/
-sensord/sensorfwd
-tests/adaptors/sensoradaptors-test
-tests/benchmark/benchmarktest/sensorbenchmark-test
-tests/benchmark/dummyclient/sensordummyclient-qt5
-tests/chains/sensorchains-test
-tests/client/sensorapi-test
-tests/dataflow/sensordataflow-test
-tests/deadclient/sensord-deadclient
-tests/filters/sensorfilters-test
-tests/metadata/sensormetadata-test
-tests/powermanagement/driverpolltest/sensordriverpoll-test
-tests/powermanagement/powermanagementtests/sensorpowermanagement-test
-tests/powermanagement/standbyoverridetests/sensorstandbyoverride-test
-tests/testapp/sensortestapp
-tests/testutils/datafaker/datafaker-qt5
-
|
[-]
[+]
|
Deleted |
_service:tar_git:hybris-libsensorfw-qt5-0.9.4.tar.bz2/adaptors/gyroscopeadaptor-evdev/gyroadaptor-evdevplugin.h.autosave
^
|
@@ -1,45 +0,0 @@
-/**
- @file alsadaptor-evdevplugin.h
- @brief Plugin for GyroAdaptorEvdevPlugin
-
- <p>
- Copyright (C) 2009-2010 Nokia Corporation
- Copyright (C) 2015 Jolla
-
- @author Lorn Potter <lorn.potter@jolla.com>
- @author Timo Rongas <ext-timo.2.rongas@nokia.com>
- @author Markus Lehtonen <markus.lehtonen@nokia.com>
-
- This file is part of Sensord.
-
- Sensord is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License
- version 2.1 as published by the Free Software Foundation.
-
- Sensord is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with Sensord. If not, see <http://www.gnu.org/licenses/>.
- </p>
-*/
-
-#ifndef GYROADAPTOR_EVDEVPLUGIN_H
-#define GYROADAPTOR_EVDEVPLUGIN_H
-
-#include "plugin.h"
-
-class GyroAdaptorEvdevPlugin : public Plugin
-{
- Q_OBJECT
-#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
- Q_PLUGIN_METADATA(IID "com.nokia.SensorService.Plugin/1.0")
-#endif
-
-private:
- void Register(class Loader& l);
-};
-
-#endif
|
[-]
[+]
|
Changed |
_service:tar_git:sensorfwd.service
^
|
@@ -1,6 +1,7 @@
[Unit]
Description=Sensor daemon for sensor framework
After=dbus.socket
+After=oneshot-root.service
Requires=dbus.service
Conflicts=actdead.target
|