blob: 590503736292f962ed849007e7fb498a07ade661 [file] [log] [blame]
/*
$License:
Copyright (C) 2012 InvenSense Corporation, All Rights Reserved.
$
*/
/*******************************************************************************
*
* $Id:$
*
******************************************************************************/
#ifndef INV_CONSTRUCTOR_H__
#define INV_CONSTRUCTOR_H__
#include "mltypes.h"
#include "data_builder.h"
#ifdef __cplusplus
extern "C" {
#endif
#define PRECISION 10000.f
#define RANGE_FLOAT_TO_FIXEDPOINT(range, x) { \
range.mantissa = (long)x; \
range.fraction = (long)((float)(x-(long)x)*PRECISION); \
}
#define RANGE_FIXEDPOINT_TO_FLOAT(range, x) { \
x = (float)(range.mantissa); \
x += ((float)range.fraction/PRECISION); \
}
struct fifo_dmp_config {
unsigned char sample_divider;
unsigned char fifo_divider;
unsigned char mpl_divider;
};
inv_error_t inv_construct_and_push_data();
inv_error_t inv_set_fifo_processed_callback(void (*func_cb)(void));
inv_error_t inv_constructor_setup();
inv_error_t inv_constructor_start();
inv_error_t inv_constructor_init();
inv_error_t inv_constructor_default_enable();
void inv_set_debug_mode(rd_dbg_mode mode);
inv_error_t inv_playback();
void inv_set_playback_filename(char *filename, int length);
inv_error_t wait_for_and_process_interrupt();
inv_error_t inv_set_interrupt_word(unsigned long word);
inv_error_t inv_get_interrupt_word(unsigned long *data);
inv_error_t inv_set_gesture_enable(int word);
int inv_get_gesture_enable(void);
inv_error_t inv_set_fifo_rate(unsigned long fifo_rate);
inv_error_t inv_get_dmp_sample_divider(unsigned char *data);
#ifdef __cplusplus
}
#endif
#endif // INVENSENSE_INV_CONSTRUCTOR_H__