47 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1020 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #pragma once
 | ||
|  | 
 | ||
|  | #include <kinc/global.h>
 | ||
|  | 
 | ||
|  | /*! \file rotation.h
 | ||
|  |     \brief Provides support for rotation-sensors. | ||
|  | */ | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /// <summary>
 | ||
|  | /// Sets the rotation-callback which is called when the device is rotated. Act quickly when this is called for a desktop-system.
 | ||
|  | /// </summary>
 | ||
|  | /// <param name="value">The callback</param>
 | ||
|  | KINC_FUNC void kinc_rotation_set_callback(void (*value)(float /*x*/, float /*y*/, float /*z*/)); | ||
|  | 
 | ||
|  | void kinc_internal_on_rotation(float x, float y, float z); | ||
|  | 
 | ||
|  | #ifdef KINC_IMPLEMENTATION_INPUT
 | ||
|  | #define KINC_IMPLEMENTATION
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifdef KINC_IMPLEMENTATION
 | ||
|  | 
 | ||
|  | #include <memory.h>
 | ||
|  | #include <stddef.h>
 | ||
|  | 
 | ||
|  | static void (*rotation_callback)(float /*x*/, float /*y*/, float /*z*/) = NULL; | ||
|  | 
 | ||
|  | void kinc_rotation_set_callback(void (*value)(float /*x*/, float /*y*/, float /*z*/)) { | ||
|  | 	rotation_callback = value; | ||
|  | } | ||
|  | 
 | ||
|  | void kinc_internal_on_rotation(float x, float y, float z) { | ||
|  | 	if (rotation_callback != NULL) { | ||
|  | 		rotation_callback(x, y, z); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 |