Browse Source

add keyrepeat to config (still disabled by default)

Wei Mingzhi 6 years ago
parent
commit
62822eef8b
3 changed files with 15 additions and 5 deletions
  1. 8 5
      input.c
  2. 5 0
      palcfg.c
  3. 2 0
      palcfg.h

+ 8 - 5
input.c

@@ -244,11 +244,14 @@ PAL_UpdateKeyboardState(
          if (dwCurrentTime > rgdwKeyLastTime[i])
          {
             PAL_KeyDown(g_KeyMap[i][1], (rgdwKeyLastTime[i] != 0));
-#ifdef PAL_ALLOW_KEYREPEAT
-            rgdwKeyLastTime[i] = dwCurrentTime + (rgdwKeyLastTime[i] == 0 ? 200 : 75);
-#else
-            rgdwKeyLastTime[i] = 0xFFFFFFFF;
-#endif
+            if (gConfig.fEnableKeyRepeat)
+            {
+               rgdwKeyLastTime[i] = dwCurrentTime + (rgdwKeyLastTime[i] == 0 ? 200 : 75);
+            }
+            else
+            {
+               rgdwKeyLastTime[i] = 0xFFFFFFFF;
+            }
          }
       }
       else

+ 5 - 0
palcfg.c

@@ -41,6 +41,7 @@ static const ConfigItem gConfigItems[PALCFG_ALL_MAX] = {
 	{ PALCFG_LAUNCHSETTING,     PALCFG_BOOLEAN,  "LaunchSetting",     13, MAKE_VALUE(PAL_HAS_CONFIG_PAGE,           FALSE,                 TRUE) },
 	{ PALCFG_STEREO,            PALCFG_BOOLEAN,  "Stereo",             6, MAKE_VALUE(TRUE,                          FALSE,                 TRUE) },                  // Default for stereo audio
 	{ PALCFG_USESURROUNDOPL,    PALCFG_BOOLEAN,  "UseSurroundOPL",    14, MAKE_VALUE(TRUE,                          FALSE,                 TRUE) },                  // Default for using surround opl
+	{ PALCFG_ENABLEKEYREPEAT,   PALCFG_BOOLEAN,  "EnableKeyRepeat",   15, MAKE_VALUE(FALSE,                         FALSE,                 TRUE) },
 	{ PALCFG_USETOUCHOVERLAY,   PALCFG_BOOLEAN,  "UseTouchOverlay",   15, MAKE_VALUE(PAL_HAS_TOUCH,                 FALSE,                 TRUE) },
 	{ PALCFG_ENABLEAVIPLAY,     PALCFG_BOOLEAN,  "EnableAviPlay",     13, MAKE_VALUE(TRUE,                          FALSE,                 TRUE) },
 
@@ -461,6 +462,7 @@ PAL_LoadConfig(
 	gConfig.fIsWIN95 = FALSE;	// Default for DOS version
 	gConfig.fUseSurroundOPL = values[PALCFG_STEREO].bValue && values[PALCFG_USESURROUNDOPL].bValue;
 	gConfig.fLaunchSetting = values[PALCFG_LAUNCHSETTING].bValue;
+	gConfig.fEnableKeyRepeat = values[PALCFG_ENABLEKEYREPEAT].bValue;
 	gConfig.fUseTouchOverlay = values[PALCFG_USETOUCHOVERLAY].bValue;
 	gConfig.fKeepAspectRatio = values[PALCFG_KEEPASPECTRATIO].bValue;
 	gConfig.fFullScreen = values[PALCFG_FULLSCREEN].bValue;
@@ -508,6 +510,7 @@ PAL_SaveConfig(
 		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_LAUNCHSETTING), gConfig.fLaunchSetting); fputs(buf, fp);
 		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_STEREO), gConfig.iAudioChannels == 2 ? TRUE : FALSE); fputs(buf, fp);
 		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_USESURROUNDOPL), gConfig.fUseSurroundOPL); fputs(buf, fp);
+		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_ENABLEKEYREPEAT), gConfig.fEnableKeyRepeat); fputs(buf, fp);
 		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_USETOUCHOVERLAY), gConfig.fUseTouchOverlay); fputs(buf, fp);
 		sprintf(buf, "%s=%d\n", PAL_ConfigName(PALCFG_ENABLEAVIPLAY), gConfig.fEnableAviPlay); fputs(buf, fp);
 
@@ -561,6 +564,7 @@ PAL_GetConfigItem(
 		case PALCFG_LAUNCHSETTING:     value.bValue = gConfig.fLaunchSetting; break;
 		case PALCFG_STEREO:            value.bValue = (gConfig.iAudioChannels == 2); break;
 		case PALCFG_USESURROUNDOPL:    value.bValue = gConfig.fUseSurroundOPL; break;
+		case PALCFG_ENABLEKEYREPEAT:   value.bValue = gConfig.fEnableKeyRepeat; break;
 		case PALCFG_USETOUCHOVERLAY:   value.bValue = gConfig.fUseTouchOverlay; break;
 		case PALCFG_ENABLEAVIPLAY:     value.bValue = gConfig.fEnableAviPlay; break;
 		case PALCFG_SURROUNDOPLOFFSET: value.iValue = gConfig.iSurroundOPLOffset; break;
@@ -604,6 +608,7 @@ PAL_SetConfigItem(
 	case PALCFG_LAUNCHSETTING:     gConfig.fLaunchSetting = value.bValue; break;
 	case PALCFG_STEREO:            gConfig.iAudioChannels = value.bValue ? 2 : 1; break;
 	case PALCFG_USESURROUNDOPL:    gConfig.fUseSurroundOPL = value.bValue; break;
+	case PALCFG_ENABLEKEYREPEAT:   gConfig.fEnableKeyRepeat = value.bValue; break;
 	case PALCFG_USETOUCHOVERLAY:   gConfig.fUseTouchOverlay = value.bValue; break;
 	case PALCFG_ENABLEAVIPLAY:     gConfig.fEnableAviPlay = value.bValue; break;
 	case PALCFG_SURROUNDOPLOFFSET: gConfig.iSurroundOPLOffset = value.iValue; break;

+ 2 - 0
palcfg.h

@@ -43,6 +43,7 @@ typedef enum tagPALCFG_ITEM
 	PALCFG_LAUNCHSETTING,
 	PALCFG_STEREO,
 	PALCFG_USESURROUNDOPL,
+	PALCFG_ENABLEKEYREPEAT,
 	PALCFG_USETOUCHOVERLAY,
 	PALCFG_ENABLEAVIPLAY,
 	/* Booleans */
@@ -195,6 +196,7 @@ typedef struct tagCONFIGURATION
 	BOOL             fEnableJoyStick;
 	BOOL             fUseCustomScreenLayout;
 	BOOL             fLaunchSetting;
+	BOOL             fEnableKeyRepeat;
 	BOOL             fUseTouchOverlay;
 	BOOL             fEnableAviPlay;
 #if USE_RIX_EXTRA_INIT