ft2-clone

Fasttracker 2 clone
Log | Files | Refs | README | LICENSE

commit 80f1c7105ef27ec2426e02cb660d9d95a8706a65
parent 6e71350b6a996d27229ca18ac386f83c6e4ad58b
Author: Olav Sørensen <olav.sorensen@live.no>
Date:   Mon,  7 Sep 2020 11:39:41 +0200

Some changes to keybindings

1) Right Shift is now "Record Pattern" instead of "Record Song" (was wrong)
2) For Mac keyboards: Left Command key can now be used for "Play Pattern" (since some Mac keyboards don't have a Right Alt key)

Diffstat:
Msrc/ft2_keyboard.c | 23+++++++++++------------
Msrc/ft2_keyboard.h | 4++--
Msrc/ft2_textboxes.c | 8++++----
3 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/src/ft2_keyboard.c b/src/ft2_keyboard.c @@ -60,16 +60,12 @@ int8_t scancodeKeyToNote(SDL_Scancode scancode) void readKeyModifiers(void) { - SDL_Keymod modState; + const SDL_Keymod modState = SDL_GetModState(); - modState = SDL_GetModState(); - - keyb.ctrlPressed = (modState & (KMOD_LCTRL | KMOD_RCTRL)) ? true : false; keyb.leftCtrlPressed = (modState & KMOD_LCTRL) ? true : false; keyb.leftAltPressed = (modState & KMOD_LALT) ? true : false; keyb.leftShiftPressed = (modState & KMOD_LSHIFT) ? true : false; #ifdef __APPLE__ - keyb.commandPressed = (modState & (KMOD_LGUI | KMOD_RGUI)) ? true : false; keyb.leftCommandPressed = (modState & KMOD_LGUI) ? true : false; #endif keyb.keyModifierDown = (modState & (KMOD_LSHIFT | KMOD_LCTRL | KMOD_LALT | KMOD_LGUI)) ? true : false; @@ -360,13 +356,13 @@ static void handleKeys(SDL_Keycode keycode, SDL_Scancode scanKey) } break; - // This is maybe not ideal to implement... + // This is maybe not an ideal key for this anymore... //case SDLK_PRINTSCREEN: togglePatternEditorExtended(); break; // EDIT/PLAY KEYS - // record song - case SDLK_RSHIFT: startPlaying(PLAYMODE_RECSONG, 0); break; + // record pattern + case SDLK_RSHIFT: startPlaying(PLAYMODE_RECPATT, 0); break; // play song #ifdef __APPLE__ @@ -377,6 +373,9 @@ static void handleKeys(SDL_Keycode keycode, SDL_Scancode scanKey) break; // play pattern +#ifdef __APPLE__ + case SDLK_LGUI: // fall-through for Apple keyboards +#endif case SDLK_RALT: startPlaying(PLAYMODE_PATT, 0); break; case SDLK_SPACE: @@ -755,7 +754,7 @@ static bool checkModifiedKeys(SDL_Keycode keycode) break; case SDLK_a: - if (keyb.leftCtrlPressed || keyb.leftCommandPressed) + if (keyb.leftCtrlPressed) { if (ui.sampleEditorShown) rangeAll(); @@ -805,7 +804,7 @@ static bool checkModifiedKeys(SDL_Keycode keycode) return true; } - else if (keyb.leftCtrlPressed || keyb.leftCommandPressed) + else if (keyb.leftCtrlPressed) { if (ui.sampleEditorShown) sampCopy(); @@ -1038,7 +1037,7 @@ static bool checkModifiedKeys(SDL_Keycode keycode) return true; } - else if (keyb.leftCtrlPressed || keyb.leftCommandPressed) + else if (keyb.leftCtrlPressed) { if (ui.sampleEditorShown) sampPaste(); @@ -1075,7 +1074,7 @@ static bool checkModifiedKeys(SDL_Keycode keycode) return true; } - else if (keyb.leftCtrlPressed || keyb.leftCommandPressed) + else if (keyb.leftCtrlPressed) { if (ui.extended) exitPatternEditorExtended(); diff --git a/src/ft2_keyboard.h b/src/ft2_keyboard.h @@ -8,8 +8,8 @@ typedef struct keyb_t { uint8_t keyRepeat, keyPressed; bool ignoreCurrKeyUp, ignoreTextEditKey, numPadPlusPressed; - bool keyModifierDown, commandPressed, leftCommandPressed; - bool leftShiftPressed, leftCtrlPressed, ctrlPressed, leftAltPressed; + bool keyModifierDown, leftCommandPressed; + bool leftShiftPressed, leftCtrlPressed, leftAltPressed; } keyb_t; extern keyb_t keyb; // ft2_keyboard.c diff --git a/src/ft2_textboxes.c b/src/ft2_textboxes.c @@ -855,7 +855,7 @@ void handleTextEditControl(SDL_Keycode keycode) case SDLK_a: { // CTRL+A - mark all text - if (keyb.ctrlPressed || keyb.commandPressed) + if (keyb.leftCtrlPressed) { // count number of chars and get full text width textWidth = 0; @@ -883,7 +883,7 @@ void handleTextEditControl(SDL_Keycode keycode) case SDLK_x: { // CTRL+X - cut marked text - if (keyb.ctrlPressed || keyb.commandPressed) + if (keyb.leftCtrlPressed) cutMarkedText(t); } break; @@ -891,7 +891,7 @@ void handleTextEditControl(SDL_Keycode keycode) case SDLK_c: { // CTRL+C - copy marked text - if (keyb.ctrlPressed || keyb.commandPressed) + if (keyb.leftCtrlPressed) copyMarkedText(t); } break; @@ -899,7 +899,7 @@ void handleTextEditControl(SDL_Keycode keycode) case SDLK_v: { // CTRL+V - paste text - if (keyb.ctrlPressed || keyb.commandPressed) + if (keyb.leftCtrlPressed) pasteText(t); } break;