Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Fixed a conflict between the touch and joystick drivers. They now sho…

…uld both behave as expected.
  • Loading branch information
Darren Alton committed Jul 1, 2008
1 parent 61877bc commit 8222488377873b7919fa60ded8e739d335022c27
@@ -466,9 +466,11 @@ SDL_RWops *
SDL_RWFromFP(FILE * fp, SDL_bool autoclose)
{
SDL_RWops *rwops = NULL;
#ifdef __NDS__
#if 0
ifdef __NDS__
/* set it up so we can use stdio file function */
fatInitDefault();
printf("called fatInitDefault()");
#endif /* __NDS__ */
rwops = SDL_AllocRW();
if (rwops != NULL) {
@@ -91,7 +91,7 @@ SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
{
u32 keysd, keysu;
int magnitude = 16384;
scanKeys();
/*scanKeys();*/
keysd = keysDown();
keysu = keysUp();

@@ -85,7 +85,7 @@ SDL_SYS_TouchscreenUpdate(SDL_Touchscreen * touchscreen)
Uint16 xpos=0, ypos=0, pressure = 32767;
touchPosition touch;

scanKeys();
/*scanKeys();*/
keysd = keysDown();
keysh = keysHeld();
keysu = keysUp();
@@ -94,13 +94,18 @@ SDL_SYS_TouchscreenUpdate(SDL_Touchscreen * touchscreen)
ypos = (touch.py << 16) / 192 + 1;
/* TODO uses touch.x and touch.y for something.
we discussed in the mailing list having both "hardware x/y" and
"screen x/y" coordinates. */
"screen x/y" coordinates. maybe modify structs for that too
also, find out how Colors! gets pressure and see if it's practical here
*/

if ((keysd & KEY_TOUCH)) {
SDL_PrivateTouchPress(touchscreen, 0, xpos, ypos, pressure);
}
if ((keysh & KEY_TOUCH)) {
SDL_PrivateTouchMove(touchscreen, 0, xpos, ypos, pressure);
/* sometimes the touch jumps to y=1 before it reports as keysUp */
if(ypos > 1) {
SDL_PrivateTouchMove(touchscreen, 0, xpos, ypos, pressure);
}
}
if ((keysu & KEY_TOUCH)) {
SDL_PrivateTouchRelease(touchscreen, 0);
@@ -38,7 +38,7 @@
void
NDS_PumpEvents(_THIS)
{
/* do nothing. */
scanKeys();
}

/* vi: set ts=4 sw=4 expandtab: */

0 comments on commit 8222488

Please sign in to comment.