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++)
{
char keyName[128];
std::string optionName = prefix + getHotkeyString(i);
std::string optionName = prefix + Hotkeys[i].getConfigName();
//g_config->getOption (optionName.c_str (), &keycode);
Hotkeys[i].getString(keyName);

View File

@ -52,47 +52,47 @@
#include <sys/types.h>
#endif
static const char* HotkeyStrings[HK_MAX] = {
"OpenROM",
"CloseROM",
"CheatMenu",
"BindState",
"LoadLua",
"ToggleBG",
"SaveState",
"FDSSelect",
"LoadState",
"FDSEject",
"VSInsertCoin",
"VSToggleDip",
"MovieToggleFrameDisplay",
"SubtitleDisplay",
"Reset",
"Screenshot",
"Pause",
"DecreaseSpeed",
"IncreaseSpeed",
"FrameAdvance",
"Turbo",
"ToggleInputDisplay",
"ToggleMovieRW",
"MuteCapture",
"Quit",
"FrameAdvanceLagSkip",
"LagCounterDisplay",
"SelectState0", "SelectState1", "SelectState2", "SelectState3",
"SelectState4", "SelectState5", "SelectState6", "SelectState7",
"SelectState8", "SelectState9", "SelectStateNext", "SelectStatePrev",
"VolumeDown", "VolumeUp", "FKB_Enable" };
//static const char* HotkeyStrings[HK_MAX] = {
// "OpenROM",
// "CloseROM",
// "CheatMenu",
// "BindState",
// "LoadLua",
// "ToggleBG",
// "SaveState",
// "FDSSelect",
// "LoadState",
// "FDSEject",
// "VSInsertCoin",
// "VSToggleDip",
// "MovieToggleFrameDisplay",
// "SubtitleDisplay",
// "Reset",
// "Screenshot",
// "Pause",
// "DecreaseSpeed",
// "IncreaseSpeed",
// "FrameAdvance",
// "Turbo",
// "ToggleInputDisplay",
// "ToggleMovieRW",
// "MuteCapture",
// "Quit",
// "FrameAdvanceLagSkip",
// "LagCounterDisplay",
// "SelectState0", "SelectState1", "SelectState2", "SelectState3",
// "SelectState4", "SelectState5", "SelectState6", "SelectState7",
// "SelectState8", "SelectState9", "SelectStateNext", "SelectStatePrev",
// "VolumeDown", "VolumeUp", "FKB_Enable" };
const char *getHotkeyString( int i )
{
if ( (i>=0) && (i<HK_MAX) )
{
return HotkeyStrings[i];
}
return NULL;
}
//const char *getHotkeyString( int i )
//{
// if ( (i>=0) && (i<HK_MAX) )
// {
// return HotkeyStrings[i];
// }
// return NULL;
//}
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";
break;
case HK_CHEAT_MENU:
name = "CheatMenu"; keySeq = "F1";
name = "CheatMenu"; keySeq = "";
break;
case HK_BIND_STATE:
name = "BindState"; keySeq = "F2";
name = "BindState"; keySeq = "";
break;
case HK_LOAD_LUA:
name = "LoadLua"; keySeq = "F3";
name = "LoadLua"; keySeq = "Ctrl+L";
break;
case HK_TOGGLE_BG:
name = "ToggleBG"; keySeq = "F4";
name = "ToggleBG"; keySeq = "";
break;
// Save States
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;
case HK_FDS_SELECT:
name = "FDSSelect"; keySeq = "F6";
break;
case HK_LOAD_STATE:
name = "LoadState"; keySeq = "F7";
name = "FDSSelect"; keySeq = "";
break;
case HK_FDS_EJECT:
name = "FDSEject"; keySeq = "F7";
name = "FDSEject"; keySeq = "";
break;
case HK_VS_INSERT_COIN:
name = "VSInsertCoin"; keySeq = "F6";
name = "VSInsertCoin"; keySeq = "";
break;
case HK_VS_TOGGLE_DIPSWITCH:
name = "VSToggleDip"; keySeq = "F8";
name = "VSToggleDip"; keySeq = "";
break;
case HK_TOGGLE_FRAME_DISPLAY:
name = "MovieToggleFrameDisplay"; keySeq = ".";
break;
case HK_TOGGLE_SUBTITLE:
name = "SubtitleDisplay"; keySeq = "F10";
name = "SubtitleDisplay"; keySeq = "";
break;
case HK_POWER:
name = "Power"; keySeq = "";
break;
case HK_RESET:
name = "Reset"; keySeq = "F11";
break;
case HK_SCREENSHOT:
name = "Screenshot"; keySeq = "F12";
name = "Reset"; keySeq = "Ctrl+R";
break;
case HK_PAUSE:
name = "Pause"; keySeq = "Pause";
break;
case HK_SCREENSHOT:
name = "Screenshot"; keySeq = "F12";
break;
case HK_DECREASE_SPEED:
name = "DecreaseSpeed"; keySeq = "-";
break;
@ -213,10 +278,10 @@ int getHotKeyConfig( int i, const char **nameOut, const char **keySeqOut )
name = "SelectState9"; keySeq = "9";
break;
case HK_SELECT_STATE_NEXT:
name = "SelectStateNext"; keySeq = "PageUp";
name = "SelectStateNext"; keySeq = "";
break;
case HK_SELECT_STATE_PREV:
name = "SelectStatePrev"; keySeq = "PageDown";
name = "SelectStatePrev"; keySeq = "";
break;
case HK_VOLUME_DOWN:
name = "VolumeDown"; keySeq = "";

View File

@ -9,21 +9,46 @@ int LoadCPalette(const std::string &file);
// hotkey definitions
// 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,
HK_SAVE_STATE, HK_FDS_SELECT, HK_LOAD_STATE, HK_FDS_EJECT ,
enum HOTKEY {
// 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_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_FA_LAG_SKIP, HK_LAG_COUNTER_DISPLAY,
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, HK_VOLUME_DOWN, HK_VOLUME_UP,
HK_FA_LAG_SKIP, HK_LAG_COUNTER_DISPLAY,
HK_VOLUME_DOWN, HK_VOLUME_UP,
HK_FKB_ENABLE,
HK_MAX};
const char *getHotkeyString( int i );
//const char *getHotkeyString( int i );
#endif

View File

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

File diff suppressed because it is too large Load Diff