src/joystick/nds/SDL_sysjoystick.c
branchgsoc2008_nds
changeset 2673 24a6b3588eac
parent 2671 c3e7c0698cbb
child 2676 082cc3ffd7d8
equal deleted inserted replaced
2672:74ac057679d5 2673:24a6b3588eac
    23 #ifdef SAVE_RCSID
    23 #ifdef SAVE_RCSID
    24 static char rcsid =
    24 static char rcsid =
    25     "@(#) $Id: SDL_sysjoystick.c,v 1.2 2001/04/26 16:50:17 hercules Exp $";
    25     "@(#) $Id: SDL_sysjoystick.c,v 1.2 2001/04/26 16:50:17 hercules Exp $";
    26 #endif
    26 #endif
    27 
    27 
       
    28 #include "SDL_config.h"
       
    29 
       
    30 #ifdef SDL_JOYSTICK_NDS
       
    31 
    28 /* This is the system specific header for the SDL joystick API */
    32 /* This is the system specific header for the SDL joystick API */
    29 #include <nds.h>
    33 #include <nds.h>
    30 //#include <nds/registers_alt.h>
    34 //#include <nds/registers_alt.h>
    31 #include <stdio.h>              /* For the definition of NULL */
    35 #include <stdio.h>              /* For the definition of NULL */
    32 
    36 
    33 #include "SDL_error.h"
    37 #include "SDL_error.h"
       
    38 #include "SDL_events.h"
    34 #include "SDL_joystick.h"
    39 #include "SDL_joystick.h"
    35 #include "SDL_sysjoystick.h"
    40 #include "SDL_sysjoystick.h"
    36 #include "SDL_joystick_c.h"
    41 #include "SDL_joystick_c.h"
    37 
    42 
    38 #include "../../video/nds/SDL_ndsevents_c.h"
    43 #include "../../video/nds/SDL_ndsevents_c.h"
    44  */
    49  */
    45 int
    50 int
    46 SDL_SYS_JoystickInit(void)
    51 SDL_SYS_JoystickInit(void)
    47 {
    52 {
    48     SDL_numjoysticks = 1;
    53     SDL_numjoysticks = 1;
    49     
    54     /* keysInit();*/
    50         //keysInit();
    55     return (1);
    51         return (1);
       
    52 }
    56 }
    53 
    57 
    54 /* Function to get the device-dependent name of a joystick */
    58 /* Function to get the device-dependent name of a joystick */
    55 const char *
    59 const char *
    56 SDL_SYS_JoystickName(int index)
    60 SDL_SYS_JoystickName(int index)
    80 /* Function to update the state of a joystick - called as a device poll.
    84 /* Function to update the state of a joystick - called as a device poll.
    81  * This function shouldn't update the joystick structure directly,
    85  * This function shouldn't update the joystick structure directly,
    82  * but instead should call SDL_PrivateJoystick*() to deliver events
    86  * but instead should call SDL_PrivateJoystick*() to deliver events
    83  * and update joystick device state.
    87  * and update joystick device state.
    84  */
    88  */
    85 int prevbutton = 0;
       
    86 int prevkey = 0;
       
    87 
       
    88 int dc = NULL;
       
    89 int ldc = 0;
       
    90 u32 keysd, keysu = NULL;
       
    91 void
    89 void
    92 SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
    90 SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
    93 {
    91 {
    94     
    92     u32 keysd, keysu;
    95         //dc=keysd;
    93     int magnitude = 16384;
    96         //if (dc != NULL)
    94     scanKeys();
    97         //{
    95     keysd = keysDown();
    98         //fprintf(stderr,"heartbeat= %d\n",REG_VCOUNT); 
    96     keysu = keysUp();
    99         //swiWaitForVBlank();
       
   100         //scanKeys();
       
   101         //keysd = keysDown(); 
       
   102         //keysu = keysUp();
       
   103         //ldc=keysd;
       
   104         
       
   105         //}
       
   106         /*if (prevkey !=NULL && prevbutton !=NULL)
       
   107            {
       
   108            scanKeys();
       
   109            }
       
   110          */ 
       
   111         
       
   112         //scanKeys();
       
   113         keysd = keysDown();
       
   114     
       
   115 keysu = keysUp();
       
   116     
       
   117 
    97 
   118 short ax = 0, v = 0, h = 0;
       
   119     if ((keysd & KEY_UP)) {
    98     if ((keysd & KEY_UP)) {
   120         ax = 1;
    99         SDL_PrivateJoystickAxis(joystick, 1, -magnitude);
   121         v = -10;
   100     }
   122         SDL_PrivateJoystickAxis(joystick, ax, v);
       
   123         prevkey = KEY_UP;
       
   124     }                           //fprintf(stderr,"KEY_UP\n");}
       
   125     if ((keysd & KEY_DOWN)) {
   101     if ((keysd & KEY_DOWN)) {
   126         ax = 1;
   102         SDL_PrivateJoystickAxis(joystick, 1, magnitude);
   127         v = 10;
   103     }
   128         SDL_PrivateJoystickAxis(joystick, ax, v);
       
   129         prevkey = KEY_DOWN;
       
   130     }                           //fprintf(stderr,"KEY_DOWN\n");}
       
   131     if ((keysd & KEY_LEFT)) {
   104     if ((keysd & KEY_LEFT)) {
   132         ax = 0;
   105         SDL_PrivateJoystickAxis(joystick, 0, -magnitude);
   133         h = -10;
   106     }
   134         SDL_PrivateJoystickAxis(joystick, ax, h);
       
   135         prevkey = KEY_LEFT;
       
   136     }                           //fprintf(stderr,"KEY_LEFT\n");}
       
   137     if ((keysd & KEY_RIGHT)) {
   107     if ((keysd & KEY_RIGHT)) {
   138         ax = 0;
   108         SDL_PrivateJoystickAxis(joystick, 0, magnitude);
   139         h = 10;
       
   140         SDL_PrivateJoystickAxis(joystick, ax, h);
       
   141         prevkey = KEY_RIGHT;
       
   142     }                           //fprintf(stderr,"KEY_RIGHT\n");}
       
   143     
       
   144 if ((keysu & KEY_UP)) {
       
   145         ax = 1;
       
   146         v = 0;
       
   147         SDL_PrivateJoystickAxis(joystick, ax, v);
       
   148         prevkey = NULL;
       
   149     }                           //fprintf(stderr,"KEY_UP\n");}
       
   150     if ((keysu & KEY_DOWN)) {
       
   151         ax = 1;
       
   152         v = 0;
       
   153         SDL_PrivateJoystickAxis(joystick, ax, v);
       
   154         prevkey = NULL;
       
   155     }                           //fprintf(stderr,"KEY_DOWN\n");}
       
   156     if ((keysu & KEY_LEFT)) {
       
   157         ax = 0;
       
   158         h = 0;
       
   159         SDL_PrivateJoystickAxis(joystick, ax, h);
       
   160         prevkey = NULL;
       
   161     }                           //fprintf(stderr,"KEY_LEFT\n");}
       
   162     if ((keysu & KEY_RIGHT)) {
       
   163         ax = 0;
       
   164         h = 0;
       
   165         SDL_PrivateJoystickAxis(joystick, ax, h);
       
   166         prevkey = NULL;
       
   167     }                           //fprintf(stderr,"KEY_RIGHT\n");}
       
   168     
       
   169 if ((keysd & KEY_A)) {
       
   170         SDL_PrivateJoystickButton(joystick, 0, SDL_PRESSED);
       
   171         prevbutton = KEY_A;
       
   172     }
       
   173     
       
   174 if ((keysd & KEY_B)) {
       
   175         SDL_PrivateJoystickButton(joystick, 1, SDL_PRESSED);
       
   176         prevbutton = KEY_B;
       
   177     }
       
   178     
       
   179 if ((keysd & KEY_X)) {
       
   180         SDL_PrivateJoystickButton(joystick, 2, SDL_PRESSED);
       
   181         prevbutton = KEY_X;
       
   182     }
       
   183     
       
   184 if ((keysd & KEY_Y)) {
       
   185         SDL_PrivateJoystickButton(joystick, 3, SDL_PRESSED);
       
   186         prevbutton = KEY_Y;
       
   187     }
       
   188     
       
   189 if ((keysd & KEY_SELECT)) {
       
   190         SDL_PrivateJoystickButton(joystick, 6, SDL_PRESSED);
       
   191         prevbutton = KEY_SELECT;
       
   192     }
       
   193     
       
   194 if ((keysd & KEY_START)) {
       
   195         SDL_PrivateJoystickButton(joystick, 7, SDL_PRESSED);
       
   196         prevbutton = KEY_START;
       
   197     }
       
   198     
       
   199 if ((keysd & KEY_L)) {
       
   200         SDL_PrivateJoystickButton(joystick, 4, SDL_PRESSED);
       
   201         prevbutton = KEY_L;
       
   202     }
       
   203     
       
   204 if ((keysd & KEY_R)) {
       
   205         SDL_PrivateJoystickButton(joystick, 5, SDL_PRESSED);
       
   206         prevbutton = KEY_R;
       
   207     }
       
   208     
       
   209 
       
   210 if ((keysu & KEY_A)) {
       
   211         SDL_PrivateJoystickButton(joystick, 0, SDL_RELEASED);
       
   212         prevbutton = NULL;
       
   213     }
       
   214     
       
   215 if ((keysu & KEY_B)) {
       
   216         SDL_PrivateJoystickButton(joystick, 1, SDL_RELEASED);
       
   217         prevbutton = NULL;
       
   218     }
       
   219     
       
   220 if ((keysu & KEY_X)) {
       
   221         SDL_PrivateJoystickButton(joystick, 2, SDL_RELEASED);
       
   222         prevbutton = NULL;
       
   223     }
       
   224     
       
   225 if ((keysu & KEY_Y)) {
       
   226         SDL_PrivateJoystickButton(joystick, 3, SDL_RELEASED);
       
   227         prevbutton = NULL;
       
   228     }
       
   229     
       
   230 if ((keysu & KEY_SELECT)) {
       
   231         SDL_PrivateJoystickButton(joystick, 6, SDL_RELEASED);
       
   232         prevbutton = NULL;
       
   233     }
       
   234     
       
   235 if ((keysu & KEY_START)) {
       
   236         SDL_PrivateJoystickButton(joystick, 7, SDL_RELEASED);
       
   237         prevbutton = NULL;
       
   238     }
       
   239     
       
   240 if ((keysu & KEY_L)) {
       
   241         SDL_PrivateJoystickButton(joystick, 4, SDL_RELEASED);
       
   242         prevbutton = NULL;
       
   243     }
       
   244     
       
   245 if ((keysu & KEY_R)) {
       
   246         SDL_PrivateJoystickButton(joystick, 5, SDL_RELEASED);
       
   247         prevbutton = NULL;
       
   248     }
   109     }
   249 
   110 
       
   111     if ((keysu & (KEY_UP|KEY_DOWN))) {
       
   112         SDL_PrivateJoystickAxis(joystick, 1, 0);
       
   113     }
       
   114     if ((keysu & (KEY_LEFT|KEY_RIGHT))) {
       
   115         SDL_PrivateJoystickAxis(joystick, 0, 0);
       
   116     }
   250 
   117 
       
   118     if ((keysd & KEY_A)) {
       
   119         SDL_PrivateJoystickButton(joystick, 0, SDL_PRESSED);
       
   120     }
       
   121     if ((keysd & KEY_B)) {
       
   122         SDL_PrivateJoystickButton(joystick, 1, SDL_PRESSED);
       
   123     }
       
   124     if ((keysd & KEY_X)) {
       
   125         SDL_PrivateJoystickButton(joystick, 2, SDL_PRESSED);
       
   126     }
       
   127     if ((keysd & KEY_Y)) {
       
   128         SDL_PrivateJoystickButton(joystick, 3, SDL_PRESSED);
       
   129     }
       
   130 
       
   131     if ((keysd & KEY_L)) {
       
   132         SDL_PrivateJoystickButton(joystick, 4, SDL_PRESSED);
       
   133     }
       
   134     if ((keysd & KEY_R)) {
       
   135         SDL_PrivateJoystickButton(joystick, 5, SDL_PRESSED);
       
   136     }
       
   137 
       
   138     if ((keysd & KEY_SELECT)) {
       
   139         SDL_PrivateJoystickButton(joystick, 6, SDL_PRESSED);
       
   140     }
       
   141     if ((keysd & KEY_START)) {
       
   142         SDL_PrivateJoystickButton(joystick, 7, SDL_PRESSED);
       
   143     }
       
   144 
       
   145     if ((keysu & KEY_A)) {
       
   146         SDL_PrivateJoystickButton(joystick, 0, SDL_RELEASED);
       
   147     }
       
   148     if ((keysu & KEY_B)) {
       
   149         SDL_PrivateJoystickButton(joystick, 1, SDL_RELEASED);
       
   150     }
       
   151     if ((keysu & KEY_X)) {
       
   152         SDL_PrivateJoystickButton(joystick, 2, SDL_RELEASED);
       
   153     }
       
   154     if ((keysu & KEY_Y)) {
       
   155         SDL_PrivateJoystickButton(joystick, 3, SDL_RELEASED);
       
   156     }
       
   157 
       
   158     if ((keysu & KEY_L)) {
       
   159         SDL_PrivateJoystickButton(joystick, 4, SDL_RELEASED);
       
   160     }
       
   161     if ((keysu & KEY_R)) {
       
   162         SDL_PrivateJoystickButton(joystick, 5, SDL_RELEASED);
       
   163     }
       
   164 
       
   165     if ((keysu & KEY_SELECT)) {
       
   166         SDL_PrivateJoystickButton(joystick, 6, SDL_RELEASED);
       
   167     }
       
   168     if ((keysu & KEY_START)) {
       
   169         SDL_PrivateJoystickButton(joystick, 7, SDL_RELEASED);
       
   170     }
   251 }
   171 }
   252 
   172 
   253 /* Function to close a joystick after use */
   173 /* Function to close a joystick after use */
   254 void
   174 void
   255 SDL_SYS_JoystickClose(SDL_Joystick * joystick)
   175 SDL_SYS_JoystickClose(SDL_Joystick * joystick)
   259 /* Function to perform any system-specific joystick related cleanup */
   179 /* Function to perform any system-specific joystick related cleanup */
   260 void
   180 void
   261 SDL_SYS_JoystickQuit(void)
   181 SDL_SYS_JoystickQuit(void)
   262 {
   182 {
   263 }
   183 }
       
   184 #endif /* SDL_JOYSTICK_NDS */
       
   185