Mercurial > sdl-ios-xcode
changeset 2676:082cc3ffd7d8 gsoc2008_nds
Fixed a conflict between the touch and joystick drivers. They now should both behave as expected.
author | Darren Alton <dalton@stevens.edu> |
---|---|
date | Tue, 01 Jul 2008 13:02:50 +0000 |
parents | 5e4274591163 |
children | 6386764eb222 |
files | src/file/SDL_rwops.c src/joystick/nds/SDL_sysjoystick.c src/touchscreen/nds/SDL_systouchscreen.c src/video/nds/SDL_ndsevents.c |
diffstat | 4 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/file/SDL_rwops.c Sun Jun 29 21:32:31 2008 +0000 +++ b/src/file/SDL_rwops.c Tue Jul 01 13:02:50 2008 +0000 @@ -466,9 +466,11 @@ 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) {
--- a/src/joystick/nds/SDL_sysjoystick.c Sun Jun 29 21:32:31 2008 +0000 +++ b/src/joystick/nds/SDL_sysjoystick.c Tue Jul 01 13:02:50 2008 +0000 @@ -91,7 +91,7 @@ { u32 keysd, keysu; int magnitude = 16384; - scanKeys(); + /*scanKeys();*/ keysd = keysDown(); keysu = keysUp();
--- a/src/touchscreen/nds/SDL_systouchscreen.c Sun Jun 29 21:32:31 2008 +0000 +++ b/src/touchscreen/nds/SDL_systouchscreen.c Tue Jul 01 13:02:50 2008 +0000 @@ -85,7 +85,7 @@ Uint16 xpos=0, ypos=0, pressure = 32767; touchPosition touch; - scanKeys(); + /*scanKeys();*/ keysd = keysDown(); keysh = keysHeld(); keysu = keysUp(); @@ -94,13 +94,18 @@ 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);