Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Antti Virtanen committed Mar 16, 2011
1 parent 196a9cc commit b13fe2c
Show file tree
Hide file tree
Showing 16 changed files with 63 additions and 45 deletions.
4 changes: 2 additions & 2 deletions adaptors/alsadaptor/alsadaptor.cpp
Expand Up @@ -68,8 +68,8 @@ ALSAdaptor::ALSAdaptor(const QString& id):
QDBusConnection::systemBus(), this);
#endif

QString rm680_als = Config::configuration()->value("als_dev_path_rm680", RM680_ALS).toString();
QString rm696_als = Config::configuration()->value("als_dev_path_rm696", RM696_ALS).toString();
QString rm680_als = Config::configuration()->value<QString>("als_dev_path_rm680", RM680_ALS);
QString rm696_als = Config::configuration()->value<QString>("als_dev_path_rm696", RM696_ALS);

if (QFile::exists(rm680_als))
{
Expand Down
10 changes: 5 additions & 5 deletions adaptors/magnetometeradaptor/magnetometeradaptor.cpp
Expand Up @@ -45,7 +45,7 @@ MagnetometerAdaptor::MagnetometerAdaptor(const QString& id) :
SysfsAdaptor(id, SysfsAdaptor::IntervalMode, false)
{
driverHandle_ = getDriverHandle();
if (driverHandle_.size() == 0) {
if (driverHandle_.isEmpty()) {
sensordLogW() << "Input device not found.";
} else {
sensordLogD() << "Detected magnetometer driver at " << driverHandle_;
Expand Down Expand Up @@ -74,13 +74,13 @@ MagnetometerAdaptor::~MagnetometerAdaptor()

QString MagnetometerAdaptor::getDriverHandle() const
{
QString magFile = Config::configuration()->value("mag_ak8974_dev_path").toString();
if (magFile.size() > 0 && QFile::exists(magFile)) {
QString magFile = Config::configuration()->value<QString>("mag_ak8974_dev_path");
if (!magFile.isNull() && QFile::exists(magFile)) {
return magFile;
}

magFile = Config::configuration()->value("mag_ak8975_dev_path").toString();
if (magFile.size() > 0 && QFile::exists(magFile)) {
magFile = Config::configuration()->value<QString>("mag_ak8975_dev_path");
if (!magFile.isNull() && QFile::exists(magFile)) {
return magFile;
}

Expand Down
6 changes: 3 additions & 3 deletions adaptors/proximityadaptor/proximityadaptor.cpp
Expand Up @@ -67,8 +67,8 @@ ProximityAdaptor::ProximityAdaptor(const QString& id) :

device = DeviceUnknown;

QString rm680_ps = Config::configuration()->value("proximity_dev_path_rm680", RM680_PS).toString();
QString rm696_ps = Config::configuration()->value("proximity_dev_path_rm696", RM696_PS).toString();
QString rm680_ps = Config::configuration()->value<QString>("proximity_dev_path_rm680", RM680_PS);
QString rm696_ps = Config::configuration()->value<QString>("proximity_dev_path_rm696", RM696_PS);

if (QFile::exists(rm680_ps))
{
Expand Down Expand Up @@ -177,7 +177,7 @@ int ProximityAdaptor::readThreshold()
int value = 0;
QString configKey = "proximity_threshold_path";
QString configFileName = (device == RM680 ? THRESHOLD_FILE_PATH_RM680 : THRESHOLD_FILE_PATH_RM696);
QFile thresholdFile(Config::configuration()->value(configKey, configFileName).toString());
QFile thresholdFile(Config::configuration()->value(configKey, configFileName));

if (!(thresholdFile.exists() && thresholdFile.open(QIODevice::ReadOnly))) {
sensordLogW() << "Unable to locate threshold setting for " << id();
Expand Down
2 changes: 1 addition & 1 deletion chains/accelerometerchain/accelerometerchain.cpp
Expand Up @@ -51,7 +51,7 @@ AccelerometerChain::AccelerometerChain(const QString& id) :
accelerometerReader_ = new BufferReader<AccelerationData>(1);

// Get the transformation matrix from config file
QString aconvString = Config::configuration()->value("acc_trans_matrix", "").toString();
QString aconvString = Config::configuration()->value<QString>("acc_trans_matrix", "");
if (aconvString.size() > 0)
{
if (!setMatrixFromString(aconvString))
Expand Down
16 changes: 13 additions & 3 deletions core/config.cpp
Expand Up @@ -99,15 +99,20 @@ bool Config::loadConfigFile(const QString &configFileName) {
return false;
}

QVariant Config::value(const QString &key, const QVariant &defaultValue) const {
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))
return setting->value(key, defaultValue);
{
QVariant var = setting->value(key, QVariant());
if(var.isValid())
sensordLogD() << "Value for key '" << key << "': " << var.toString();
return var;
}
}
return defaultValue;
return QVariant();
}

QStringList Config::groups() const
Expand All @@ -133,3 +138,8 @@ void Config::close() {
delete static_configuration;
static_configuration = 0;
}

bool Config::exists(const QString &key) const
{
return value(key).isValid();
}
16 changes: 15 additions & 1 deletion core/config.h
Expand Up @@ -41,9 +41,14 @@ class Config {
public:
~Config();

QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const;
QVariant value(const QString &key) const;
QStringList groups() const;

template<typename T>
T value(const QString &key, const T &def = T()) const;

bool exists(const QString &key) const;

static Config *configuration();
static bool loadConfig(const QString &defConfigPath, const QString &configDPath);
static void close();
Expand All @@ -59,4 +64,13 @@ class Config {
QList<QSettings*> settings;
};

template<typename T>
T Config::value(const QString &key, const T &def) const
{
QVariant val(value(key));
if(!val.isValid())
return def;
return val.value<T>();
}

#endif // SENSORD_CONFIG_H
14 changes: 5 additions & 9 deletions core/inputdevadaptor.cpp
Expand Up @@ -78,15 +78,15 @@ int InputDevAdaptor::getInputDevices(const QString& matchString)

// Check if this device name is defined in configuration
QString configKey = QString("dev_%1").arg(matchString);
QString deviceName = Config::configuration()->value(configKey, "DEV_NOT_FOUND").toString();
QString deviceName = Config::configuration()->value<QString>(configKey, "");

// Do not perform strict checks for the input device
if (deviceName != "DEV_NOT_FOUND" && checkInputDevice(deviceName, matchString, false)) {
if (deviceName.size() && checkInputDevice(deviceName, matchString, false)) {
addPath(deviceName, deviceCount_);
++deviceCount_;
deviceNumber_ = deviceNumber;
}
else
else if(!deviceSysPathString_.contains("%1"))
{
const int MAX_EVENT_DEV = 16;

Expand All @@ -103,14 +103,10 @@ int InputDevAdaptor::getInputDevices(const QString& matchString)
}

QString pollConfigKey = QString("dev_poll_%1").arg(deviceString_);
if (Config::configuration()->value(pollConfigKey, "").toString().size() > 0) {
usedDevicePollFilePath_ = Config::configuration()->value(pollConfigKey, "").toString();
} else {
usedDevicePollFilePath_ = devicePollFilePath_.arg(deviceNumber_);
}
usedDevicePollFilePath_ = Config::configuration()->value<QString>(pollConfigKey, devicePollFilePath_.arg(deviceNumber_));

if (deviceCount_ == 0) {
sensordLogW() << "Cannot find any device for: " << matchString;
sensordLogW() << id() << " cannot find any device for: " << matchString;
setValid(false);
}

Expand Down
2 changes: 1 addition & 1 deletion core/loader.cpp
Expand Up @@ -141,7 +141,7 @@ bool Loader::loadPlugin(const QString& name, QString* errorString)

QString Loader::resolveRealPluginName(const QString& pluginName) const
{
QString deviceId = Config::configuration()->value("deviceId", "default").toString();
QString deviceId = Config::configuration()->value<QString>("deviceId", "default");
QString key = QString("%1/%2").arg(deviceId).arg(pluginName);

QString nameFromConfig = Config::configuration()->value(key).toString();
Expand Down
5 changes: 0 additions & 5 deletions core/logging.cpp
Expand Up @@ -64,11 +64,6 @@ void SensordLogger::setOutputLevel(SensordLogLevel level)
outputLevel = level;
}

SensordLogLevel SensordLogger::getOutputLevel()
{
return outputLevel;
}

void SensordLogger::close()
{
if (initialized)
Expand Down
8 changes: 4 additions & 4 deletions core/logging.h
Expand Up @@ -49,30 +49,30 @@ class SensordLogger

SensordLogger& operator<<(const QStringList& item)
{
if(initialized && isLoggable(currentLevel))
if(initialized && oss && isLoggable(currentLevel))
return this->operator<<(item.join(", "));
return *this;
}

SensordLogger& operator<<(const QString& item)
{
if(initialized && isLoggable(currentLevel))
if(initialized && oss && isLoggable(currentLevel))
*oss << item.toStdString();
return *this;
}

template <typename T>
SensordLogger& operator<<(const T& item)
{
if(initialized && isLoggable(currentLevel))
if(initialized && oss && isLoggable(currentLevel))
*oss << item;
return *this;
}

public:

static void setOutputLevel(SensordLogLevel level);
static SensordLogLevel getOutputLevel();
static inline SensordLogLevel getOutputLevel() { return outputLevel; }
static void init(int target, QString logFilePath);
static void close();

Expand Down
2 changes: 1 addition & 1 deletion core/sysfsadaptor.cpp
Expand Up @@ -153,7 +153,7 @@ void SysfsAdaptor::stopSensor(const QString& sensorId)
AdaptedSensorEntry *entry = findAdaptedSensor(sensorId);

if (entry == NULL) {
sensordLogW() << "Sensor not found" << sensorId;
sensordLogW() << "Sensor not found " << sensorId;
return;
}

Expand Down
3 changes: 3 additions & 0 deletions debian/changelog
Expand Up @@ -14,6 +14,8 @@ sensord (0.6.41) unstable; urgency=low
- SensorManager::addSensor() now gracefully handles if object registration to dbus fails.
- SocketHandler::socketReadable now gracefully handles if client writes sessionId incorrectly.
- Cleanup for adaptor codes
- Better error checks in InputDevAdaptor::getInputDevices().
- Logger optimized a bit.
* Downsampling (which works by dropping samples) can be now enabled/disabled.
* OrientationInterpreter filter orientation_buffer_size is now configurable.
* Threshold accessors removed from OrientationFilter since those had no effect.
Expand All @@ -27,6 +29,7 @@ sensord (0.6.41) unstable; urgency=low
* Implemented new downsampling logic:
- AccelerometerAdaptor interval rangelist has been limited to certain sizes.
- AccelerometerSensorChannel downsamples data before propagating it.
* Config-class has now more friendly API.

[Shenghua Liu]
* Make sensortestapp thread safe in exiting
Expand Down
10 changes: 5 additions & 5 deletions tests/testapp/abstractsensorhandler.cpp
Expand Up @@ -40,11 +40,11 @@ AbstractSensorHandler::AbstractSensorHandler(const QString& sensorName, QObject
{
if (Config::configuration() != NULL)
{
interval_ = Config::configuration()->value(sensorName_ + "/interval", "100").toInt();
bufferinterval_ = Config::configuration()->value(sensorName_ + "/bufferinterval", "0").toInt();
standbyoverride_ = Config::configuration()->value(sensorName_ + "/standbyoverride", "0").toBool();
buffersize_ = Config::configuration()->value(sensorName_ + "/buffersize", "0").toInt();
downsample_ = Config::configuration()->value(sensorName_ + "/downsample", "0").toBool();
interval_ = Config::configuration()->value(sensorName_ + "/interval", 100);
bufferinterval_ = Config::configuration()->value(sensorName_ + "/bufferinterval", 0);
standbyoverride_ = Config::configuration()->value(sensorName_ + "/standbyoverride", false);
buffersize_ = Config::configuration()->value(sensorName_ + "/buffersize", 0);
downsample_ = Config::configuration()->value(sensorName_ + "/downsample", false);
}
}

Expand Down
3 changes: 2 additions & 1 deletion tests/testapp/clientadmin.cpp
Expand Up @@ -24,6 +24,7 @@
*/

#include "clientadmin.h"
#include "config.h"

const char* ClientAdmin::CONFIG_FILE_PATH = "/usr/share/sensord-tests/testapp.conf";

Expand Down Expand Up @@ -70,7 +71,7 @@ void ClientAdmin::runClients()

foreach (const QString& sensorName, Config::configuration()->groups())
{
int count = Config::configuration()->value(sensorName + "/instances", "0").toInt();
int count = 0;//Config::configuration()->value<int>(sensorName + "/instances", 0);
for(int i = 0; i < count; ++i)
{
SensorHandler* handler = new SensorHandler(sensorName, this);
Expand Down
3 changes: 1 addition & 2 deletions tests/testapp/main.cpp
Expand Up @@ -25,7 +25,6 @@
*/

#include <QCoreApplication>
#include <QTest>
#include <QList>
#include <QString>
#include <QDebug>
Expand All @@ -47,7 +46,7 @@ void sigIntHandler(int param)

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QCoreApplication app(argc, argv);

Parser parser(app.arguments());

Expand Down
4 changes: 2 additions & 2 deletions tests/testapp/testapp.pro
@@ -1,4 +1,4 @@
QT += core testlib dbus network
QT += core dbus network
QT -= gui

CONFIG += debug
Expand All @@ -13,7 +13,7 @@ isEmpty(TARGET_LIB) {
HEADERS += parser.h \
statprinter.h \
abstractsensorhandler.h \
clientadmin.h
clientadmin.h

SOURCES += main.cpp \
parser.cpp \
Expand Down

0 comments on commit b13fe2c

Please sign in to comment.