You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.3 KiB
85 lines
2.3 KiB
1 year ago
|
#ifndef __ZMF_SENSOR_H__
|
||
|
#define __ZMF_SENSOR_H__
|
||
|
#if __GNUC__
|
||
|
#pragma GCC visibility push(default)
|
||
|
#endif
|
||
|
/**
|
||
|
* @file zmf_motion.h
|
||
|
* @brief ZMF Motion interfaces
|
||
|
*/
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef enum {
|
||
|
ZmfSensorGrvity =1,
|
||
|
ZmfSensorAcceleration =2,
|
||
|
ZmfSensorRotationRate =4,
|
||
|
ZmfSensorAttitude =8,
|
||
|
ZmfSensorLight =16,
|
||
|
} ZmfSensorType;
|
||
|
|
||
|
typedef enum {
|
||
|
ZmfSensorFastest,
|
||
|
ZmfSensorGame,
|
||
|
ZmfSensorUI,
|
||
|
ZmfSensorNormal
|
||
|
} ZmfSensorMode;
|
||
|
|
||
|
typedef struct {
|
||
|
unsigned types;
|
||
|
|
||
|
/** The elapsed millisend time from the start */
|
||
|
unsigned timeStampMs;
|
||
|
|
||
|
/** The gravity acceleration vector
|
||
|
* expressed in the device's reference frame.
|
||
|
*/
|
||
|
float gravity[3];
|
||
|
|
||
|
/** the total acceleration of the device
|
||
|
* is equal to gravity plus the acceleration the user imparts to the device
|
||
|
*/
|
||
|
float acceleration[3];
|
||
|
|
||
|
float rotationRate[3];
|
||
|
|
||
|
float pitch, roll, yaw;
|
||
|
|
||
|
float brightness;
|
||
|
|
||
|
} ZmfSensorData;
|
||
|
|
||
|
typedef void (*ZmfSensorCallback)(void* pUser, const ZmfSensorData *sensor);
|
||
|
|
||
|
int Zmf_SensorInitialize (void* applicationContext);
|
||
|
int Zmf_SensorTerminate (void);
|
||
|
|
||
|
int Zmf_SensorGetTypes (unsigned *sensorTypes);
|
||
|
|
||
|
int Zmf_SensorStart (unsigned sensorTypes, unsigned sensorMode);
|
||
|
int Zmf_SensorStop ();
|
||
|
|
||
|
int Zmf_SensorAddCallback (void *pUser, ZmfSensorCallback callback);
|
||
|
int Zmf_SensorRemoveCallback(void *pUser);
|
||
|
|
||
|
/** Get the device’s attitude at a point in time.
|
||
|
* @param[out] pitch Angle in the horizontal plane of the device, ranging from 0 to M_PI.
|
||
|
* @param[out] yaw The orientation of the device orientation, ranging from -M_PI to M_PI.
|
||
|
* It is 0 when the device is oriented in its natural position,
|
||
|
* M_PI_2 when its right side is at the top, M_PI or -M_PI when it is upside down,
|
||
|
* and -M_PI_2 when its left side is to the top.
|
||
|
* @param[out] roll
|
||
|
*/
|
||
|
|
||
|
int Zmf_SensorDataGetAttitude (const ZmfSensorData *sensor, float *pitch, float *roll, float *yaw);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif /* __cplusplus */
|
||
|
#if __GNUC__
|
||
|
#pragma GCC visibility pop
|
||
|
#endif
|
||
|
#endif /* __ZMF_SENSOR_H__ */
|