コード例 #1
0
int CompOriSensor::enable(int32_t handle, int en)
{
    char enable_path[PATH_MAX];
    bool enable = !!en;
    int sensor;
    int fd;
	int ret;
    switch (handle) {
    case ID_M:
        ALOGE("Compass: enable=%d", en);
        sensor = MAG;
		ret = sspEnable("Compass", SSP_MAG, en);
		if (ret < 0) {
			ALOGE("Compass: could not change sensor state");
		}
        break;
    case ID_O:
        ALOGE("Orientation: enable=%d", en);
        sensor = ORI;
        ret = sspEnable("Orientation", SSP_ORIENTATION, en);
		if (ret < 0) {
			ALOGE("Compass: could not change sensor state");
		}
        break;
    default:
        ALOGE("CompOriSensor: unknown handle %d", handle);
		ret = -1;
        return -EINVAL;
    }

    if (enable == mEnabled[sensor])
        return 0;

	if (ret == 0){
		mEnabled[sensor] = enable;
	}
    return ret;
}
コード例 #2
0
int MagneticSensor::enable(int32_t handle, int en) {
	int flags = en ? 1 : 0;
    int err;
    if (flags != mEnabled) {
		ALOGE("Magnetic Sensor: Enable");
		err = sspEnable(LOGTAG, SSP_MAG, en);
        if(err >= 0){
           mEnabled = flags;
           setInitialState();
           return 0;
         }
         return -1;
    }
    return 0; 
}
コード例 #3
0
int AccelSensor::enable(int32_t handle, int en) {
    int flags = en ? 1 : 0;
    int err;
    if (flags != mEnabled) {
         err = sspEnable(LOGTAG, SSP_ACCEL, en);
         if(err >= 0){
             mEnabled = flags;
             setInitialState();

             return 0;
         }
         return -1;
    }
    return 0;
}
コード例 #4
0
int GyroscopeSensor::enable(int32_t, int en)
{
    int enable = en ? 1 : 0;

    if (mEnabled == enable)
        return 0;

	int ret = sspEnable("Gyroscope", SSP_GYRO, en);
    if (ret < 0) {
        ALOGE("Gyroscope: could not change sensor state");
        return ret;
    }
    mEnabled = enable;

    return 0;
}
コード例 #5
0
int ProximitySensor::enable(int32_t handle, int en) {

    int flags = en ? 1 : 0;
    int err;
    //ALOGD("%s: Enable: %i", __func__, en);
    if (flags != mEnabled) {
         err = sspEnable(LOGTAG, SSP_PROX, en);
         if(err >= 0){
             mEnabled = flags;
             setInitialState();

             return 0;
         }
         return -1;
    }
    return 0;
}
コード例 #6
0
int PressureSensor::enable(int32_t handle, int en)
{
    uint32_t enable = en ? 1 : 0;
    uint32_t flag = mEnabled;
    int mask;

    switch (handle) {
    case ID_PRS:
        ALOGE("PressureSensor (PRS): enable=%d", en);
        mask = MODE_PRESSURE;
        mPressureActive = en;
        mLastTemperature = 0;
        break;
    case ID_TMP:
        ALOGE("PressureSensor (TMP): enable=%d", en);
        mask = MODE_TEMPERATURE;
        mTemperatureActive = en;
        break;

    default:
        ALOGE("PressureSensor: unknown handle %d", handle);
        return -1;
    }

    if ((mEnabled & mask) == enable)
        return 0;

    if (enable)
        flag |= mask;
    else
        flag &= ~mask;

    int ret = sspEnable("PressureSensor", SSP_PRESS, en);
    if (ret < 0) {
        ALOGE("PressureSensor: could not change sensor state");
        return ret;
    }
    mEnabled = flag;

    return 0;
}
コード例 #7
0
int AkmSensor::enable(int32_t handle, int en)
{
    int what = -1;

    switch (handle) {
        case ID_M: what = MagneticField; break;
        case ID_O: what = Orientation;   break;
    }

    if (uint32_t(what) >= numSensors)
        return -EINVAL;

    int newState  = en ? 1 : 0;
    int err = 0;

    if ((uint32_t(newState)<<what) != (mEnabled & (1<<what))) {

        uint32_t sensor_type;

        switch (what) {
            case MagneticField: sensor_type = SENSOR_TYPE_MAGNETIC_FIELD; break;
        }
        short flags = newState;
        if (en){
            err = akm_enable_sensor(sensor_type);
        }else{
            err = akm_disable_sensor(sensor_type);
        }

        err = sspEnable(LOGTAG, SSP_MAG, en);
        setInitialState();

        ALOGE_IF(err, "Could not change sensor state (%s)", strerror(-err));
        if (!err) {
            mEnabled &= ~(1<<what);
            mEnabled |= (uint32_t(flags)<<what);
        }
    }
    return err;
}