Adds Support for multiple GameCube Controllers
Conflicts: Source/Core/DolphinWX/Src/Frame.cpp
This commit is contained in:
parent
8a4b6f3d73
commit
59d6df7046
|
@ -328,6 +328,10 @@ CFrame::CFrame(wxFrame* parent,
|
||||||
m_LogWindow->Disable();
|
m_LogWindow->Disable();
|
||||||
|
|
||||||
g_TASInputDlg = new TASInputDlg(this);
|
g_TASInputDlg = new TASInputDlg(this);
|
||||||
|
g_TASInputDlg1 = new TASInputDlg(this);
|
||||||
|
g_TASInputDlg2 = new TASInputDlg(this);
|
||||||
|
g_TASInputDlg3 = new TASInputDlg(this);
|
||||||
|
|
||||||
Movie::SetInputManip(TASManipFunction);
|
Movie::SetInputManip(TASManipFunction);
|
||||||
|
|
||||||
State::SetOnAfterLoadCallback(OnAfterLoadCallback);
|
State::SetOnAfterLoadCallback(OnAfterLoadCallback);
|
||||||
|
@ -793,14 +797,41 @@ void OnAfterLoadCallback()
|
||||||
|
|
||||||
void TASManipFunction(SPADStatus *PadStatus, int controllerID)
|
void TASManipFunction(SPADStatus *PadStatus, int controllerID)
|
||||||
{
|
{
|
||||||
if (main_frame)
|
if (main_frame && controllerID == 0)
|
||||||
main_frame->g_TASInputDlg->GetValues(PadStatus, controllerID);
|
main_frame->g_TASInputDlg->GetValues(PadStatus, controllerID);
|
||||||
|
|
||||||
|
if (main_frame && controllerID == 1)
|
||||||
|
main_frame->g_TASInputDlg1->GetValues(PadStatus, controllerID);
|
||||||
|
|
||||||
|
if (main_frame && controllerID == 2)
|
||||||
|
main_frame->g_TASInputDlg2->GetValues(PadStatus, controllerID);
|
||||||
|
|
||||||
|
if (main_frame && controllerID == 3)
|
||||||
|
main_frame->g_TASInputDlg3->GetValues(PadStatus, controllerID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TASInputHasFocus()
|
||||||
|
{
|
||||||
|
if(main_frame->g_TASInputDlg->HasFocus())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(main_frame->g_TASInputDlg1->HasFocus())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(main_frame->g_TASInputDlg2->HasFocus())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if(main_frame->g_TASInputDlg3->HasFocus())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CFrame::OnKeyDown(wxKeyEvent& event)
|
void CFrame::OnKeyDown(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
if(Core::GetState() != Core::CORE_UNINITIALIZED &&
|
if(Core::GetState() != Core::CORE_UNINITIALIZED &&
|
||||||
(RendererHasFocus() || g_TASInputDlg->HasFocus()))
|
(RendererHasFocus() || TASInputHasFocus()))
|
||||||
{
|
{
|
||||||
int WiimoteId = -1;
|
int WiimoteId = -1;
|
||||||
// Toggle fullscreen
|
// Toggle fullscreen
|
||||||
|
@ -834,7 +865,7 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned int i = NUM_HOTKEYS;
|
unsigned int i = NUM_HOTKEYS;
|
||||||
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain || g_TASInputDlg->HasFocus())
|
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain || TASInputHasFocus())
|
||||||
{
|
{
|
||||||
for (i = 0; i < NUM_HOTKEYS; i++)
|
for (i = 0; i < NUM_HOTKEYS; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -111,7 +111,10 @@ public:
|
||||||
NetPlaySetupDiag* g_NetPlaySetupDiag;
|
NetPlaySetupDiag* g_NetPlaySetupDiag;
|
||||||
wxCheatsWindow* g_CheatsWindow;
|
wxCheatsWindow* g_CheatsWindow;
|
||||||
TASInputDlg* g_TASInputDlg;
|
TASInputDlg* g_TASInputDlg;
|
||||||
|
TASInputDlg* g_TASInputDlg1;
|
||||||
|
TASInputDlg* g_TASInputDlg2;
|
||||||
|
TASInputDlg* g_TASInputDlg3;
|
||||||
|
|
||||||
void InitBitmaps();
|
void InitBitmaps();
|
||||||
void DoPause();
|
void DoPause();
|
||||||
void DoStop();
|
void DoStop();
|
||||||
|
@ -349,6 +352,7 @@ void OnAfterLoadCallback();
|
||||||
|
|
||||||
// For TASInputDlg
|
// For TASInputDlg
|
||||||
void TASManipFunction(SPADStatus *PadStatus, int controllerID);
|
void TASManipFunction(SPADStatus *PadStatus, int controllerID);
|
||||||
|
bool TASInputHasFocus();
|
||||||
|
|
||||||
#endif // __FRAME_H_
|
#endif // __FRAME_H_
|
||||||
|
|
||||||
|
|
|
@ -647,7 +647,29 @@ void CFrame::OnRecordReadOnly(wxCommandEvent& event)
|
||||||
|
|
||||||
void CFrame::OnTASInput(wxCommandEvent& event)
|
void CFrame::OnTASInput(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
g_TASInputDlg->Show(true);
|
if(SConfig::GetInstance().m_SIDevice[0] == SIDEVICE_GC_CONTROLLER)
|
||||||
|
{
|
||||||
|
g_TASInputDlg->Show(true);
|
||||||
|
g_TASInputDlg->SetTitle("TAS Input - Controller 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SConfig::GetInstance().m_SIDevice[1] == SIDEVICE_GC_CONTROLLER)
|
||||||
|
{
|
||||||
|
g_TASInputDlg1->Show(true);
|
||||||
|
g_TASInputDlg1->SetTitle("TAS Input - Controller 2");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SConfig::GetInstance().m_SIDevice[2] == SIDEVICE_GC_CONTROLLER)
|
||||||
|
{
|
||||||
|
g_TASInputDlg2->Show(true);
|
||||||
|
g_TASInputDlg2->SetTitle("TAS Input - Controller 3");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(SConfig::GetInstance().m_SIDevice[3] == SIDEVICE_GC_CONTROLLER)
|
||||||
|
{
|
||||||
|
g_TASInputDlg3->Show(true);
|
||||||
|
g_TASInputDlg3->SetTitle("TAS Input - Controller 4");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFrame::OnTogglePauseMovie(wxCommandEvent& WXUNUSED (event))
|
void CFrame::OnTogglePauseMovie(wxCommandEvent& WXUNUSED (event))
|
||||||
|
|
|
@ -460,8 +460,8 @@ void TASInputDlg::GetValues(SPADStatus *PadStatus, int controllerID)
|
||||||
SetLandRTriggers();
|
SetLandRTriggers();
|
||||||
|
|
||||||
// TODO: implement support for more controllers
|
// TODO: implement support for more controllers
|
||||||
if (controllerID != 0)
|
//if (controllerID != 0)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
PadStatus->stickX = mainX;
|
PadStatus->stickX = mainX;
|
||||||
PadStatus->stickY = mainY;
|
PadStatus->stickY = mainY;
|
||||||
|
|
Loading…
Reference in New Issue