Qt hot key rework intermediate commit.

This commit is contained in:
mjbudd77 2021-03-29 17:39:19 -04:00
parent 3505e81710
commit 5a9010b8e2
5 changed files with 859 additions and 765 deletions

View File

@ -69,7 +69,7 @@ HotKeyConfDialog_t::HotKeyConfDialog_t(QWidget *parent)
for (int i = 0; i < HK_MAX; i++) for (int i = 0; i < HK_MAX; i++)
{ {
char keyName[128]; char keyName[128];
std::string optionName = prefix + getHotkeyString(i); std::string optionName = prefix + Hotkeys[i].getConfigName();
//g_config->getOption (optionName.c_str (), &keycode); //g_config->getOption (optionName.c_str (), &keycode);
Hotkeys[i].getString(keyName); Hotkeys[i].getString(keyName);

View File

@ -52,47 +52,47 @@
#include <sys/types.h> #include <sys/types.h>
#endif #endif
static const char* HotkeyStrings[HK_MAX] = { //static const char* HotkeyStrings[HK_MAX] = {
"OpenROM", // "OpenROM",
"CloseROM", // "CloseROM",
"CheatMenu", // "CheatMenu",
"BindState", // "BindState",
"LoadLua", // "LoadLua",
"ToggleBG", // "ToggleBG",
"SaveState", // "SaveState",
"FDSSelect", // "FDSSelect",
"LoadState", // "LoadState",
"FDSEject", // "FDSEject",
"VSInsertCoin", // "VSInsertCoin",
"VSToggleDip", // "VSToggleDip",
"MovieToggleFrameDisplay", // "MovieToggleFrameDisplay",
"SubtitleDisplay", // "SubtitleDisplay",
"Reset", // "Reset",
"Screenshot", // "Screenshot",
"Pause", // "Pause",
"DecreaseSpeed", // "DecreaseSpeed",
"IncreaseSpeed", // "IncreaseSpeed",
"FrameAdvance", // "FrameAdvance",
"Turbo", // "Turbo",
"ToggleInputDisplay", // "ToggleInputDisplay",
"ToggleMovieRW", // "ToggleMovieRW",
"MuteCapture", // "MuteCapture",
"Quit", // "Quit",
"FrameAdvanceLagSkip", // "FrameAdvanceLagSkip",
"LagCounterDisplay", // "LagCounterDisplay",
"SelectState0", "SelectState1", "SelectState2", "SelectState3", // "SelectState0", "SelectState1", "SelectState2", "SelectState3",
"SelectState4", "SelectState5", "SelectState6", "SelectState7", // "SelectState4", "SelectState5", "SelectState6", "SelectState7",
"SelectState8", "SelectState9", "SelectStateNext", "SelectStatePrev", // "SelectState8", "SelectState9", "SelectStateNext", "SelectStatePrev",
"VolumeDown", "VolumeUp", "FKB_Enable" }; // "VolumeDown", "VolumeUp", "FKB_Enable" };
const char *getHotkeyString( int i ) //const char *getHotkeyString( int i )
{ //{
if ( (i>=0) && (i<HK_MAX) ) // if ( (i>=0) && (i<HK_MAX) )
{ // {
return HotkeyStrings[i]; // return HotkeyStrings[i];
} // }
return NULL; // return NULL;
} //}
int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut ) int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut )
{ {
@ -108,50 +108,115 @@ int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut )
name = "CloseROM"; keySeq = "Ctrl+C"; name = "CloseROM"; keySeq = "Ctrl+C";
break; break;
case HK_CHEAT_MENU: case HK_CHEAT_MENU:
name = "CheatMenu"; keySeq = "F1"; name = "CheatMenu"; keySeq = "";
break; break;
case HK_BIND_STATE: case HK_BIND_STATE:
name = "BindState"; keySeq = "F2"; name = "BindState"; keySeq = "";
break; break;
case HK_LOAD_LUA: case HK_LOAD_LUA:
name = "LoadLua"; keySeq = "F3"; name = "LoadLua"; keySeq = "Ctrl+L";
break; break;
case HK_TOGGLE_BG: case HK_TOGGLE_BG:
name = "ToggleBG"; keySeq = "F4"; name = "ToggleBG"; keySeq = "";
break; break;
// Save States
case HK_SAVE_STATE: case HK_SAVE_STATE:
name = "SaveState"; keySeq = "F5"; name = "SaveState"; keySeq = "I";
break;
case HK_SAVE_STATE_0:
name = "SaveState0"; keySeq = "F10";
break;
case HK_SAVE_STATE_1:
name = "SaveState1"; keySeq = "F1";
break;
case HK_SAVE_STATE_2:
name = "SaveState2"; keySeq = "F2";
break;
case HK_SAVE_STATE_3:
name = "SaveState3"; keySeq = "F3";
break;
case HK_SAVE_STATE_4:
name = "SaveState4"; keySeq = "F4";
break;
case HK_SAVE_STATE_5:
name = "SaveState5"; keySeq = "F5";
break;
case HK_SAVE_STATE_6:
name = "SaveState6"; keySeq = "F6";
break;
case HK_SAVE_STATE_7:
name = "SaveState7"; keySeq = "F7";
break;
case HK_SAVE_STATE_8:
name = "SaveState8"; keySeq = "F8";
break;
case HK_SAVE_STATE_9:
name = "SaveState9"; keySeq = "F9";
break;
// Load States
case HK_LOAD_STATE:
name = "LoadState"; keySeq = "Shift+I";
break;
case HK_LOAD_STATE_0:
name = "LoadState0"; keySeq = "Shift+F10";
break;
case HK_LOAD_STATE_1:
name = "LoadState1"; keySeq = "Shift+F1";
break;
case HK_LOAD_STATE_2:
name = "LoadState2"; keySeq = "Shift+F2";
break;
case HK_LOAD_STATE_3:
name = "LoadState3"; keySeq = "Shift+F3";
break;
case HK_LOAD_STATE_4:
name = "LoadState4"; keySeq = "Shift+F4";
break;
case HK_LOAD_STATE_5:
name = "LoadState5"; keySeq = "Shift+F5";
break;
case HK_LOAD_STATE_6:
name = "LoadState6"; keySeq = "Shift+F6";
break;
case HK_LOAD_STATE_7:
name = "LoadState7"; keySeq = "Shift+F7";
break;
case HK_LOAD_STATE_8:
name = "LoadState8"; keySeq = "Shift+F8";
break;
case HK_LOAD_STATE_9:
name = "LoadState9"; keySeq = "Shift+F9";
break; break;
case HK_FDS_SELECT: case HK_FDS_SELECT:
name = "FDSSelect"; keySeq = "F6"; name = "FDSSelect"; keySeq = "";
break;
case HK_LOAD_STATE:
name = "LoadState"; keySeq = "F7";
break; break;
case HK_FDS_EJECT: case HK_FDS_EJECT:
name = "FDSEject"; keySeq = "F7"; name = "FDSEject"; keySeq = "";
break; break;
case HK_VS_INSERT_COIN: case HK_VS_INSERT_COIN:
name = "VSInsertCoin"; keySeq = "F6"; name = "VSInsertCoin"; keySeq = "";
break; break;
case HK_VS_TOGGLE_DIPSWITCH: case HK_VS_TOGGLE_DIPSWITCH:
name = "VSToggleDip"; keySeq = "F8"; name = "VSToggleDip"; keySeq = "";
break; break;
case HK_TOGGLE_FRAME_DISPLAY: case HK_TOGGLE_FRAME_DISPLAY:
name = "MovieToggleFrameDisplay"; keySeq = "."; name = "MovieToggleFrameDisplay"; keySeq = ".";
break; break;
case HK_TOGGLE_SUBTITLE: case HK_TOGGLE_SUBTITLE:
name = "SubtitleDisplay"; keySeq = "F10"; name = "SubtitleDisplay"; keySeq = "";
break;
case HK_POWER:
name = "Power"; keySeq = "";
break; break;
case HK_RESET: case HK_RESET:
name = "Reset"; keySeq = "F11"; name = "Reset"; keySeq = "Ctrl+R";
break;
case HK_SCREENSHOT:
name = "Screenshot"; keySeq = "F12";
break; break;
case HK_PAUSE: case HK_PAUSE:
name = "Pause"; keySeq = "Pause"; name = "Pause"; keySeq = "Pause";
break; break;
case HK_SCREENSHOT:
name = "Screenshot"; keySeq = "F12";
break;
case HK_DECREASE_SPEED: case HK_DECREASE_SPEED:
name = "DecreaseSpeed"; keySeq = "-"; name = "DecreaseSpeed"; keySeq = "-";
break; break;
@ -213,10 +278,10 @@ int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut )
name = "SelectState9"; keySeq = "9"; name = "SelectState9"; keySeq = "9";
break; break;
case HK_SELECT_STATE_NEXT: case HK_SELECT_STATE_NEXT:
name = "SelectStateNext"; keySeq = "PageUp"; name = "SelectStateNext"; keySeq = "";
break; break;
case HK_SELECT_STATE_PREV: case HK_SELECT_STATE_PREV:
name = "SelectStatePrev"; keySeq = "PageDown"; name = "SelectStatePrev"; keySeq = "";
break; break;
case HK_VOLUME_DOWN: case HK_VOLUME_DOWN:
name = "VolumeDown"; keySeq = ""; name = "VolumeDown"; keySeq = "";

View File

@ -9,21 +9,46 @@ int LoadCPalette(const std::string &file);
// hotkey definitions // hotkey definitions
// TODO: encapsulate this in an improved data structure // TODO: encapsulate this in an improved data structure
enum HOTKEY { HK_OPEN_ROM=0, HK_CLOSE_ROM, HK_CHEAT_MENU, HK_BIND_STATE, HK_LOAD_LUA, HK_TOGGLE_BG, enum HOTKEY {
HK_SAVE_STATE, HK_FDS_SELECT, HK_LOAD_STATE, HK_FDS_EJECT , // ROM Open and Close
HK_OPEN_ROM=0, HK_CLOSE_ROM,
// Emulation power, reset, and pause
HK_POWER, HK_RESET, HK_PAUSE,
// Emulation Execution Control
HK_FRAME_ADVANCE, HK_DECREASE_SPEED, HK_INCREASE_SPEED, HK_TURBO,
// Save States
HK_SAVE_STATE,
HK_SAVE_STATE_0, HK_SAVE_STATE_1, HK_SAVE_STATE_2, HK_SAVE_STATE_3, HK_SAVE_STATE_4,
HK_SAVE_STATE_5, HK_SAVE_STATE_6, HK_SAVE_STATE_7, HK_SAVE_STATE_8, HK_SAVE_STATE_9,
// Load States
HK_LOAD_STATE,
HK_LOAD_STATE_0, HK_LOAD_STATE_1, HK_LOAD_STATE_2, HK_LOAD_STATE_3, HK_LOAD_STATE_4,
HK_LOAD_STATE_5, HK_LOAD_STATE_6, HK_LOAD_STATE_7, HK_LOAD_STATE_8, HK_LOAD_STATE_9,
// Select State Slot
HK_SELECT_STATE_0, HK_SELECT_STATE_1, HK_SELECT_STATE_2, HK_SELECT_STATE_3, HK_SELECT_STATE_4,
HK_SELECT_STATE_5, HK_SELECT_STATE_6, HK_SELECT_STATE_7, HK_SELECT_STATE_8, HK_SELECT_STATE_9,
HK_SELECT_STATE_NEXT, HK_SELECT_STATE_PREV,
// FDS
HK_FDS_SELECT, HK_FDS_EJECT ,
// VS
HK_VS_INSERT_COIN, HK_VS_TOGGLE_DIPSWITCH, HK_VS_INSERT_COIN, HK_VS_TOGGLE_DIPSWITCH,
HK_TOGGLE_FRAME_DISPLAY, HK_TOGGLE_SUBTITLE, HK_RESET, HK_SCREENSHOT,
HK_PAUSE, HK_DECREASE_SPEED, HK_INCREASE_SPEED, HK_FRAME_ADVANCE, HK_TURBO, HK_CHEAT_MENU, HK_BIND_STATE, HK_LOAD_LUA, HK_TOGGLE_BG,
HK_TOGGLE_FRAME_DISPLAY, HK_TOGGLE_SUBTITLE, HK_SCREENSHOT,
HK_TOGGLE_INPUT_DISPLAY, HK_MOVIE_TOGGLE_RW, HK_MUTE_CAPTURE, HK_QUIT, HK_TOGGLE_INPUT_DISPLAY, HK_MOVIE_TOGGLE_RW, HK_MUTE_CAPTURE, HK_QUIT,
HK_FA_LAG_SKIP, HK_LAG_COUNTER_DISPLAY, HK_FA_LAG_SKIP, HK_LAG_COUNTER_DISPLAY,
HK_SELECT_STATE_0, HK_SELECT_STATE_1, HK_SELECT_STATE_2, HK_SELECT_STATE_3, HK_VOLUME_DOWN, HK_VOLUME_UP,
HK_SELECT_STATE_4, HK_SELECT_STATE_5, HK_SELECT_STATE_6, HK_SELECT_STATE_7,
HK_SELECT_STATE_8, HK_SELECT_STATE_9,
HK_SELECT_STATE_NEXT, HK_SELECT_STATE_PREV, HK_VOLUME_DOWN, HK_VOLUME_UP,
HK_FKB_ENABLE, HK_FKB_ENABLE,
HK_MAX}; HK_MAX};
const char *getHotkeyString( int i ); //const char *getHotkeyString( int i );
#endif #endif

View File

@ -291,25 +291,29 @@ int hotkey_t::getString( char *s )
{ {
s[0] = 0; s[0] = 0;
if ( sdl.modifier != 0 ) if ( shortcut )
{ {
if ( sdl.modifier & (KMOD_LSHIFT | KMOD_RSHIFT) ) strcpy( s, shortcut->key().toString().toStdString().c_str() );
{
strcat( s, "Shift+" );
}
if ( sdl.modifier & (KMOD_LALT | KMOD_RALT) )
{
strcat( s, "Alt+" );
}
if ( sdl.modifier & (KMOD_LCTRL | KMOD_RCTRL) )
{
strcat( s, "Ctrl+" );
}
} }
//if ( sdl.modifier != 0 )
//{
// if ( sdl.modifier & (KMOD_LSHIFT | KMOD_RSHIFT) )
// {
// strcat( s, "Shift+" );
// }
strcat( s, SDL_GetKeyName(sdl.value) ); // if ( sdl.modifier & (KMOD_LALT | KMOD_RALT) )
// {
// strcat( s, "Alt+" );
// }
// if ( sdl.modifier & (KMOD_LCTRL | KMOD_RCTRL) )
// {
// strcat( s, "Ctrl+" );
// }
//}
//strcat( s, SDL_GetKeyName(sdl.value) );
return 0; return 0;
} }

File diff suppressed because it is too large Load Diff