diff --git a/BasiliskII/src/SDL/audio_sdl.cpp b/BasiliskII/src/SDL/audio_sdl.cpp index 7d126a0d..84cb4d9d 100644 --- a/BasiliskII/src/SDL/audio_sdl.cpp +++ b/BasiliskII/src/SDL/audio_sdl.cpp @@ -361,6 +361,7 @@ void audio_set_speaker_volume(uint32 vol) { } +#if SDL_VERSION_ATLEAST(2,0,0) static int play_startup(void *arg) { SDL_AudioSpec wav_spec; Uint8 *wav_buffer; @@ -384,3 +385,8 @@ static int play_startup(void *arg) { void PlayStartupSound() { SDL_CreateThread(play_startup, "", NULL); } +#else +void PlayStartupSound() { + // Not implemented +} +#endif diff --git a/BasiliskII/src/SDL/video_sdl.cpp b/BasiliskII/src/SDL/video_sdl.cpp index 395778a0..83ed73f3 100644 --- a/BasiliskII/src/SDL/video_sdl.cpp +++ b/BasiliskII/src/SDL/video_sdl.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #ifdef WIN32 #include /* alloca() */ @@ -365,6 +366,7 @@ public: virtual void switch_to_current_mode(void); virtual void set_palette(uint8 *pal, int num); + virtual void set_gamma(uint8 *gamma, int num); bool video_open(void); void video_close(void); @@ -520,12 +522,26 @@ static void set_mac_frame_buffer(SDL_monitor_desc &monitor, int depth) } // Set window name and class -static void set_window_name(int name) +static void set_window_name(bool mouse_grabbed) { + const char *title = PrefsFindString("title"); + std::string s = title ? title : GetString(STR_WINDOW_TITLE); + int grabbed = 0; + if (mouse_grabbed) + { + s += GetString(STR_WINDOW_TITLE_GRABBED_PRE); + int hotkey = PrefsFindInt32("hotkey"); + hotkey = hotkey ? hotkey : 1; + if (hotkey & 1) s += GetString(STR_WINDOW_TITLE_GRABBED1); + if (hotkey & 2) s += GetString(STR_WINDOW_TITLE_GRABBED2); + if (hotkey & 4) s += GetString(STR_WINDOW_TITLE_GRABBED4); + s += GetString(STR_WINDOW_TITLE_GRABBED_POST); + } const SDL_VideoInfo *vi = SDL_GetVideoInfo(); - if (vi && vi->wm_available) { - const char *str = GetString(name); - SDL_WM_SetCaption(str, str); + if (vi && vi->wm_available) + { + //The icon name should stay the same + SDL_WM_SetCaption(s.c_str(), GetString(STR_WINDOW_TITLE)); } } @@ -736,7 +752,7 @@ void driver_base::adapt_to_video_mode() { SDL_ShowCursor(hardware_cursor); // Set window name/class - set_window_name(STR_WINDOW_TITLE); + set_window_name(false); // Everything went well init_ok = true; @@ -1304,8 +1320,8 @@ void VideoVBL(void) // Setting the window name must happen on the main thread, else it doesn't work on // some platforms - e.g. macOS Sierra. if (mouse_grabbed_window_name_status != mouse_grabbed) { - set_window_name(mouse_grabbed ? STR_WINDOW_TITLE_GRABBED : STR_WINDOW_TITLE); - mouse_grabbed_window_name_status = mouse_grabbed; + set_window_name(mouse_grabbed); + mouse_grabbed_window_name_status = mouse_grabbed; } // Temporarily give up frame buffer lock (this is the point where @@ -1333,7 +1349,7 @@ void VideoInterrupt(void) // Setting the window name must happen on the main thread, else it doesn't work on // some platforms - e.g. macOS Sierra. if (mouse_grabbed_window_name_status != mouse_grabbed) { - set_window_name(mouse_grabbed ? STR_WINDOW_TITLE_GRABBED : STR_WINDOW_TITLE); + set_window_name(mouse_grabbed); mouse_grabbed_window_name_status = mouse_grabbed; } @@ -1452,6 +1468,10 @@ void SDL_monitor_desc::set_palette(uint8 *pal, int num_in) UNLOCK_PALETTE; } +void SDL_monitor_desc::set_gamma(uint8 *gamma, int num_in) +{ + // Not implemented +} /* * Switch video mode @@ -2337,4 +2357,11 @@ void video_set_dirty_area(int x, int y, int w, int h) } #endif +#ifdef SHEEPSHAVER +void video_set_gamma(int n_colors) +{ + // Not supported in SDL 1.2 +} +#endif + #endif // ends: SDL version check diff --git a/BasiliskII/src/SDL/video_sdl2.cpp b/BasiliskII/src/SDL/video_sdl2.cpp index e7f43a1e..e3720674 100644 --- a/BasiliskII/src/SDL/video_sdl2.cpp +++ b/BasiliskII/src/SDL/video_sdl2.cpp @@ -555,14 +555,15 @@ static void set_window_name() { if (!sdl_window) return; const char *title = PrefsFindString("title"); std::string s = title ? title : GetString(STR_WINDOW_TITLE); - if (mouse_grabbed) { - s += GetString(STR_WINDOW_TITLE_GRABBED0); + if (mouse_grabbed) + { + s += GetString(STR_WINDOW_TITLE_GRABBED_PRE); int hotkey = PrefsFindInt32("hotkey"); - if (!hotkey) hotkey = 1; + hotkey = hotkey ? hotkey : 1; if (hotkey & 1) s += GetString(STR_WINDOW_TITLE_GRABBED1); - if (hotkey & 2) s += GetString(STR_WINDOW_TITLE_GRABBED2); - if (hotkey & 4) s += GetString(STR_WINDOW_TITLE_GRABBED3); - s += GetString(STR_WINDOW_TITLE_GRABBED4); + if (hotkey & 2) s += GetString(STR_WINDOW_TITLE_GRABBED2); + if (hotkey & 4) s += GetString(STR_WINDOW_TITLE_GRABBED4); + s += GetString(STR_WINDOW_TITLE_GRABBED_POST); } SDL_SetWindowTitle(sdl_window, s.c_str()); } @@ -1673,11 +1674,7 @@ static void do_toggle_fullscreen(void) SDL_SetWindowGrab(sdl_window, SDL_FALSE); } else { display_type = DISPLAY_SCREEN; -#ifdef __MACOSX__ SDL_SetWindowFullscreen(sdl_window, SDL_WINDOW_FULLSCREEN_DESKTOP); -#else - SDL_SetWindowFullscreen(sdl_window, SDL_WINDOW_FULLSCREEN); -#endif SDL_SetWindowGrab(sdl_window, SDL_TRUE); } } diff --git a/BasiliskII/src/Unix/configure.ac b/BasiliskII/src/Unix/configure.ac index 60a5c307..513f0f4b 100755 --- a/BasiliskII/src/Unix/configure.ac +++ b/BasiliskII/src/Unix/configure.ac @@ -36,7 +36,7 @@ AC_ARG_ENABLE(sdl-video, [ --enable-sdl-video use SDL for video graphi AC_ARG_ENABLE(sdl-audio, [ --enable-sdl-audio use SDL for audio [default=no]], [WANT_SDL_AUDIO=$enableval], [WANT_SDL_AUDIO=yes]) AC_ARG_ENABLE(sdl-framework, [ --enable-sdl-framework use SDL framework [default=no]], [WANT_SDL_FRAMEWORK=$enableval], [WANT_SDL_FRAMEWORK=no]) AC_ARG_ENABLE(sdl-framework-prefix, [ --enable-sdl-framework-prefix=PFX default=/Library/Frameworks], [SDL_FRAMEWORK="$enableval"], [SDL_FRAMEWORK=/Library/Frameworks]) -#AC_ARG_WITH(sdl1, [ --with-sdl1 use SDL 1.x, rather than SDL 2.x [default=no]], [WANT_SDL_VERSION_MAJOR=1], []) +AC_ARG_WITH(sdl1, [ --with-sdl1 use SDL 1.x, rather than SDL 2.x [default=no]], [WANT_SDL_VERSION_MAJOR=1], []) dnl JIT compiler options. AC_ARG_ENABLE(jit-compiler, [ --enable-jit-compiler enable JIT compiler [default=yes]], [WANT_JIT=$enableval], [WANT_JIT=yes]) diff --git a/BasiliskII/src/emul_op.cpp b/BasiliskII/src/emul_op.cpp index 126b90a4..594817a6 100644 --- a/BasiliskII/src/emul_op.cpp +++ b/BasiliskII/src/emul_op.cpp @@ -93,8 +93,11 @@ void EmulOp(uint16 opcode, M68kRegisters *r) TimerReset(); EtherReset(); AudioReset(); +#ifdef ENABLE_SDL +#if SDL_VERSION_ATLEAST(2,0,0) PlayStartupSound(); - +#endif +#endif // Create BootGlobs at top of memory Mac_memset(RAMBaseMac + RAMSize - 4096, 0, 4096); uint32 boot_globs = RAMBaseMac + RAMSize - 0x1c; diff --git a/BasiliskII/src/include/user_strings.h b/BasiliskII/src/include/user_strings.h index f75a738e..fc00d3e2 100644 --- a/BasiliskII/src/include/user_strings.h +++ b/BasiliskII/src/include/user_strings.h @@ -218,11 +218,11 @@ enum { // Mac window STR_WINDOW_TITLE = 4000, - STR_WINDOW_TITLE_GRABBED0, + STR_WINDOW_TITLE_GRABBED_PRE, STR_WINDOW_TITLE_GRABBED1, STR_WINDOW_TITLE_GRABBED2, - STR_WINDOW_TITLE_GRABBED3, STR_WINDOW_TITLE_GRABBED4, + STR_WINDOW_TITLE_GRABBED_POST, STR_WINDOW_MENU = 4050, STR_WINDOW_ITEM_ABOUT, STR_WINDOW_ITEM_REFRESH, diff --git a/BasiliskII/src/user_strings.cpp b/BasiliskII/src/user_strings.cpp index 1e608b27..5279cb21 100644 --- a/BasiliskII/src/user_strings.cpp +++ b/BasiliskII/src/user_strings.cpp @@ -231,16 +231,20 @@ user_string_def common_strings[] = { {STR_JIT_FOLLOW_CONST_JUMPS, "Translate through constant jumps (inline blocks)"}, {STR_WINDOW_TITLE, "Basilisk II"}, - {STR_WINDOW_TITLE_GRABBED0, " (mouse grabbed, press "}, - {STR_WINDOW_TITLE_GRABBED1, "Ctrl-"}, + {STR_WINDOW_TITLE_GRABBED_PRE, " (mouse grabbed, press "}, + {STR_WINDOW_TITLE_GRABBED1, "Ctrl+"}, #ifdef __APPLE__ - {STR_WINDOW_TITLE_GRABBED2, "Opt-"}, - {STR_WINDOW_TITLE_GRABBED3, "Cmd-"}, + {STR_WINDOW_TITLE_GRABBED2, "Opt+"}, + {STR_WINDOW_TITLE_GRABBED4, "Cmd+F5"}, #else - {STR_WINDOW_TITLE_GRABBED2, "Alt-"}, - {STR_WINDOW_TITLE_GRABBED3, "Win-"}, + {STR_WINDOW_TITLE_GRABBED2, "Alt+"}, #endif - {STR_WINDOW_TITLE_GRABBED4, "F5 to release)"}, +#ifdef __WIN32__ + {STR_WINDOW_TITLE_GRABBED4, "Win+"}, +#elif !defined(__APPLE__) + {STR_WINDOW_TITLE_GRABBED4, "Super+"}, +#endif + {STR_WINDOW_TITLE_GRABBED_POST, "F5 to release)"}, {STR_WINDOW_MENU, "Basilisk II"}, {STR_WINDOW_ITEM_ABOUT, "About Basilisk II" ELLIPSIS}, {STR_WINDOW_ITEM_REFRESH, "Refresh Rate"}, diff --git a/SheepShaver/src/Unix/configure.ac b/SheepShaver/src/Unix/configure.ac index 8f22fe81..06d6b65e 100755 --- a/SheepShaver/src/Unix/configure.ac +++ b/SheepShaver/src/Unix/configure.ac @@ -72,7 +72,7 @@ AC_ARG_ENABLE(sdl-video, [ --enable-sdl-video use SDL for video graphic AC_ARG_ENABLE(sdl-audio, [ --enable-sdl-audio use SDL for audio [default=no]], [WANT_SDL_AUDIO=$enableval], [WANT_SDL_AUDIO=yes]) AC_ARG_ENABLE(sdl-framework, [ --enable-sdl-framework use SDL framework [default=no]], [WANT_SDL_FRAMEWORK=$enableval], [WANT_SDL_FRAMEWORK=no]) AC_ARG_ENABLE(sdl-framework-prefix, [ --enable-sdl-framework-prefix=PFX default=/Library/Frameworks], [SDL_FRAMEWORK="$enableval"], [SDL_FRAMEWORK=/Library/Frameworks]) -#AC_ARG_WITH(sdl1, [ --with-sdl1 use SDL 1.x, rather than SDL 2.x [default=no]], [WANT_SDL_VERSION_MAJOR=1], []) +AC_ARG_WITH(sdl1, [ --with-sdl1 use SDL 1.x, rather than SDL 2.x [default=no]], [WANT_SDL_VERSION_MAJOR=1], []) dnl Checks for programs. AC_PROG_CC diff --git a/SheepShaver/src/include/user_strings.h b/SheepShaver/src/include/user_strings.h index 5a4f4048..78e24041 100644 --- a/SheepShaver/src/include/user_strings.h +++ b/SheepShaver/src/include/user_strings.h @@ -163,6 +163,9 @@ enum { STR_IGNORESEGV_CTRL, STR_IDLEWAIT_CTRL, STR_ROM_FILE_CTRL, + STR_NOGUI_CTRL, + STR_NOGUI_TIP, + STR_NOGUI_TIP2, // JIT Compiler pane STR_JIT_PANE_TITLE = 3700, @@ -171,11 +174,11 @@ enum { // Mac window STR_WINDOW_TITLE = 4000, - STR_WINDOW_TITLE_GRABBED0, + STR_WINDOW_TITLE_GRABBED_PRE, STR_WINDOW_TITLE_GRABBED1, STR_WINDOW_TITLE_GRABBED2, - STR_WINDOW_TITLE_GRABBED3, STR_WINDOW_TITLE_GRABBED4, + STR_WINDOW_TITLE_GRABBED_POST, STR_WINDOW_MENU = 4050, STR_WINDOW_ITEM_ABOUT, STR_WINDOW_ITEM_REFRESH, diff --git a/SheepShaver/src/user_strings.cpp b/SheepShaver/src/user_strings.cpp index c29f7cff..99f76946 100644 --- a/SheepShaver/src/user_strings.cpp +++ b/SheepShaver/src/user_strings.cpp @@ -102,7 +102,7 @@ user_string_def common_strings[] = { {STR_NOCDROM_CTRL, "Disable CD-ROM Driver"}, {STR_ADD_VOLUME_TITLE, "Add Volume"}, {STR_CREATE_VOLUME_TITLE, "Create Hardfile"}, - {STR_HARDFILE_SIZE_CTRL, "Size (MB)"}, + {STR_HARDFILE_SIZE_CTRL, "Size (MiB)"}, {STR_GRAPHICS_SOUND_PANE_TITLE, "Graphics/Sound"}, {STR_FRAMESKIP_CTRL, "Window Refresh Rate"}, @@ -171,22 +171,29 @@ user_string_def common_strings[] = { {STR_IGNORESEGV_CTRL, "Ignore Illegal Memory Accesses"}, {STR_IDLEWAIT_CTRL, "Don't Use CPU When Idle"}, {STR_ROM_FILE_CTRL, "ROM File"}, + {STR_NOGUI_CTRL, "Don't show settings window on launch"}, + {STR_NOGUI_TIP, "Tip: You can access the settings by right-clicking on the launcher icon." }, + {STR_NOGUI_TIP2, "Tip: You can access the settings with the command: SheepShaver --nogui false" }, {STR_JIT_PANE_TITLE, "JIT Compiler"}, {STR_JIT_CTRL, "Enable JIT Compiler"}, {STR_JIT_68K_CTRL, "Enable built-in 68k DR Emulator (EXPERIMENTAL)"}, {STR_WINDOW_TITLE, "SheepShaver"}, - {STR_WINDOW_TITLE_GRABBED0, " (mouse grabbed, press "}, - {STR_WINDOW_TITLE_GRABBED1, "Ctrl-"}, + {STR_WINDOW_TITLE_GRABBED_PRE, " (mouse grabbed, press "}, + {STR_WINDOW_TITLE_GRABBED1, "Ctrl+"}, #ifdef __APPLE__ - {STR_WINDOW_TITLE_GRABBED2, "Opt-"}, - {STR_WINDOW_TITLE_GRABBED3, "Cmd-"}, + {STR_WINDOW_TITLE_GRABBED2, "Opt+"}, + {STR_WINDOW_TITLE_GRABBED4, "Cmd+F5"}, #else - {STR_WINDOW_TITLE_GRABBED2, "Alt-"}, - {STR_WINDOW_TITLE_GRABBED3, "Win-"}, + {STR_WINDOW_TITLE_GRABBED2, "Alt+"}, #endif - {STR_WINDOW_TITLE_GRABBED4, "F5 to release)"}, +#ifdef __WIN32__ + {STR_WINDOW_TITLE_GRABBED4, "Win+"}, +#elif !defined(__APPLE__) + {STR_WINDOW_TITLE_GRABBED4, "Super+"}, +#endif + {STR_WINDOW_TITLE_GRABBED_POST, "F5 to release)"}, {STR_WINDOW_MENU, "SheepShaver"}, {STR_WINDOW_ITEM_ABOUT, "About SheepShaver" ELLIPSIS}, {STR_WINDOW_ITEM_REFRESH, "Refresh Rate"},