annotate src/video/win32/SDL_win32mouse.c @ 3771:8cc36a399a12 gsoc2008_manymouse

comments added and improved code look(windows part)
author Szymon Wilczek <kazeuser@gmail.com>
date Sat, 02 Aug 2008 14:02:28 +0000
parents 81b649bad6d2
children 8b5b67000dc0
rev   line source
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
1 /*
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
2 SDL - Simple DirectMedia Layer
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
3 Copyright (C) 1997-2006 Sam Lantinga
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
4
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
5 This library is free software; you can redistribute it and/or
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
6 modify it under the terms of the GNU Lesser General Public
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
7 License as published by the Free Software Foundation; either
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
9
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
10 This library is distributed in the hope that it will be useful,
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
13 Lesser General Public License for more details.
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
14
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
15 You should have received a copy of the GNU Lesser General Public
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
16 License along with this library; if not, write to the Free Software
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
18
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
19 Sam Lantinga
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
20 slouken@libsdl.org
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
21 */
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
22
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
23 /*we need to define it, so that raw input is included*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
24
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
25 #if (_WIN32_WINNT < 0x0501)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
26 #undef _WIN32_WINNT
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
27 #define _WIN32_WINNT 0x0501
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
28 #endif
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
29
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
30 #include "SDL_config.h"
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
31
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
32 #include "SDL_win32video.h"
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
33
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
34 #include "../../events/SDL_mouse_c.h"
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
35
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
36 #include <wintab.h>
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
37 #define PACKETDATA ( PK_X | PK_Y | PK_BUTTONS | PK_NORMAL_PRESSURE)
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
38 #define PACKETMODE 0
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
39 #include <pktdef.h>
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
40
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
41 extern HANDLE* mice;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
42
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
43 extern int total_mice;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
44
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
45 extern int tablet;
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
46
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
47 void
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
48 WIN_InitMouse(_THIS)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
49 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
50 int index=0;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
51 RAWINPUTDEVICELIST *deviceList=NULL;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
52 int devCount=0;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
53 int i;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
54 int tmp=0;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
55 char* buffer=NULL;
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
56 char* tab="wacom";/*since windows does't give us handles to tablets, we have to detect a tablet by it's name*/
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
57
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
58 SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
59
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
60 /*we're checking for the number of rawinput devices*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
61
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
62 if(GetRawInputDeviceList(NULL,&devCount,sizeof(RAWINPUTDEVICELIST)))
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
63 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
64 return;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
65 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
66 else
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
67 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
68 deviceList = SDL_malloc(sizeof(RAWINPUTDEVICELIST)*devCount);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
69 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
70
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
71 /*we're getting the raw input device list*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
72
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
73 GetRawInputDeviceList(deviceList,&devCount,sizeof(RAWINPUTDEVICELIST));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
74
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
75 mice = SDL_malloc(devCount*sizeof(HANDLE));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
76
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
77 /*we're getting the details of the devices*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
78
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
79 for(i=0;i<devCount;++i)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
80 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
81 int j;
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
82 int k;
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
83 char *default_device_name="Pointing device xx";
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
84 const char *reg_key_root = "System\\CurrentControlSet\\Enum\\";
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
85 char *device_name=SDL_malloc(256*sizeof(char));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
86 char *key_name=NULL;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
87 char *tmp_name=NULL;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
88 LONG rc = 0;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
89 HKEY hkey;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
90 DWORD regtype = REG_SZ;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
91 DWORD out=256*sizeof(char);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
92 SDL_Mouse mouse;
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
93 int l;
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
94 if(deviceList[i].dwType!=RIM_TYPEMOUSE) /*if a device isn't a mouse type we don't want it*/
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
95 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
96 continue;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
97 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
98 if(GetRawInputDeviceInfoA(deviceList[i].hDevice, RIDI_DEVICENAME, NULL, &tmp)<0)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
99 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
100 continue;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
101 }
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
102
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
103 buffer = SDL_malloc((tmp+1)*sizeof(char));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
104 key_name = SDL_malloc(tmp + sizeof(reg_key_root)*sizeof(char));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
105
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
106 /*we're getting the device registry path and polishing it to get it's name,
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
107 surely there must be an easier way, but we haven't found it yet*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
108
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
109 if(GetRawInputDeviceInfoA(deviceList[i].hDevice, RIDI_DEVICENAME, buffer, &tmp)<0)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
110 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
111 continue;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
112 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
113
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
114 buffer+=4;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
115 tmp-=4;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
116
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
117 tmp_name=buffer;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
118 for(j=0;j<tmp;++j)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
119 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
120 if(*tmp_name=='#')
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
121 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
122 *tmp_name='\\';
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
123 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
124 else if(*tmp_name=='{')
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
125 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
126 break;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
127 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
128 ++tmp_name;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
129 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
130 *tmp_name='\0';
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
131
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
132 SDL_memcpy(key_name, reg_key_root, SDL_strlen (reg_key_root));
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
133 SDL_memcpy(key_name + (SDL_strlen (reg_key_root)), buffer, j + 1);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
134
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
135 /*we're opening the registry key to get the mouse name*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
136
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
137 rc = RegOpenKeyExA(HKEY_LOCAL_MACHINE, key_name, 0, KEY_READ, &hkey);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
138
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
139 if (rc != ERROR_SUCCESS)
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
140 {
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
141 SDL_memcpy(device_name, default_device_name, SDL_strlen(default_device_name));
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
142 }
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
143
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
144 rc = RegQueryValueExA(hkey, "DeviceDesc", NULL, &regtype, device_name, &out);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
145 RegCloseKey(hkey);
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
146
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
147 if (rc != ERROR_SUCCESS)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
148 {
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
149 SDL_memcpy(device_name, default_device_name, SDL_strlen(default_device_name));
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
150 }
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
151 /*we're saving the handle to the device*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
152 mice[index]=deviceList[i].hDevice;
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
153 SDL_zero(mouse);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
154 SDL_SetIndexId(index,index);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
155 l=SDL_strlen(device_name);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
156 /*we're checking if the device isn't by any chance a tablet*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
157 if(tablet==-1)
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
158 {
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
159 for(j=0;j<l-5;++j)
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
160 {
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
161 for(k=0;k<5;++k)
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
162 {
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
163 if(tab[k]!=SDL_tolower((unsigned char)device_name[j+k]))
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
164 {
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
165 break;
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
166 }
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
167 }
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
168 if(k==5)
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
169 {
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
170 tablet=index;
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
171 break;
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
172 }
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
173 }
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
174 }
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
175 /*if it's a tablet, let's read it's maximum and minimum pressure*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
176 if(tablet==index)
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
177 {
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
178 AXIS pressure;
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
179 WTInfo(WTI_DEVICES,DVC_NPRESSURE, &pressure);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
180 data->mouse = SDL_AddMouse(&mouse, index,device_name,pressure.axMax,pressure.axMin);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
181 }
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
182 else
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
183 {
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
184 data->mouse = SDL_AddMouse(&mouse, index,device_name,0,0);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
185 }
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
186 ++index;
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
187
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
188 SDL_free(buffer);
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
189 SDL_free(key_name);
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
190 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
191 total_mice=index;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
192 SDL_free(deviceList);
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
193 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
194
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
195 void
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
196 WIN_QuitMouse(_THIS)
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
197 {
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
198 int i;
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
199 SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
3771
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
200 /*let's delete all of the mouses*/
8cc36a399a12 comments added and improved code look(windows part)
Szymon Wilczek <kazeuser@gmail.com>
parents: 3770
diff changeset
201 SDL_MouseQuit();
3768
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
202 }
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
203
1b87a8beab9d Project part1
Szymon Wilczek <kazeuser@gmail.com>
parents: 1895
diff changeset
204 /* vi: set ts=4 sw=4 expandtab: */
3770
81b649bad6d2 Implementation finished
Szymon Wilczek <kazeuser@gmail.com>
parents: 3768
diff changeset
205