47 lines
1.0 KiB
C
47 lines
1.0 KiB
C
|
#pragma once
|
||
|
|
||
|
#include <kinc/global.h>
|
||
|
|
||
|
/*! \file acceleration.h
|
||
|
\brief Provides data provided by acceleration-sensors.
|
||
|
*/
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/// <summary>
|
||
|
/// Sets the acceleration-callback which is called with measured acceleration-data in three dimensions.
|
||
|
/// </summary>
|
||
|
/// <param name="value">The callback</param>
|
||
|
KINC_FUNC void kinc_acceleration_set_callback(void (*value)(float /*x*/, float /*y*/, float /*z*/));
|
||
|
|
||
|
void kinc_internal_on_acceleration(float x, float y, float z);
|
||
|
|
||
|
#ifdef KINC_IMPLEMENTATION_INPUT
|
||
|
#define KINC_IMPLEMENTATION
|
||
|
#endif
|
||
|
|
||
|
#ifdef KINC_IMPLEMENTATION
|
||
|
|
||
|
#include <memory.h>
|
||
|
#include <stddef.h>
|
||
|
|
||
|
void (*acceleration_callback)(float /*x*/, float /*y*/, float /*z*/) = NULL;
|
||
|
|
||
|
void kinc_acceleration_set_callback(void (*value)(float /*x*/, float /*y*/, float /*z*/)) {
|
||
|
acceleration_callback = value;
|
||
|
}
|
||
|
|
||
|
void kinc_internal_on_acceleration(float x, float y, float z) {
|
||
|
if (acceleration_callback != NULL) {
|
||
|
acceleration_callback(x, y, z);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|