149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/*
249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow $License:
349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.
449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    See included License.txt for License information.
549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow $
649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow */
749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include "mltypes.h"
849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef INV_HAL_OUTPUTS_H__
1049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_HAL_OUTPUTS_H__
1149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
1249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifdef __cplusplus
1349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowextern "C" {
1449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
1549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
1649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_orientation(float *values, int8_t *accuracy,
1749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                         inv_time_t * timestamp);
1849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_accelerometer(float *values, int8_t *accuracy,
1949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                           inv_time_t * timestamp);
2049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_gyroscope(float *values, int8_t *accuracy,
2149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                       inv_time_t * timestamp);
2249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_gyroscope_raw(float *values, int8_t *accuracy,
2349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                       inv_time_t * timestamp);
2449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_magnetic_field(float *values, int8_t *accuracy,
2549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                            inv_time_t * timestamp);
2649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow	int inv_get_sensor_type_magnetic_field_raw(float *values, int8_t *accuracy,
2749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                            inv_time_t * timestamp);
2849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_rotation_vector(float *values, int8_t *accuracy,
2949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow            inv_time_t * timestamp);
3049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
3149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_linear_acceleration(float *values,
3249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow            int8_t *accuracy,
3349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow            inv_time_t * timestamp);
3449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_gravity(float *values, int8_t *accuracy,
3549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                     inv_time_t * timestamp);
3649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
3749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_orientation_6_axis(float *values, int8_t *accuracy,
3849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                         inv_time_t * timestamp);
3949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_orientation_geomagnetic(float *values, int8_t *accuracy,
4049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                         inv_time_t * timestamp);
4149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_rotation_vector_6_axis(float *values, int8_t *accuracy,
4249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                         inv_time_t * timestamp);
4349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    int inv_get_sensor_type_geomagnetic_rotation_vector(float *values, int8_t *accuracy,
4449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow                                         inv_time_t * timestamp);
4549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
4649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    inv_error_t inv_enable_hal_outputs(void);
4749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    inv_error_t inv_disable_hal_outputs(void);
4849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    inv_error_t inv_init_hal_outputs(void);
4949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    inv_error_t inv_start_hal_outputs(void);
5049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    inv_error_t inv_stop_hal_outputs(void);
5149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
5249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifdef __cplusplus
5349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow}
5449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
5549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
5649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif                          // INV_HAL_OUTPUTS_H__
57