gpfce patch part2
[fceu.git] / drivers / win / input.c
diff --git a/drivers/win/input.c b/drivers/win/input.c
deleted file mode 100644 (file)
index aea3f47..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-/* FCE Ultra - NES/Famicom Emulator\r
- *\r
- * Copyright notice for this file:\r
- *  Copyright (C) 2002 Ben Parnell\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- */\r
-\r
-#include "common.h"\r
-#include <dinput.h>\r
-\r
-#include "input.h"\r
-#include "keyboard.h"\r
-#include "joystick.h"\r
-\r
-\r
-int UsrInputType[2]={SI_GAMEPAD,SI_GAMEPAD};\r
-int UsrInputTypeFC=SIFC_NONE;\r
-int InputType[2];\r
-int InputTypeFC;\r
-\r
-int NoFourScore=0;\r
-\r
-static uint32 powerpadbuf[2];\r
-\r
-LPDIRECTINPUT7 lpDI;\r
-\r
-void FixGIGO(void)\r
-{\r
- InputType[0]=UsrInputType[0];\r
- InputType[1]=UsrInputType[1];\r
- InputTypeFC=UsrInputTypeFC;\r
-\r
- if(GI)\r
- {\r
-  if(GI->input[0]>=0)\r
-   InputType[0]=GI->input[0];\r
-  if(GI->input[1]>=0)\r
-   InputType[1]=GI->input[1];\r
-  if(GI->inputfc>=0)\r
-   InputTypeFC=GI->inputfc;\r
-  CreateInputStuff();\r
- }\r
-}\r
-\r
-static uint32 JSreturn;\r
-static uint32 mousedata[3];\r
-\r
-\r
-static void ConfigGamePad(HWND hParent, int port);\r
-\r
-int InitDInput(void)\r
-{\r
- HRESULT ddrval;\r
-\r
- ddrval=DirectInputCreateEx(fceu_hInstance,DIRECTINPUT_VERSION,&IID_IDirectInput7,(LPVOID *)&lpDI,0);\r
- if(ddrval!=DI_OK)\r
- {\r
-  FCEUD_PrintError("DirectInput: Error creating DirectInput object.");\r
-  return 0;\r
- }\r
- return 1;\r
-}\r
-\r
-static int screenmode=0;\r
-void InputScreenChanged(int fs)\r
-{\r
- int x;\r
- for(x=0;x<2;x++)\r
-  if(InputType[x]==SI_ZAPPER)\r
-   FCEUI_SetInput(x,SI_ZAPPER,mousedata,fs);\r
- if(InputTypeFC==SIFC_SHADOW)\r
-  FCEUI_SetInputFC(SIFC_SHADOW,mousedata,fs);\r
- screenmode=fs;\r
-}\r
-\r
-void InitInputStuff(void)\r
-{\r
-   KeyboardInitialize();\r
-   InitJoysticks(hAppWnd);\r
-}\r
-\r
-void CreateInputStuff(void)\r
-{ \r
-   void *InputDPtr=0;\r
-   int x;\r
-   int TAttrib;\r
-\r
-   for(x=0;x<2;x++)\r
-   {\r
-    TAttrib=0;\r
-    switch(InputType[x])\r
-    {\r
-     case SI_GAMEPAD:InputDPtr=((uint8 *)&JSreturn)+(x<<1);\r
-                                break;\r
-     case SI_POWERPAD:InputDPtr=&powerpadbuf[x];break;\r
-     case SI_ARKANOID:InputDPtr=mousedata;break;\r
-     case SI_ZAPPER:InputDPtr=mousedata;\r
-                                TAttrib=screenmode;\r
-                                break;\r
-    }   \r
-    FCEUI_SetInput(x,InputType[x],InputDPtr,TAttrib);\r
-   }\r
-\r
-   TAttrib=0;\r
-   switch(InputTypeFC)\r
-   {\r
-    case SIFC_SHADOW:InputDPtr=mousedata;TAttrib=screenmode;break;\r
-    case SIFC_ARKANOID:InputDPtr=mousedata;break;    \r
-    case SIFC_FKB:InputDPtr=fkbkeys;memset(fkbkeys,0,sizeof(fkbkeys));break;\r
-   }\r
-   FCEUI_SetInputFC(InputTypeFC,InputDPtr,TAttrib);\r
-   FCEUI_DisableFourScore(NoFourScore);\r
-}\r
-\r
-void DestroyInput(void)\r
-{\r
-   KillJoysticks();\r
-   KeyboardClose();\r
-}\r
-\r
-void FCEUD_UpdateInput(void)\r
-{\r
-  int x;\r
-  uint32 JS;\r
-  int t=0;\r
-\r
-  KeyboardUpdate();\r
-\r
-  for(x=0;x<2;x++)\r
-   switch(InputType[x])\r
-   {\r
-    case SI_GAMEPAD:t|=1;break;\r
-    case SI_ARKANOID:t|=2;break;\r
-    case SI_ZAPPER:t|=2;break;\r
-    case SI_POWERPAD:powerpadbuf[x]=UpdatePPadData(x);break;\r
-   }\r
-  switch(InputTypeFC)\r
-  {\r
-   case SIFC_ARKANOID:t|=2;break;\r
-   case SIFC_SHADOW:t|=2;break;\r
-   case SIFC_FKB: if(cidisabled) UpdateFKB();break;\r
-  }\r
-  if(t&1)\r
-  {\r
-   JS=KeyboardDodo();\r
-   if(joy[0]|joy[1]|joy[2]|joy[3])\r
-    JS|=(uint32)GetJSOr();\r
-   JSreturn=(JS&0xFF000000)|(JS&0xFF)|((JS&0xFF0000)>>8)|((JS&0xFF00)<<8);   \r
-  }\r
-  if(t&2)  \r
-   GetMouseData(&mousedata[0], &mousedata[1], &mousedata[2]);\r
-}\r
-\r
-\r
-BOOL CALLBACK InputConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static void (*boopar[5])(HWND hParent, int port)={0,ConfigGamePad,0,ConfigKeyboardiePowerpad,0};\r
-  static void (*boopar2[5])(HWND hParent)={0,0,0,0,ConfigFKB};\r
-  static char *strn[5]={"<none>","Gamepad","Zapper","Power Pad","Arkanoid Paddle"};\r
-  static char *strf[5]={"<none>","Arkanoid Paddle","Hyper Shot gun","4-Player Adapter","Family Keyboard"};\r
-  int x;\r
-  \r
-  switch(uMsg) {\r
-   case WM_INITDIALOG:                \r
-                for(x=0;x<2;x++)        \r
-                {\r
-                 int y;\r
-\r
-                 for(y=0;y<5;y++)\r
-                  SendDlgItemMessage(hwndDlg,104+x,CB_ADDSTRING,0,(LPARAM)(LPSTR)strn[y]);\r
-\r
-                 SendDlgItemMessage(hwndDlg,104+x,CB_SETCURSEL,UsrInputType[x],(LPARAM)(LPSTR)0);\r
-                 EnableWindow(GetDlgItem(hwndDlg,106+x),boopar[InputType[x]]?1:0);\r
-                 SetDlgItemText(hwndDlg,200+x,(LPTSTR)strn[InputType[x]]);\r
-                }\r
-\r
-\r
-                {\r
-                 int y;\r
-                 for(y=0;y<5;y++)\r
-                  SendDlgItemMessage(hwndDlg,110,CB_ADDSTRING,0,(LPARAM)(LPSTR)strf[y]);\r
-                 SendDlgItemMessage(hwndDlg,110,CB_SETCURSEL,UsrInputTypeFC,(LPARAM)(LPSTR)0);                \r
-                 EnableWindow(GetDlgItem(hwndDlg,111),boopar2[InputTypeFC]?1:0);\r
-                 SetDlgItemText(hwndDlg,202,(LPTSTR)strf[InputTypeFC]);\r
-                }\r
-                \r
-                break;\r
-   case WM_CLOSE:\r
-   case WM_QUIT: goto gornk;\r
-   case WM_COMMAND:\r
-                if(HIWORD(wParam)==CBN_SELENDOK)\r
-                {\r
-                 switch(LOWORD(wParam))\r
-                 {\r
-                  case 104:\r
-                  case 105:UsrInputType[LOWORD(wParam)-104]=InputType[LOWORD(wParam)-104]=SendDlgItemMessage(hwndDlg,LOWORD(wParam),CB_GETCURSEL,0,(LPARAM)(LPSTR)0);\r
-                           EnableWindow( GetDlgItem(hwndDlg,LOWORD(wParam)+2),boopar[InputType[LOWORD(wParam)-104]]?1:0);\r
-                           SetDlgItemText(hwndDlg,200+LOWORD(wParam)-104,(LPTSTR)strn[InputType[LOWORD(wParam)-104]]);\r
-                           break;\r
-                  case 110:UsrInputTypeFC=InputTypeFC=SendDlgItemMessage(hwndDlg,110,CB_GETCURSEL,0,(LPARAM)(LPSTR)0);\r
-                           EnableWindow(GetDlgItem(hwndDlg,111),boopar2[InputTypeFC]?1:0);\r
-                           SetDlgItemText(hwndDlg,202,(LPTSTR)strf[InputTypeFC]);\r
-                           break;\r
-                           \r
-                 }\r
-\r
-                }\r
-                if(!(wParam>>16))\r
-                switch(wParam&0xFFFF)\r
-                {\r
-                 case 111:\r
-                  if(boopar2[InputTypeFC])\r
-                   boopar2[InputTypeFC](hwndDlg);\r
-                  break;\r
-\r
-                 case 107:\r
-                 case 106:\r
-                  {\r
-                   int t=(wParam&0xFFFF)-106;\r
-                   if(boopar[InputType[t]])\r
-                    boopar[InputType[t]](hwndDlg,t);\r
-                  }\r
-                  break;\r
-                 case 1:\r
-                        gornk:\r
-                        EndDialog(hwndDlg,0);\r
-                        break;\r
-               }\r
-              }\r
-  return 0;\r
-}\r
-\r
-void ConfigInput(HWND hParent)\r
-{\r
-  DialogBox(fceu_hInstance,"INPUTCONFIG",hParent,InputConCallB);\r
-  CreateInputStuff();\r
-}\r
-\r
-\r
-static int porttemp;\r
-\r
-BOOL CALLBACK GPConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)\r
-{\r
-  switch(uMsg) {\r
-   case WM_INITDIALOG:                \r
-                if(NoFourScore)\r
-                 CheckDlgButton(hwndDlg,200,BST_CHECKED);\r
-                break;\r
-   case WM_CLOSE:\r
-   case WM_QUIT: goto gornk;\r
-   case WM_COMMAND:\r
-                if(!(wParam>>16))\r
-                switch(wParam&0xFFFF)\r
-                {\r
-                 case 107:ConfigJoystickies(hwndDlg, porttemp);break;\r
-                 case 106:ConfigKeyboardie(hwndDlg, porttemp);break;\r
-                 case 1:\r
-                        gornk:\r
-                        NoFourScore=0;\r
-                        if(IsDlgButtonChecked(hwndDlg,200)==BST_CHECKED)\r
-                         NoFourScore=1;\r
-                        EndDialog(hwndDlg,0);\r
-                        break;\r
-               }\r
-              }\r
-  return 0;\r
-}\r
-\r
-static void ConfigGamePad(HWND hParent, int port)\r
-{\r
-  porttemp=port;\r
-  DialogBox(fceu_hInstance,"GAMEPADCONFIG",hParent,GPConCallB);\r
-}\r
-\r
-\r