Mercurial > sdl-ios-xcode
diff src/joystick/riscos/SDL_sysjoystick.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 92947e3a18db |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/joystick/riscos/SDL_sysjoystick.c Sun May 21 17:27:13 2006 +0000 +++ b/src/joystick/riscos/SDL_sysjoystick.c Sun May 28 13:04:16 2006 +0000 @@ -41,9 +41,9 @@ #define JOYSTICK_READ 0x43F40 -struct joystick_hwdata +struct joystick_hwdata { - int joystate; + int joystate; }; @@ -52,32 +52,32 @@ * joysticks. Joystick 0 should be the system default joystick. * It should return number of joysticks, or -1 on an unrecoverable fatal error. */ -int SDL_SYS_JoystickInit(void) +int +SDL_SYS_JoystickInit (void) { - _kernel_swi_regs regs; + _kernel_swi_regs regs; - /* Try to read joystick 0 */ - regs.r[0] = 0; - if (_kernel_swi(JOYSTICK_READ, ®s, ®s) == NULL) - { - /* Switch works so assume we've got a joystick */ - return 1; - } - /* Switch fails so it looks like there's no joystick here */ + /* Try to read joystick 0 */ + regs.r[0] = 0; + if (_kernel_swi (JOYSTICK_READ, ®s, ®s) == NULL) { + /* Switch works so assume we've got a joystick */ + return 1; + } + /* Switch fails so it looks like there's no joystick here */ - return(0); + return (0); } /* Function to get the device-dependent name of a joystick */ -const char *SDL_SYS_JoystickName(int index) +const char * +SDL_SYS_JoystickName (int index) { - if (index == 0) - { - return "RISC OS Joystick 0"; - } + if (index == 0) { + return "RISC OS Joystick 0"; + } - SDL_SetError("No joystick available with that index"); - return(NULL); + SDL_SetError ("No joystick available with that index"); + return (NULL); } /* Function to open a joystick for use. @@ -85,24 +85,25 @@ This should fill the nbuttons and naxes fields of the joystick structure. It returns 0, or -1 if there is an error. */ -int SDL_SYS_JoystickOpen(SDL_Joystick *joystick) +int +SDL_SYS_JoystickOpen (SDL_Joystick * joystick) { - _kernel_swi_regs regs; + _kernel_swi_regs regs; - if(!(joystick->hwdata=SDL_malloc(sizeof(struct joystick_hwdata)))) - return -1; + if (!(joystick->hwdata = SDL_malloc (sizeof (struct joystick_hwdata)))) + return -1; - regs.r[0] = joystick->index; + regs.r[0] = joystick->index; - /* Don't know how to get exact count of buttons so assume max of 4 for now */ - joystick->nbuttons=4; + /* Don't know how to get exact count of buttons so assume max of 4 for now */ + joystick->nbuttons = 4; - joystick->nhats=0; - joystick->nballs=0; - joystick->naxes=2; - joystick->hwdata->joystate=0; + joystick->nhats = 0; + joystick->nballs = 0; + joystick->naxes = 2; + joystick->hwdata->joystate = 0; - return 0; + return 0; } @@ -111,66 +112,69 @@ * but instead should call SDL_PrivateJoystick*() to deliver events * and update joystick device state. */ -void SDL_SYS_JoystickUpdate(SDL_Joystick *joystick) +void +SDL_SYS_JoystickUpdate (SDL_Joystick * joystick) { - _kernel_swi_regs regs; - regs.r[0] = joystick->index; + _kernel_swi_regs regs; + regs.r[0] = joystick->index; - if (_kernel_swi(JOYSTICK_READ, ®s, ®s) == NULL) - { - int newstate = regs.r[0]; - int oldstate = joystick->hwdata->joystate; - if (newstate != oldstate) - { - if ((newstate & 0xFF) != (oldstate & 0xFF)) - { - int y = regs.r[0] & 0xFF; - /* Convert to signed values */ - if (y >= 128) y -= 256; - SDL_PrivateJoystickAxis(joystick,1,-y * 256); /* Up and down opposite to result in SDL */ - } - if ((newstate & 0xFF00) != (oldstate & 0xFF00)) - { - int x = (regs.r[0] & 0xFF00) >> 8; - if (x >= 128) x -= 256; - SDL_PrivateJoystickAxis(joystick,0,x * 256); - } + if (_kernel_swi (JOYSTICK_READ, ®s, ®s) == NULL) { + int newstate = regs.r[0]; + int oldstate = joystick->hwdata->joystate; + if (newstate != oldstate) { + if ((newstate & 0xFF) != (oldstate & 0xFF)) { + int y = regs.r[0] & 0xFF; + /* Convert to signed values */ + if (y >= 128) + y -= 256; + SDL_PrivateJoystickAxis (joystick, 1, -y * 256); /* Up and down opposite to result in SDL */ + } + if ((newstate & 0xFF00) != (oldstate & 0xFF00)) { + int x = (regs.r[0] & 0xFF00) >> 8; + if (x >= 128) + x -= 256; + SDL_PrivateJoystickAxis (joystick, 0, x * 256); + } - if ((newstate & 0xFF0000) != (oldstate & 0xFF0000)) - { - int buttons = (regs.r[0] & 0xFF0000) >> 16; - int oldbuttons = (oldstate & 0xFF0000) >> 16; - int i; - for (i = 0; i < joystick->nbuttons; i++) - { - if ((buttons & (1<<i)) != (oldbuttons & (1<<i))) - { - if (buttons & (1<<i)) SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); - else SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); - } - } - } - joystick->hwdata->joystate = newstate; - } - } + if ((newstate & 0xFF0000) != (oldstate & 0xFF0000)) { + int buttons = (regs.r[0] & 0xFF0000) >> 16; + int oldbuttons = (oldstate & 0xFF0000) >> 16; + int i; + for (i = 0; i < joystick->nbuttons; i++) { + if ((buttons & (1 << i)) != (oldbuttons & (1 << i))) { + if (buttons & (1 << i)) + SDL_PrivateJoystickButton (joystick, i, + SDL_PRESSED); + else + SDL_PrivateJoystickButton (joystick, i, + SDL_RELEASED); + } + } + } + joystick->hwdata->joystate = newstate; + } + } - return; + return; } /* Function to close a joystick after use */ -void SDL_SYS_JoystickClose(SDL_Joystick *joystick) +void +SDL_SYS_JoystickClose (SDL_Joystick * joystick) { - if(joystick->hwdata) - SDL_free(joystick->hwdata); - return; + if (joystick->hwdata) + SDL_free (joystick->hwdata); + return; } /* Function to perform any system-specific joystick related cleanup */ -void SDL_SYS_JoystickQuit(void) +void +SDL_SYS_JoystickQuit (void) { - SDL_numjoysticks=0; + SDL_numjoysticks = 0; - return; + return; } #endif /* SDL_JOYSTICK_RISCOS */ +/* vi: set ts=4 sw=4 expandtab: */