1 /* ============================================================================
2 Copyright (C) 2010 nomrasco
3 Nom Rasco <nomrasco@gmail.com>
5 This file is part of libnomaccel.
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.
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.
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_GLOBAL_H_
21 #define _NOM_GLOBAL_H_
24 #define YZ_TO_PITCH(y,z) atan2((y),(-z))
25 #define XY_TO_ROLL(x,y) atan2((x),(-y))
26 #define XYZ_TO_PITCH(x,y,z) YZ_TO_PITCH(y,z)
27 #define XYZ_TO_ROLL(x,y,z) XY_TO_ROLL(x,y)
29 typedef struct _NomAccelProxy NomAccelProxy;
30 struct _NomAccelProxy {
38 typedef struct _NomAccelNeutral NomAccelNeutral;
39 struct _NomAccelNeutral {
44 void _accel_proxy_init ();
45 void _accel_proxy_finit ();
46 void _accel_read_real_values ();
47 void _accel_recalculate_pitch ();
48 void _accel_recalculate_roll ();
49 #define _accel_recalculate_pitch_roll() _accel_recalculate_pitch(); _accel_recalculate_roll()
51 void _accel_nsettings_read_system ();
52 void _accel_nsettings_save_system ();
54 const char* const _accel_device_file_name = "/sys/class/i2c-adapter/i2c-3/3-001d/coord";
55 const char* const _accel_system_setting_file_name = "/etc/nomaccel/settings";
56 extern NomAccelProxy _accel_proxy;
57 extern NomAccelNeutral _accel_settings[NOM_ACCEL_SETTINGS_NUMBER];
58 extern NomAccelNeutralSetting _accel_settings_current;