Exemple #1
0
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();
            }
        }
    }
}
Exemple #2
0
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;
}