void SensorManager::displayStateChanged(bool 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()) #endif // SENSORFW_MCE_WATCHER { emit resumeCalibration(); } } foreach (const DeviceAdaptorInstanceEntry& adaptor, deviceAdaptorInstanceMap_) { if (adaptor.adaptor_) { if (displayState) { adaptor.adaptor_->setScreenBlanked(false); adaptor.adaptor_->resume(); } else { adaptor.adaptor_->setScreenBlanked(true); adaptor.adaptor_->standby(); } } } }
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); SensorManager& sm = SensorManager::instance(); Parser parser(app.arguments()); SensordLogger::init(parser.logTarget(), parser.logFilePath(), "sensord"); if (parser.printHelp()) { printUsage(); app.exit(EXIT_SUCCESS); return 0; } if (parser.changeLogLevel()) { SensordLogger::setOutputLevel(parser.getLogLevel()); } const char* CONFIG_FILE_PATH = "/etc/sensorfw/sensord.conf"; const char* CONFIG_DIR_PATH = "/etc/sensorfw/sensord.conf.d/"; QString defConfigFile = CONFIG_FILE_PATH; if(parser.configFileInput()) { defConfigFile = parser.configFilePath(); } QString defConfigDir = CONFIG_DIR_PATH; if(parser.configDirInput()) { defConfigDir = parser.configDirPath(); } if (!Config::loadConfig(defConfigFile, defConfigDir)) { sensordLogC() << "Config file error! Load using default paths."; if (!Config::loadConfig(CONFIG_FILE_PATH, CONFIG_DIR_PATH)) { sensordLogC() << "Which also failed. Bailing out"; return 1; } } signal(SIGUSR1, signalUSR1); signal(SIGUSR2, signalUSR2); signal(SIGINT, signalINT); #ifdef PROVIDE_CONTEXT_INFO if (parser.contextInfo()) { sensordLogD() << "Loading ContextSensor " << sm.loadPlugin("contextsensor"); sensordLogD() << "Loading ALSSensor " << sm.loadPlugin("alssensor"); } #endif if (parser.createDaemon()) { int pid = fork(); if(pid < 0) { sensordLogC() << "Failed to create a daemon: " << strerror(errno); exit(EXIT_FAILURE); } else if (pid > 0) { sensordLogW() << "Created a daemon"; exit(EXIT_SUCCESS); } } if (parser.magnetometerCalibration()) { CalibrationHandler* calibrationHandler_ = new CalibrationHandler(NULL); calibrationHandler_->initiateSession(); QObject::connect(&sm, SIGNAL(resumeCalibration()), calibrationHandler_, SLOT(resumeCalibration())); QObject::connect(&sm, SIGNAL(stopCalibration()), calibrationHandler_, SLOT(stopCalibration())); } if (!sm.registerService()) { sensordLogW() << "Failed to register service on D-Bus. Aborting."; exit(EXIT_FAILURE); } int ret = app.exec(); sensordLogD() << "Exiting..."; Config::close(); SensordLogger::close(); return ret; }