summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/MainNoGUI.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2016-06-24 10:43:46 +0200
committerPierre Bourdon <delroth@gmail.com>2016-06-24 10:43:46 +0200
commit3570c7f03a2aa90aa634f96c0af1969af610f14d (patch)
tree4252e03c0e853ba7cffe022937698c854ad0eaa9 /Source/Core/DolphinWX/MainNoGUI.cpp
parent2115e8a4a6814e32107b5205ff5c95bbd3c6e99c (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.cpp551
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;
}