diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2016-06-24 10:43:46 +0200 |
| commit | 3570c7f03a2aa90aa634f96c0af1969af610f14d (patch) | |
| tree | 4252e03c0e853ba7cffe022937698c854ad0eaa9 /Source/Core/DolphinWX/MainNoGUI.cpp | |
| parent | 2115e8a4a6814e32107b5205ff5c95bbd3c6e99c (diff) | |
Reformat all the things. Have fun with merge conflicts.
Diffstat (limited to 'Source/Core/DolphinWX/MainNoGUI.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/MainNoGUI.cpp | 551 |
1 files changed, 277 insertions, 274 deletions
diff --git a/Source/Core/DolphinWX/MainNoGUI.cpp b/Source/Core/DolphinWX/MainNoGUI.cpp index 01994fea60..445a6c9fac 100644 --- a/Source/Core/DolphinWX/MainNoGUI.cpp +++ b/Source/Core/DolphinWX/MainNoGUI.cpp @@ -12,18 +12,18 @@ #include "Common/CommonTypes.h" #include "Common/Event.h" -#include "Common/MsgHandler.h" #include "Common/Logging/LogManager.h" +#include "Common/MsgHandler.h" #include "Core/Analytics.h" #include "Core/BootManager.h" #include "Core/ConfigManager.h" #include "Core/Core.h" -#include "Core/Host.h" -#include "Core/State.h" #include "Core/HW/Wiimote.h" +#include "Core/Host.h" #include "Core/IPC_HLE/WII_IPC_HLE_Device_usb.h" #include "Core/IPC_HLE/WII_IPC_HLE_WiiMote.h" +#include "Core/State.h" #include "UICommon/UICommon.h" @@ -36,96 +36,109 @@ static bool running = true; class Platform { public: - virtual void Init() {} - virtual void SetTitle(const std::string &title) {} - virtual void MainLoop() - { - while (running) - { - Core::HostDispatchJobs(); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } - } - virtual void Shutdown() {} - virtual ~Platform() {} + virtual void Init() {} + virtual void SetTitle(const std::string& title) {} + virtual void MainLoop() + { + while (running) + { + Core::HostDispatchJobs(); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + } + } + virtual void Shutdown() {} + virtual ~Platform() {} }; static Platform* platform; -void Host_NotifyMapLoaded() {} -void Host_RefreshDSPDebuggerWindow() {} +void Host_NotifyMapLoaded() +{ +} +void Host_RefreshDSPDebuggerWindow() +{ +} static Common::Event updateMainFrameEvent; void Host_Message(int Id) { - if (Id == WM_USER_STOP) - { - running = false; - updateMainFrameEvent.Set(); - } + if (Id == WM_USER_STOP) + { + running = false; + updateMainFrameEvent.Set(); + } } static void* s_window_handle = nullptr; void* Host_GetRenderHandle() { - return s_window_handle; + return s_window_handle; } void Host_UpdateTitle(const std::string& title) { - platform->SetTitle(title); + platform->SetTitle(title); } -void Host_UpdateDisasmDialog(){} +void Host_UpdateDisasmDialog() +{ +} void Host_UpdateMainFrame() { - updateMainFrameEvent.Set(); + updateMainFrameEvent.Set(); } -void Host_RequestRenderWindowSize(int width, int height) {} +void Host_RequestRenderWindowSize(int width, int height) +{ +} -void Host_RequestFullscreen(bool enable_fullscreen) {} +void Host_RequestFullscreen(bool enable_fullscreen) +{ +} void Host_SetStartupDebuggingParameters() { - SConfig& StartUp = SConfig::GetInstance(); - StartUp.bEnableDebugging = false; - StartUp.bBootToPause = false; + SConfig& StartUp = SConfig::GetInstance(); + StartUp.bEnableDebugging = false; + StartUp.bBootToPause = false; } bool Host_UIHasFocus() { - return false; + return false; } bool Host_RendererHasFocus() { - return rendererHasFocus; + return rendererHasFocus; } bool Host_RendererIsFullscreen() { - return rendererIsFullscreen; + return rendererIsFullscreen; } void Host_ConnectWiimote(int wm_idx, bool connect) { - if (Core::IsRunning() && SConfig::GetInstance().bWii) - { - Core::QueueHostJob([=] - { - bool was_unpaused = Core::PauseAndLock(true); - GetUsbPointer()->AccessWiiMote(wm_idx | 0x100)->Activate(connect); - Host_UpdateMainFrame(); - Core::PauseAndLock(false, was_unpaused); - }); - } + if (Core::IsRunning() && SConfig::GetInstance().bWii) + { + Core::QueueHostJob([=] { + bool was_unpaused = Core::PauseAndLock(true); + GetUsbPointer()->AccessWiiMote(wm_idx | 0x100)->Activate(connect); + Host_UpdateMainFrame(); + Core::PauseAndLock(false, was_unpaused); + }); + } } -void Host_SetWiiMoteConnectionState(int _State) {} +void Host_SetWiiMoteConnectionState(int _State) +{ +} -void Host_ShowVideoConfig(void*, const std::string&, const std::string&) {} +void Host_ShowVideoConfig(void*, const std::string&, const std::string&) +{ +} #if HAVE_X11 #include <X11/keysym.h> @@ -133,259 +146,249 @@ void Host_ShowVideoConfig(void*, const std::string&, const std::string&) {} class PlatformX11 : public Platform { - Display *dpy; - Window win; - Cursor blankCursor = None; + Display* dpy; + Window win; + Cursor blankCursor = None; #if defined(HAVE_XRANDR) && HAVE_XRANDR - X11Utils::XRRConfiguration *XRRConfig; + X11Utils::XRRConfiguration* XRRConfig; #endif - void Init() override - { - XInitThreads(); - dpy = XOpenDisplay(nullptr); - if (!dpy) - { - PanicAlert("No X11 display found"); - exit(1); - } - - win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), - SConfig::GetInstance().iRenderWindowXPos, - SConfig::GetInstance().iRenderWindowYPos, - SConfig::GetInstance().iRenderWindowWidth, - SConfig::GetInstance().iRenderWindowHeight, - 0, 0, BlackPixel(dpy, 0)); - XSelectInput(dpy, win, KeyPressMask | FocusChangeMask); - Atom wmProtocols[1]; - wmProtocols[0] = XInternAtom(dpy, "WM_DELETE_WINDOW", True); - XSetWMProtocols(dpy, win, wmProtocols, 1); - XMapRaised(dpy, win); - XFlush(dpy); - s_window_handle = (void*)win; - - if (SConfig::GetInstance().bDisableScreenSaver) - X11Utils::InhibitScreensaver(dpy, win, true); + void Init() override + { + XInitThreads(); + dpy = XOpenDisplay(nullptr); + if (!dpy) + { + PanicAlert("No X11 display found"); + exit(1); + } + + win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), SConfig::GetInstance().iRenderWindowXPos, + SConfig::GetInstance().iRenderWindowYPos, + SConfig::GetInstance().iRenderWindowWidth, + SConfig::GetInstance().iRenderWindowHeight, 0, 0, BlackPixel(dpy, 0)); + XSelectInput(dpy, win, KeyPressMask | FocusChangeMask); + Atom wmProtocols[1]; + wmProtocols[0] = XInternAtom(dpy, "WM_DELETE_WINDOW", True); + XSetWMProtocols(dpy, win, wmProtocols, 1); + XMapRaised(dpy, win); + XFlush(dpy); + s_window_handle = (void*)win; + + if (SConfig::GetInstance().bDisableScreenSaver) + X11Utils::InhibitScreensaver(dpy, win, true); #if defined(HAVE_XRANDR) && HAVE_XRANDR - XRRConfig = new X11Utils::XRRConfiguration(dpy, win); + XRRConfig = new X11Utils::XRRConfiguration(dpy, win); #endif - if (SConfig::GetInstance().bHideCursor) - { - // make a blank cursor - Pixmap Blank; - XColor DummyColor; - char ZeroData[1] = { 0 }; - Blank = XCreateBitmapFromData(dpy, win, ZeroData, 1, 1); - blankCursor = XCreatePixmapCursor(dpy, Blank, Blank, &DummyColor, &DummyColor, 0, 0); - XFreePixmap(dpy, Blank); - XDefineCursor(dpy, win, blankCursor); - } - } - - void SetTitle(const std::string &string) override - { - XStoreName(dpy, win, string.c_str()); - } - - void MainLoop() override - { - bool fullscreen = SConfig::GetInstance().bFullscreen; - - if (fullscreen) - { - rendererIsFullscreen = X11Utils::ToggleFullscreen(dpy, win); + if (SConfig::GetInstance().bHideCursor) + { + // make a blank cursor + Pixmap Blank; + XColor DummyColor; + char ZeroData[1] = {0}; + Blank = XCreateBitmapFromData(dpy, win, ZeroData, 1, 1); + blankCursor = XCreatePixmapCursor(dpy, Blank, Blank, &DummyColor, &DummyColor, 0, 0); + XFreePixmap(dpy, Blank); + XDefineCursor(dpy, win, blankCursor); + } + } + + void SetTitle(const std::string& string) override { XStoreName(dpy, win, string.c_str()); } + void MainLoop() override + { + bool fullscreen = SConfig::GetInstance().bFullscreen; + + if (fullscreen) + { + rendererIsFullscreen = X11Utils::ToggleFullscreen(dpy, win); #if defined(HAVE_XRANDR) && HAVE_XRANDR - XRRConfig->ToggleDisplayMode(True); + XRRConfig->ToggleDisplayMode(True); #endif - } - - // The actual loop - while (running) - { - XEvent event; - KeySym key; - for (int num_events = XPending(dpy); num_events > 0; num_events--) - { - XNextEvent(dpy, &event); - switch (event.type) - { - case KeyPress: - key = XLookupKeysym((XKeyEvent*)&event, 0); - if (key == XK_Escape) - { - if (Core::GetState() == Core::CORE_RUN) - { - if (SConfig::GetInstance().bHideCursor) - XUndefineCursor(dpy, win); - Core::SetState(Core::CORE_PAUSE); - } - else - { - if (SConfig::GetInstance().bHideCursor) - XDefineCursor(dpy, win, blankCursor); - Core::SetState(Core::CORE_RUN); - } - } - else if ((key == XK_Return) && (event.xkey.state & Mod1Mask)) - { - fullscreen = !fullscreen; - X11Utils::ToggleFullscreen(dpy, win); + } + + // The actual loop + while (running) + { + XEvent event; + KeySym key; + for (int num_events = XPending(dpy); num_events > 0; num_events--) + { + XNextEvent(dpy, &event); + switch (event.type) + { + case KeyPress: + key = XLookupKeysym((XKeyEvent*)&event, 0); + if (key == XK_Escape) + { + if (Core::GetState() == Core::CORE_RUN) + { + if (SConfig::GetInstance().bHideCursor) + XUndefineCursor(dpy, win); + Core::SetState(Core::CORE_PAUSE); + } + else + { + if (SConfig::GetInstance().bHideCursor) + XDefineCursor(dpy, win, blankCursor); + Core::SetState(Core::CORE_RUN); + } + } + else if ((key == XK_Return) && (event.xkey.state & Mod1Mask)) + { + fullscreen = !fullscreen; + X11Utils::ToggleFullscreen(dpy, win); #if defined(HAVE_XRANDR) && HAVE_XRANDR - XRRConfig->ToggleDisplayMode(fullscreen); + XRRConfig->ToggleDisplayMode(fullscreen); #endif - } - else if (key >= XK_F1 && key <= XK_F8) - { - int slot_number = key - XK_F1 + 1; - if (event.xkey.state & ShiftMask) - State::Save(slot_number); - else - State::Load(slot_number); - } - else if (key == XK_F9) - Core::SaveScreenShot(); - else if (key == XK_F11) - State::LoadLastSaved(); - else if (key == XK_F12) - { - if (event.xkey.state & ShiftMask) - State::UndoLoadState(); - else - State::UndoSaveState(); - } - break; - case FocusIn: - rendererHasFocus = true; - if (SConfig::GetInstance().bHideCursor && - Core::GetState() != Core::CORE_PAUSE) - XDefineCursor(dpy, win, blankCursor); - break; - case FocusOut: - rendererHasFocus = false; - if (SConfig::GetInstance().bHideCursor) - XUndefineCursor(dpy, win); - break; - case ClientMessage: - if ((unsigned long) event.xclient.data.l[0] == XInternAtom(dpy, "WM_DELETE_WINDOW", False)) - running = false; - break; - } - } - if (!fullscreen) - { - Window winDummy; - unsigned int borderDummy, depthDummy; - XGetGeometry(dpy, win, &winDummy, - &SConfig::GetInstance().iRenderWindowXPos, - &SConfig::GetInstance().iRenderWindowYPos, - (unsigned int *)&SConfig::GetInstance().iRenderWindowWidth, - (unsigned int *)&SConfig::GetInstance().iRenderWindowHeight, - &borderDummy, &depthDummy); - rendererIsFullscreen = false; - } - Core::HostDispatchJobs(); - usleep(100000); - } - } - - void Shutdown() override - { + } + else if (key >= XK_F1 && key <= XK_F8) + { + int slot_number = key - XK_F1 + 1; + if (event.xkey.state & ShiftMask) + State::Save(slot_number); + else + State::Load(slot_number); + } + else if (key == XK_F9) + Core::SaveScreenShot(); + else if (key == XK_F11) + State::LoadLastSaved(); + else if (key == XK_F12) + { + if (event.xkey.state & ShiftMask) + State::UndoLoadState(); + else + State::UndoSaveState(); + } + break; + case FocusIn: + rendererHasFocus = true; + if (SConfig::GetInstance().bHideCursor && Core::GetState() != Core::CORE_PAUSE) + XDefineCursor(dpy, win, blankCursor); + break; + case FocusOut: + rendererHasFocus = false; + if (SConfig::GetInstance().bHideCursor) + XUndefineCursor(dpy, win); + break; + case ClientMessage: + if ((unsigned long)event.xclient.data.l[0] == XInternAtom(dpy, "WM_DELETE_WINDOW", False)) + running = false; + break; + } + } + if (!fullscreen) + { + Window winDummy; + unsigned int borderDummy, depthDummy; + XGetGeometry(dpy, win, &winDummy, &SConfig::GetInstance().iRenderWindowXPos, + &SConfig::GetInstance().iRenderWindowYPos, + (unsigned int*)&SConfig::GetInstance().iRenderWindowWidth, + (unsigned int*)&SConfig::GetInstance().iRenderWindowHeight, &borderDummy, + &depthDummy); + rendererIsFullscreen = false; + } + Core::HostDispatchJobs(); + usleep(100000); + } + } + + void Shutdown() override + { #if defined(HAVE_XRANDR) && HAVE_XRANDR - delete XRRConfig; + delete XRRConfig; #endif - if (SConfig::GetInstance().bHideCursor) - XFreeCursor(dpy, blankCursor); + if (SConfig::GetInstance().bHideCursor) + XFreeCursor(dpy, blankCursor); - XCloseDisplay(dpy); - } + XCloseDisplay(dpy); + } }; #endif static Platform* GetPlatform() { #if defined(USE_EGL) && defined(USE_HEADLESS) - return new Platform(); + return new Platform(); #elif HAVE_X11 - return new PlatformX11(); + return new PlatformX11(); #endif - return nullptr; + return nullptr; } int main(int argc, char* argv[]) { - int ch, help = 0; - struct option longopts[] = { - { "exec", no_argument, nullptr, 'e' }, - { "help", no_argument, nullptr, 'h' }, - { "version", no_argument, nullptr, 'v' }, - { nullptr, 0, nullptr, 0 } - }; - - while ((ch = getopt_long(argc, argv, "eh?v", longopts, 0)) != -1) - { - switch (ch) - { - case 'e': - break; - case 'h': - case '?': - help = 1; - break; - case 'v': - fprintf(stderr, "%s\n", scm_rev_str.c_str()); - return 1; - } - } - - if (help == 1 || argc == optind) - { - fprintf(stderr, "%s\n\n", scm_rev_str.c_str()); - fprintf(stderr, "A multi-platform GameCube/Wii emulator\n\n"); - fprintf(stderr, "Usage: %s [-e <file>] [-h] [-v]\n", argv[0]); - fprintf(stderr, " -e, --exec Load the specified file\n"); - fprintf(stderr, " -h, --help Show this help message\n"); - fprintf(stderr, " -v, --version Print version and exit\n"); - return 1; - } - - platform = GetPlatform(); - if (!platform) - { - fprintf(stderr, "No platform found\n"); - return 1; - } - - UICommon::SetUserDirectory(""); // Auto-detect user folder - UICommon::Init(); - - platform->Init(); - - DolphinAnalytics::Instance()->ReportDolphinStart("nogui"); - - if (!BootManager::BootCore(argv[optind])) - { - fprintf(stderr, "Could not boot %s\n", argv[optind]); - return 1; - } - - while (!Core::IsRunning() && running) - { - Core::HostDispatchJobs(); - updateMainFrameEvent.Wait(); - } - - if (running) - platform->MainLoop(); - Core::Stop(); - - Core::Shutdown(); - platform->Shutdown(); - UICommon::Shutdown(); - - delete platform; - - return 0; + int ch, help = 0; + struct option longopts[] = {{"exec", no_argument, nullptr, 'e'}, + {"help", no_argument, nullptr, 'h'}, + {"version", no_argument, nullptr, 'v'}, + {nullptr, 0, nullptr, 0}}; + + while ((ch = getopt_long(argc, argv, "eh?v", longopts, 0)) != -1) + { + switch (ch) + { + case 'e': + break; + case 'h': + case '?': + help = 1; + break; + case 'v': + fprintf(stderr, "%s\n", scm_rev_str.c_str()); + return 1; + } + } + + if (help == 1 || argc == optind) + { + fprintf(stderr, "%s\n\n", scm_rev_str.c_str()); + fprintf(stderr, "A multi-platform GameCube/Wii emulator\n\n"); + fprintf(stderr, "Usage: %s [-e <file>] [-h] [-v]\n", argv[0]); + fprintf(stderr, " -e, --exec Load the specified file\n"); + fprintf(stderr, " -h, --help Show this help message\n"); + fprintf(stderr, " -v, --version Print version and exit\n"); + return 1; + } + + platform = GetPlatform(); + if (!platform) + { + fprintf(stderr, "No platform found\n"); + return 1; + } + + UICommon::SetUserDirectory(""); // Auto-detect user folder + UICommon::Init(); + + platform->Init(); + + DolphinAnalytics::Instance()->ReportDolphinStart("nogui"); + + if (!BootManager::BootCore(argv[optind])) + { + fprintf(stderr, "Could not boot %s\n", argv[optind]); + return 1; + } + + while (!Core::IsRunning() && running) + { + Core::HostDispatchJobs(); + updateMainFrameEvent.Wait(); + } + + if (running) + platform->MainLoop(); + Core::Stop(); + + Core::Shutdown(); + platform->Shutdown(); + UICommon::Shutdown(); + + delete platform; + + return 0; } |
