* adding accel-neutral-settings API proposal
[libnomaccel] / include / accel.h
1 /* ============================================================================
2     Copyright (C) 2010 nomrasco
3     Nom Rasco <nomrasco@gmail.com>
4
5     This file is part of libnomaccel.
6
7     libnomaccel is free software: you can redistribute it and/or modify
8     it under the terms of the GNU Lesser General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11
12     libnomaccel is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU Lesser General Public License for more details.
16
17     You should have received a copy of the GNU Lesser General Public License
18     along with libnomaccel.  If not, see <http://www.gnu.org/licenses/>.
19 ============================================================================ */
20 #ifndef _NOM_ACCELEROMETER_H_
21 #define _NOM_ACCELEROMETER_H_
22
23 typedef int   value;
24 typedef float angle;
25
26 typedef struct {
27         value x;
28         value y;
29         value z;
30         angle pitch;
31         angle roll;
32 } NomAccelCache;
33
34 /* simplest retrieving functions: x,y,z,pitch,roll */
35 value nom_accel_get_x ();
36 value nom_accel_get_y ();
37 value nom_accel_get_z ();
38 void  nom_accel_get_xyz (value* x, value* y, value* z);
39
40 angle nom_accel_get_pitch ();
41 angle nom_accel_get_roll  ();
42 void  nom_accel_get_pitch_roll (angle* pitch, angle* roll);
43
44 void  nom_accel_get_all ( value* x, value* y, value* z,
45                           angle* pitch, angle* roll     );
46
47
48 void    nom_accel_cache_get  (NomAccelCache* put_to);
49 #define nom_accel_cache_get_x(cache)     ((cache)->x)
50 #define nom_accel_cache_get_y(cache)     ((cache)->y)
51 #define nom_accel_cache_get_z(cache)     ((cache)->z)
52 #define nom_accel_cache_get_pitch(cache) ((cache)->pitch)
53 #define nom_accel_cache_get_roll(cache)  ((cache)->roll)
54
55 #endif