* adding accel-neutral-settings API proposal
[libnomaccel] / src / global_p.c
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 #include "global_p.h"
21 #include <stdlib.h>
22
23 NomAccelProxy     _accel_proxy = {0};
24 NomAccelNeutral   _accel_settings[NOM_ACCEL_SETTINGS_NUMBER] = {{0.0,0.0}};
25 NomAccelNeutralSetting _accel_settings_current = NOM_ACCEL_LOCAL_NEUTRAL;
26
27 void
28 _nom_accel_proxy_init ()
29 {
30         _accel_proxy.x = 0;
31         _accel_proxy.y = 0;
32         _accel_proxy.z = 0;
33         _accel_proxy.pitch = 0.0;
34         _accel_proxy.roll = 0.0;
35 }
36
37 void
38 _accel_proxy_finit ()
39 {
40         /* nothing to do yet */
41 }
42
43 void
44 _accel_read_real_values ()
45 {
46         FILE* fd;
47         fd = fopen(_accel_device_file_name, "r");
48         if(0 == fd) return;
49         fscanf ( fd, "%i %i %i",
50                  &_accel_proxy.x,
51                  &_accel_proxy.y,
52                  &_accel_proxy.z );
53         fclose(fd);
54 }
55
56 void
57 _accel_recalculate_pitch () {
58         _accel_proxy.pitch = YZ_TO_PITCH(_accel_proxy.y, _accel_proxy.z);
59 }
60
61 void
62 _accel_recalculate_roll () {
63         _accel_proxy.roll  =  XY_TO_ROLL(_accel_proxy.x, _accel_proxy.y);
64 }
65
66