--- previous/src/shortcut.c 2018/04/24 19:25:32 1.1.1.2 +++ previous/src/shortcut.c 2018/04/24 19:29:52 1.1.1.3 @@ -14,6 +14,7 @@ const char ShortCut_fileid[] = "Hatari s #include "dialog.h" #include "file.h" #include "m68000.h" +#include "dimension.h" #include "memorySnapShot.h" #include "reset.h" #include "screen.h" @@ -23,7 +24,8 @@ const char ShortCut_fileid[] = "Hatari s #include "debugui.h" #include "sdlgui.h" #include "video.h" -#include "avi_record.h" +#include "snd.h" +#include "statusbar.h" #include "clocks_timings.h" static SHORTCUTKEYIDX ShortCutKey = SHORTCUT_NONE; /* current shortcut key */ @@ -59,11 +61,15 @@ static void ShortCut_MouseGrab(void) { if (bGrabMouse) { - SDL_WM_GrabInput(SDL_GRAB_ON); + SDL_SetRelativeMouseMode(SDL_TRUE); + SDL_SetWindowGrab(sdlWindow, SDL_TRUE); + Main_SetTitle(MOUSE_LOCK_MSG); } else { - SDL_WM_GrabInput(SDL_GRAB_OFF); + SDL_SetRelativeMouseMode(SDL_FALSE); + SDL_SetWindowGrab(sdlWindow, SDL_FALSE); + Main_SetTitle(NULL); } } } @@ -93,6 +99,9 @@ static void ShortCut_RecordAnimation(voi */ static void ShortCut_SoundOnOff(void) { + ConfigureParams.Sound.bEnableSound = !ConfigureParams.Sound.bEnableSound; + + Sound_Reset(); } @@ -118,13 +127,14 @@ static void ShortCut_BossKey(void) if (bGrabMouse) { - SDL_WM_GrabInput(SDL_GRAB_OFF); + SDL_SetRelativeMouseMode(SDL_FALSE); + SDL_SetWindowGrab(sdlWindow, SDL_FALSE); bGrabMouse = false; } Main_PauseEmulation(true); /* Minimize Window and give up processing to next one! */ - SDL_WM_IconifyWindow(); + fprintf(stderr,"FIXME: minimize window!\n"); } @@ -157,8 +167,19 @@ static void ShortCut_Pause(void) /** * Shorcut to load a disk image */ -static void ShortCut_InsertDisk(int drive) +static void ShortCut_Dimension(void) { +#if ENABLE_DIMENSION + if(ConfigureParams.Screen.nMonitorType != MONITOR_TYPE_DUAL) { + if (ConfigureParams.Screen.nMonitorType==MONITOR_TYPE_DIMENSION) { + ConfigureParams.Screen.nMonitorType=MONITOR_TYPE_CPU; + } else { + ConfigureParams.Screen.nMonitorType=MONITOR_TYPE_DIMENSION; + } + } + Statusbar_UpdateInfo(); + Screen_SetFullUpdate(); +#endif } @@ -186,6 +207,7 @@ void ShortCut_ActKey(void) Main_UnPauseEmulation(); Reset_Cold(); /* Reset emulator with 'cold' (clear all) */ break; +#if 0 case SHORTCUT_WARMRESET: Main_UnPauseEmulation(); Reset_Warm(); /* Emulator 'warm' reset */ @@ -197,7 +219,7 @@ void ShortCut_ActKey(void) ShortCut_BossKey(); /* Boss key */ break; case SHORTCUT_CURSOREMU: /* Toggle joystick emu on/off */ -// Joy_ToggleCursorEmulation(); + Joy_ToggleCursorEmulation(); break; case SHORTCUT_FASTFORWARD: ShortCut_FastForward(); /* Toggle Min/Max speed */ @@ -206,32 +228,43 @@ void ShortCut_ActKey(void) ShortCut_RecordAnimation(); /* Record animation */ break; case SHORTCUT_RECSOUND: -// ShortCut_RecordSound(); /* Toggle sound recording */ + ShortCut_RecordSound(); /* Toggle sound recording */ break; +#endif case SHORTCUT_SOUND: ShortCut_SoundOnOff(); /* Enable/disable sound */ break; +#if 0 case SHORTCUT_DEBUG: ShortCut_Debug(); /* Invoke the Debug UI */ break; +#endif +#if ENABLE_DIMENSION + case SHORTCUT_DEBUG: + nd_start_debugger(); /* Invoke the Debug UI */ + break; +#endif case SHORTCUT_PAUSE: ShortCut_Pause(); /* Invoke Pause */ break; case SHORTCUT_QUIT: Main_RequestQuit(); break; +#if 0 case SHORTCUT_LOADMEM: MemorySnapShot_Restore(ConfigureParams.Memory.szMemoryCaptureFileName, true); break; case SHORTCUT_SAVEMEM: MemorySnapShot_Capture(ConfigureParams.Memory.szMemoryCaptureFileName, true); break; - case SHORTCUT_INSERTDISKA: -// ShortCut_InsertDisk(0); +#endif + case SHORTCUT_DIMENSION: + ShortCut_Dimension(); break; case SHORTCUT_KEYS: case SHORTCUT_NONE: /* ERROR: cannot happen, just make compiler happy */ + default: break; } ShortCutKey = SHORTCUT_NONE; @@ -314,7 +347,11 @@ int ShortCut_CheckKeys(int modkey, int s { SHORTCUTKEYIDX key; - if (modkey & (KMOD_RALT|KMOD_LMETA|KMOD_RMETA|KMOD_MODE)) +#if defined(__APPLE__) + if ((modkey&(KMOD_RCTRL|KMOD_LCTRL)) && (modkey&(KMOD_RALT|KMOD_LALT))) +#else + if (modkey & (KMOD_RALT|KMOD_LGUI|KMOD_RGUI|KMOD_MODE)) +#endif key = ShortCut_CheckKey(symkey, ConfigureParams.Shortcut.withModifier); else key = ShortCut_CheckKey(symkey, ConfigureParams.Shortcut.withoutModifier);