dd909b8544dbd02856d7714099e68fe1eb9a3bca
[expresskeys.git] / src-expresskeys / globals.c
1 /*
2  globals.c -- Support ExpressKeys & Touch Strips on a Wacom Intuos3 tablet.
3  
4  Copyright (C) 2005-2006 - Mats Johannesson
5  
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15  
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
19 */
20
21 #include "globals.h"
22
23 Display *display;
24 XDeviceInfo *pad_info_block;
25 XDeviceInfo *pen_info_block;
26 XDeviceInfo *pad_info;
27 XDeviceInfo *pen_info;
28 XDevice *pad_device;
29 XDevice *pen_device;
30
31 char *our_prog_name;
32 char *our_prog_version = "0.2.6"; /* Our version. Remember to change it! */
33 char *pen_name;
34 char *total_config_dir;
35 char *total_config_file;
36 char *total_pid_file;
37 char *total_error_file;
38 char *config_dir = "/.expresskeys";     /* This is where in the user home */
39 char *config_file = "/expresskeys.conf";/* directory we'd like to reside, */
40 char *pid_file = "/expresskeys.pid";    /* and what our different status */
41 char *error_file = "/error.log";        /* files should be called */
42
43 int screen;
44 int go_daemon = 0;      /* Do not become a daemon without a command */
45 int be_verbose = 0; /* Run silently per default */
46 int reread_config = 0;  /* No memory should be freed on the first read */
47 int handle_pen = 0;     /* Pen should not be handled per default */
48 int pen_mode = 1;       /* Assume pen is in Absolute mode initially */
49 int pen_open = 0;       /* Pen device hasn't been opened */
50 int pen_presscurve = 4; /* Pen default Sensitivity. Sample xsetwacom usage */
51
52 int motion_type = NON_VALID;
53 int button_press_type = NON_VALID;
54 int button_release_type = NON_VALID;
55
56 /* Allocate space for a list of program definitions (config file based)
57    Also initialize a small list that is written out if no config file exists */
58
59 struct program external_list [MAXRECORDS];
60 struct program internal_list[] = {
61 /*      Name    handle_touch */
62 {"default",     0,
63 /*              l_touch_up      l_touch_up_plus l_touch_down    l_touch_down_plus */
64                 98,             0,              104,            0,
65 /*              r_touch_up      r_touch_up_plus r_touch_down    r_touch_down_plus */
66                 102,            0,              100,            0,
67 /*              key_9           key_9_plus      key_10          key_10_plus */
68                 50,             0,              64,             0,
69 /*              key_11          key_11_plus     key_12          key_12_plus */
70                 37,             0,              65,             0,
71 /*              key_13          key_13_plus     key_14          key_14_plus */
72                 50,             0,              64,             0,
73 /*              key_15          key_15_plus     key_16          key_16_plus */
74                 37,             0,              65,             0       },
75
76 /*      Name    handle_touch */
77 {"Gimp",        1,
78 /*              l_touch_up      l_touch_up_plus l_touch_down    l_touch_down_plus */
79                 20,             0,              61,             0,
80 /*              r_touch_up      r_touch_up_plus r_touch_down    r_touch_down_plus */
81                 64,             20,             64,             61,
82 /*              key_9           key_9_plus      key_10          key_10_plus */
83                 50,             0,              64,             0,
84 /*              key_11          key_11_plus     key_12          key_12_plus */
85                 37,             0,              65,             0,
86 /*              key_13          key_13_plus     key_14          key_14_plus */
87                 37,             29,             37,             52,
88 /*              key_15          key_15_plus     key_16          key_16_plus */
89                 999,            0,              65,             0       },
90
91 /*      Name    handle_touch */
92 {"Blender",     1,
93 /*              l_touch_up      l_touch_up_plus l_touch_down    l_touch_down_plus */
94                 102,            0,              100,            0,
95 /*              r_touch_up      r_touch_up_plus r_touch_down    r_touch_down_plus */
96                 98,             0,              104,            0,
97 /*              key_9           key_9_plus      key_10          key_10_plus */
98                 37,             0,              9,              0,
99 /*              key_11          key_11_plus     key_12          key_12_plus */
100                 50,             0,              23,             0,
101 /*              key_13          key_13_plus     key_14          key_14_plus */
102                 37,             29,             37,             52,
103 /*              key_15          key_15_plus     key_16          key_16_plus */
104                 999,            0,              65,             0       },
105
106 /*      Name    handle_touch */
107 {"XTerm",       0,
108 /*              l_touch_up      l_touch_up_plus l_touch_down    l_touch_down_plus */
109                 0,              0,              0,              0,
110 /*              r_touch_up      r_touch_up_plus r_touch_down    r_touch_down_plus */
111                 0,              0,              0,              0,
112 /*              key_9           key_9_plus      key_10          key_10_plus */
113                 0,              0,              0,              0,
114 /*              key_11          key_11_plus     key_12          key_12_plus */
115                 0,              0,              0,              0,
116 /*              key_13          key_13_plus     key_14          key_14_plus */
117                 0,              0,              0,              0,
118 /*              key_15          key_15_plus     key_16          key_16_plus */
119                 999,            0,              0,              0       },
120 };
121 /* The number of programs (num_list) must be computed here. After the struct */
122 int num_list = (sizeof internal_list / sizeof internal_list[0]);
123
124 /* End Code */
125