Permalink
Browse files

Merge pull request #7003 from lioncash/host

Common: Move host communication enum to Host.h
  • Loading branch information...
leoetlino committed May 28, 2018
2 parents a9f022a + 4288bfe commit f05eb10026fe12752617c7648389cac2cd721c25
@@ -87,13 +87,13 @@ void Host_RefreshDSPDebuggerWindow()
{
}
void Host_Message(int Id)
void Host_Message(HostMessageID id)
{
if (Id == WM_USER_JOB_DISPATCH)
if (id == HostMessageID::WMUserJobDispatch)
{
s_update_main_frame_event.Set();
}
else if (Id == WM_USER_STOP)
else if (id == HostMessageID::WMUserStop)
{
s_have_wm_user_stop = true;
if (Core::IsRunning())
@@ -57,13 +57,3 @@ struct CrtDebugBreak
// Dummy macro for marking translatable strings that can not be immediately translated.
// wxWidgets does not have a true dummy macro for this.
#define _trans(a) a
// Host communication.
enum HOST_COMM
{
// Begin at 10 in case there is already messages with wParam = 0, 1, 2 and so on
WM_USER_STOP = 10,
WM_USER_CREATE,
WM_USER_SETCURSOR,
WM_USER_JOB_DISPATCH,
};
@@ -291,7 +291,7 @@ static void CPUSetInitialExecutionState()
SetState(SConfig::GetInstance().bBootToPause ? State::Paused : State::Running);
Host_UpdateDisasmDialog();
Host_UpdateMainFrame();
Host_Message(WM_USER_CREATE);
Host_Message(HostMessageID::WMUserCreate);
});
}
@@ -924,7 +924,7 @@ void QueueHostJob(std::function<void()> job, bool run_during_stop)
}
// If the the queue was empty then kick the Host to come and get this job.
if (send_message)
Host_Message(WM_USER_JOB_DISPATCH);
Host_Message(HostMessageID::WMUserJobDispatch);
}
void HostDispatchJobs()
@@ -100,7 +100,7 @@ void UpdateWantDeterminism(bool initial = false);
void QueueHostJob(std::function<void()> job, bool run_during_stop = false);
// Should be called periodically by the Host to run pending jobs.
// WM_USER_JOB_DISPATCH will be sent when something is added to the queue.
// WMUserJobDispatch will be sent when something is added to the queue.
void HostDispatchJobs();
void DoFrameStep();
@@ -112,7 +112,7 @@ class FifoPlayer::CPUCore final : public CPUCoreBase
{
case CPU::State::PowerDown:
CPU::Break();
Host_Message(WM_USER_STOP);
Host_Message(HostMessageID::WMUserStop);
break;
case CPU::State::Stepping:
@@ -25,7 +25,7 @@ void HBReload()
{
// There isn't much we can do. Just stop cleanly.
CPU::Break();
Host_Message(WM_USER_STOP);
Host_Message(HostMessageID::WMUserStop);
}
void GeckoCodeHandlerICacheFlush()
@@ -8,25 +8,34 @@
// Host - defines an interface for the emulator core to communicate back to the
// OS-specific layer
//
// The emulator core is abstracted from the OS using 2 interfaces:
// Common and Host.
//
// Common simply provides OS-neutral implementations of things like threads, mutexes,
// INI file manipulation, memory mapping, etc.
//
// Host is an abstract interface for communicating things back to the host. The emulator
// core is treated as a library, not as a main program, because it is far easier to
// write GUI interfaces that control things than to squash GUI into some model that wasn't
// designed for it.
//
// The host can be just a command line app that opens a window, or a full blown debugger
// interface.
enum class HostMessageID
{
// Begin at 10 in case there is already messages with wParam = 0, 1, 2 and so on
WMUserStop = 10,
WMUserCreate,
WMUserSetCursor,
WMUserJobDispatch,
};
bool Host_UINeedsControllerState();
bool Host_RendererHasFocus();
bool Host_RendererIsFullscreen();
void Host_Message(int Id);
void Host_Message(HostMessageID id);
void Host_NotifyMapLoaded();
void Host_RefreshDSPDebuggerWindow();
void Host_RequestRenderWindowSize(int width, int height);
@@ -80,11 +80,11 @@ void Host_RefreshDSPDebuggerWindow()
}
static Common::Event updateMainFrameEvent;
void Host_Message(int Id)
void Host_Message(HostMessageID id)
{
if (Id == WM_USER_STOP)
if (id == HostMessageID::WMUserStop)
s_running.Clear();
if (Id == WM_USER_JOB_DISPATCH || Id == WM_USER_STOP)
if (id == HostMessageID::WMUserJobDispatch || id == HostMessageID::WMUserStop)
updateMainFrameEvent.Set();
}
@@ -75,13 +75,13 @@ void Host::ResizeSurface(int new_width, int new_height)
g_renderer->ResizeSurface(new_width, new_height);
}
void Host_Message(int id)
void Host_Message(HostMessageID id)
{
if (id == WM_USER_STOP)
if (id == HostMessageID::WMUserStop)
{
emit Host::GetInstance()->RequestStop();
}
else if (id == WM_USER_JOB_DISPATCH)
else if (id == HostMessageID::WMUserJobDispatch)
{
// Just poke the main thread to get it to wake up, job dispatch
// will happen automatically before it goes back to sleep again.
@@ -53,6 +53,7 @@
#include "Core/HW/GCPad.h"
#include "Core/HW/Wiimote.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "Core/Host.h"
#include "Core/HotkeyManager.h"
#include "Core/IOS/IOS.h"
#include "Core/IOS/USB/Bluetooth/BTBase.h"
@@ -186,11 +187,11 @@ WXLRESULT CRenderFrame::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lPa
case WM_USER:
switch (wParam)
{
case WM_USER_STOP:
case static_cast<int>(HostMessageID::WMUserStop):
main_frame->DoStop();
break;
case WM_USER_SETCURSOR:
case static_cast<int>(HostMessageID::WMUserSetCursor):
if (SConfig::GetInstance().bHideCursor && main_frame->RendererHasFocus() &&
Core::GetState() == Core::State::Running)
SetCursor(wxCURSOR_BLANK);
@@ -758,7 +759,7 @@ void CFrame::OnHostMessage(wxCommandEvent& event)
}
break;
case WM_USER_CREATE:
case static_cast<int>(HostMessageID::WMUserCreate):
if (SConfig::GetInstance().bHideCursor)
m_render_parent->SetCursor(wxCURSOR_BLANK);
if (SConfig::GetInstance().bFullscreen)
@@ -776,7 +777,7 @@ void CFrame::OnHostMessage(wxCommandEvent& event)
}
break;
case WM_USER_STOP:
case static_cast<int>(HostMessageID::WMUserStop):
DoStop();
break;
@@ -415,15 +415,15 @@ CFrame* DolphinApp::GetCFrame()
return main_frame;
}
void Host_Message(int Id)
void Host_Message(HostMessageID id)
{
if (Id == WM_USER_JOB_DISPATCH)
if (id == HostMessageID::WMUserJobDispatch)
{
// Trigger a wxEVT_IDLE
wxWakeUpIdle();
return;
}
wxCommandEvent event(wxEVT_HOST_COMMAND, Id);
wxCommandEvent event(wxEVT_HOST_COMMAND, static_cast<int>(id));
main_frame->GetEventHandler()->AddPendingEvent(event);
}
@@ -15,7 +15,7 @@ void Host_NotifyMapLoaded()
void Host_RefreshDSPDebuggerWindow()
{
}
void Host_Message(int)
void Host_Message(HostMessageID)
{
}
void* Host_GetRenderHandle()
@@ -17,7 +17,7 @@ void Host_NotifyMapLoaded()
void Host_RefreshDSPDebuggerWindow()
{
}
void Host_Message(int)
void Host_Message(HostMessageID)
{
}
void* Host_GetRenderHandle()

0 comments on commit f05eb10

Please sign in to comment.