173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian/*
273e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * Copyright (C) 2011 The Android Open Source Project
373e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian *
473e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * Licensed under the Apache License, Version 2.0 (the "License");
573e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * you may not use this file except in compliance with the License.
673e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * You may obtain a copy of the License at
773e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian *
873e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian *      http://www.apache.org/licenses/LICENSE-2.0
973e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian *
1073e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * Unless required by applicable law or agreed to in writing, software
1173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * distributed under the License is distributed on an "AS IS" BASIS,
1273e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1373e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * See the License for the specific language governing permissions and
1473e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian * limitations under the License.
1573e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian */
1673e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
1773e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#ifndef ANDROID_ORIENTATION_SENSOR_H
1873e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#define ANDROID_ORIENTATION_SENSOR_H
1973e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
2073e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#include <stdint.h>
2173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#include <sys/types.h>
2273e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
2373e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#include <gui/Sensor.h>
2473e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
2573e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#include "SensorInterface.h"
2673e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
2773e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian// ---------------------------------------------------------------------------
2873e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopiannamespace android {
2973e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian// ---------------------------------------------------------------------------
3073e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
3173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopianclass SensorDevice;
3273e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopianclass SensorFusion;
3373e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
3473e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopianclass OrientationSensor : public SensorInterface {
3573e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    SensorDevice& mSensorDevice;
3673e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    SensorFusion& mSensorFusion;
3773e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
3873e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopianpublic:
3973e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    OrientationSensor();
4073e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    virtual bool process(sensors_event_t* outEvent,
4173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian            const sensors_event_t& event);
4273e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    virtual status_t activate(void* ident, bool enabled);
4373e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    virtual status_t setDelay(void* ident, int handle, int64_t ns);
4473e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    virtual Sensor getSensor() const;
4573e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian    virtual bool isVirtual() const { return true; }
4673e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian};
4773e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
4873e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian// ---------------------------------------------------------------------------
4973e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian}; // namespace android
5073e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian
5173e0bc805a143d8cc2202fccb73230459edc6869Mathias Agopian#endif // ANDROID_ORIENTATION_SENSOR_H
52