Mercurial > sdl-ios-xcode
annotate src/video/ataricommon/SDL_ataridevmouse.c @ 1585:980d2a0dc2a3
Date: Tue, 4 Mar 2003 15:05:31 -0800
From: "Jim"
Subject: [SDL] Frame Buffer patches...
Okay I'm new at patch generation - so please tell me if there's a better way
I could have done this.
Attached are two patch files generated with 'cvs diff -u'
SDL-fb-open-lock.patch applies to SDL_fbvideo.c
Modifies the open loop to check /dev/fb/0 found on devfs...
Modifies the lock code to return failure if the current virtual terminal
is not the one opened for frame buffer writing...
Lock would hang forever if switched away (ctrl-alt-F1) ...
SDL-fb-mousedrv-screensave.patch applies to SDL_fbevents.c
Switches default mouse mode based on SDL_MOUSEDRV - currently only
accepts PS2 - otherwise default is MS Mouse.
When the screen is switched - exisiting code (wrapped in ifdef
SAVE_SCREEN_COTENTS) would save the wrong bit of the screen....
( I run frame buffer 1600x1200, the size I requested was 800x600 - the
save would save the top 800 lines (non biased) and restore them... Adding
screen->offset fixed that )
However, if that option is not set, then a call to SDL_UpdateRect (full
screen) is made. (which may have had it's contents changed since the screen
is not entirely locked because of lock-failure patch)
Jim
[patches slightly tweaked for SDL 1.2.10]
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 22 Mar 2006 07:48:22 +0000 |
parents | 2405517b5eab |
children | 782fd950bd46 c121d94672cb a1b03ba2fcd0 |
rev | line source |
---|---|
1420
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
1 /* |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
4 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
9 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
13 Lesser General Public License for more details. |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
14 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
18 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
19 Sam Lantinga |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
20 slouken@libsdl.org |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
21 */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
22 #include "SDL_config.h" |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
23 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
24 /* |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
25 MiNT /dev/mouse driver |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
26 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
27 Patrice Mandin |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
28 */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
29 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
30 #include <fcntl.h> |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
31 #include <unistd.h> |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
32 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
33 #include "../../events/SDL_events_c.h" |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
34 #include "SDL_ataridevmouse_c.h" |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
35 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
36 /* Defines */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
37 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
38 #define DEVICE_NAME "/dev/mouse" |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
39 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
40 /* Local variables */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
41 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
42 static int handle = -1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
43 static int mouseb, prev_mouseb; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
44 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
45 /* Functions */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
46 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
47 int SDL_AtariDevMouse_Open(void) |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
48 { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
49 int r; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
50 const char *mousedev; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
51 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
52 /* |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
53 TODO: Fix the MiNT device driver, that locks mouse for other |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
54 applications, so this is disabled till fixed |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
55 */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
56 return 0; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
57 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
58 /* First, try SDL_MOUSEDEV device */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
59 mousedev = SDL_getenv("SDL_MOUSEDEV"); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
60 if (!mousedev) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
61 handle = open(mousedev, 0); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
62 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
63 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
64 /* Failed, try default device */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
65 if (handle<0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
66 handle = open(DEVICE_NAME, 0); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
67 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
68 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
69 if (handle<0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
70 handle = -1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
71 return 0; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
72 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
73 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
74 /* Set non blocking mode */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
75 r = fcntl(handle, F_GETFL, 0); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
76 if (r<0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
77 close(handle); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
78 handle = -1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
79 return 0; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
80 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
81 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
82 r |= O_NDELAY; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
83 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
84 r = fcntl(handle, F_SETFL, r); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
85 if (r<0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
86 close(handle); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
87 handle = -1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
88 return 0; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
89 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
90 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
91 prev_mouseb = 7; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
92 return 1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
93 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
94 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
95 void SDL_AtariDevMouse_Close(void) |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
96 { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
97 if (handle>0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
98 close(handle); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
99 handle = -1; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
100 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
101 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
102 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
103 static int atari_GetButton(int button) |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
104 { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
105 switch(button) |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
106 { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
107 case 0: |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
108 return SDL_BUTTON_RIGHT; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
109 case 1: |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
110 return SDL_BUTTON_MIDDLE; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
111 default: |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
112 break; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
113 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
114 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
115 return SDL_BUTTON_LEFT; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
116 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
117 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
118 void SDL_AtariDevMouse_PostMouseEvents(_THIS, SDL_bool buttonEvents) |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
119 { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
120 unsigned char buffer[3]; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
121 int mousex, mousey; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
122 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
123 if (handle<0) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
124 return; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
125 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
126 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
127 mousex = mousey = 0; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
128 while (read(handle, buffer, sizeof(buffer))==sizeof(buffer)) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
129 mouseb = buffer[0] & 7; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
130 mousex += (char) buffer[1]; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
131 mousey += (char) buffer[2]; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
132 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
133 /* Mouse button events */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
134 if (buttonEvents && (mouseb != prev_mouseb)) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
135 int i; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
136 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
137 for (i=0;i<3;i++) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
138 int curbutton, prevbutton; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
139 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
140 curbutton = mouseb & (1<<i); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
141 prevbutton = prev_mouseb & (1<<i); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
142 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
143 if (curbutton && !prevbutton) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
144 SDL_PrivateMouseButton(SDL_RELEASED, atari_GetButton(i), 0, 0); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
145 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
146 if (!curbutton && prevbutton) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
147 SDL_PrivateMouseButton(SDL_PRESSED, atari_GetButton(i), 0, 0); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
148 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
149 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
150 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
151 prev_mouseb = mouseb; |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
152 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
153 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
154 |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
155 /* Mouse motion event */ |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
156 if (mousex || mousey) { |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
157 SDL_PrivateMouseMotion(0, 1, mousex, -mousey); |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
158 } |
2405517b5eab
Added preliminary support for MiNT /dev/mouse driver (disabled atm)
Patrice Mandin <patmandin@gmail.com>
parents:
diff
changeset
|
159 } |