mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 17:19:44 -06:00
Merge branch 'master' into FIFO-BP
# By Jordan Woyak (46) and others # Via Jordan Woyak (2) and others * master: (70 commits) Fixes two memory leaks, one is pretty bad for OSX. Yell at pauldachz if this doesn't work. Or... say thanks. Added a BluetoothEnumerateInstalledServices call so that the wiimote remembers the pairing. Make ARMJit core default CPU core on ARM architecture Fix a StringUtil regression from the arm-noglsl merge Small improvement to cmpli/cmpi in ARMJit. Merge latest ArmEmitter changes from ppsspp while we're at it. Ah. I blame vim on this typo entirely. Add disabled code for authenticating wiimotes on Windows. Add the missing FPR cache Buildfix. Yell at the user if they change window size while dumping frames, and some other avi dumping stuff. Not sure if this is the right way to handle this, but it makes the save states perfectly stable. That's all that really matters, right? Abort loading states from incompatible graphics backends. ARM Support without GLSL Improve VideoSoftware save states. They are fairly stable, but not perfect. OpcodeDecoder::DoState() needs to be fixed. Begin implementing save states to video software. Kind of works, sometimes. Make error message for loading save state with wrong dsp engine shorter. Abort load state if it uses a different dsp engine, instead of crashing. Update the gameini of F-zero. Efb to Ram is no longer the default choice. fix last commit by neobrain ... Conflicts: Source/Core/VideoCommon/Src/Fifo.cpp
This commit is contained in:
@ -620,6 +620,7 @@ void CConfigMain::CreateGUIControls()
|
||||
{
|
||||
SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name = theme_selection->GetStringSelection();
|
||||
main_frame->InitBitmaps();
|
||||
main_frame->UpdateGameList();
|
||||
}));
|
||||
|
||||
auto const scInterface = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "LogManager.h"
|
||||
#include "HW/CPU.h"
|
||||
#include "PowerPC/PowerPC.h"
|
||||
#include "PowerPC/JitInterface.h"
|
||||
#include "Debugger/PPCDebugInterface.h"
|
||||
#include "Debugger/Debugger_SymbolMap.h"
|
||||
#include "PowerPC/PPCAnalyst.h"
|
||||
@ -45,8 +46,6 @@
|
||||
#include "PowerPC/PPCSymbolDB.h"
|
||||
#include "PowerPC/SignatureDB.h"
|
||||
#include "PowerPC/PPCTables.h"
|
||||
#include "PowerPC/JitCommon/JitBase.h"
|
||||
#include "PowerPC/JitCommon/JitCache.h" // for ClearCache()
|
||||
|
||||
#include "ConfigManager.h"
|
||||
|
||||
@ -260,8 +259,7 @@ void CCodeWindow::SingleStep()
|
||||
{
|
||||
if (CCPU::IsStepping())
|
||||
{
|
||||
if (jit)
|
||||
jit->GetBlockCache()->InvalidateICache(PC, 4);
|
||||
JitInterface::InvalidateICache(PC, 4);
|
||||
CCPU::StepOpcode(&sync_event);
|
||||
wxThread::Sleep(20);
|
||||
// need a short wait here
|
||||
@ -492,10 +490,8 @@ void CCodeWindow::OnCPUMode(wxCommandEvent& event)
|
||||
}
|
||||
|
||||
// Clear the JIT cache to enable these changes
|
||||
if (jit)
|
||||
{
|
||||
jit->ClearCache();
|
||||
}
|
||||
JitInterface::ClearCache();
|
||||
|
||||
// Update
|
||||
UpdateButtonStates();
|
||||
}
|
||||
@ -509,7 +505,7 @@ void CCodeWindow::OnJitMenu(wxCommandEvent& event)
|
||||
break;
|
||||
|
||||
case IDM_CLEARCODECACHE:
|
||||
jit->ClearCache();
|
||||
JitInterface::ClearCache();
|
||||
break;
|
||||
|
||||
case IDM_SEARCHINSTRUCTION:
|
||||
|
@ -100,37 +100,6 @@ CPanel::CPanel(
|
||||
else
|
||||
SetCursor(wxNullCursor);
|
||||
break;
|
||||
|
||||
case WIIMOTE_DISCONNECT:
|
||||
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bWii)
|
||||
{
|
||||
const int wiimote_idx = lParam;
|
||||
const int wiimote_num = wiimote_idx + 1;
|
||||
|
||||
//Auto reconnect if option is turned on.
|
||||
//TODO: Make this only auto reconnect wiimotes that have the option activated.
|
||||
SConfig::GetInstance().LoadSettingsWii();//Make sure we are using the newest settings.
|
||||
if (SConfig::GetInstance().m_WiiAutoReconnect[wiimote_idx])
|
||||
{
|
||||
GetUsbPointer()->AccessWiiMote(wiimote_idx | 0x100)->Activate(true);
|
||||
NOTICE_LOG(WIIMOTE, "Wiimote %i has been auto-reconnected...", wiimote_num);
|
||||
}
|
||||
else
|
||||
{
|
||||
// The Wiimote has been disconnected, we offer reconnect here.
|
||||
wxMessageDialog *dlg = new wxMessageDialog(
|
||||
this,
|
||||
wxString::Format(_("Wiimote %i has been disconnected by system.\nMaybe this game doesn't support multi-wiimote,\nor maybe it is due to idle time out or other reason.\nDo you want to reconnect immediately?"), wiimote_num),
|
||||
_("Reconnect Wiimote Confirm"),
|
||||
wxYES_NO | wxSTAY_ON_TOP | wxICON_INFORMATION, //wxICON_QUESTION,
|
||||
wxDefaultPosition);
|
||||
|
||||
if (dlg->ShowModal() == wxID_YES)
|
||||
GetUsbPointer()->AccessWiiMote(wiimote_idx | 0x100)->Activate(true);
|
||||
|
||||
dlg->Destroy();
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -735,7 +704,7 @@ bool IsHotkey(wxKeyEvent &event, int Id)
|
||||
{
|
||||
return (event.GetKeyCode() != WXK_NONE &&
|
||||
event.GetKeyCode() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkey[Id] &&
|
||||
event.GetModifiers() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[Id]);
|
||||
event.GetModifiers() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[Id]);
|
||||
}
|
||||
|
||||
int GetCmdForHotkey(unsigned int key)
|
||||
|
@ -1355,10 +1355,6 @@ void CFrame::ConnectWiimote(int wm_idx, bool connect)
|
||||
wxString msg(wxString::Format(wxT("Wiimote %i %s"), wm_idx + 1,
|
||||
connect ? wxT("Connected") : wxT("Disconnected")));
|
||||
Core::DisplayMessage(msg.ToAscii(), 3000);
|
||||
|
||||
// Wait for the wiimote to connect
|
||||
while (GetUsbPointer()->AccessWiiMote(wm_idx | 0x100)->IsConnected() != connect)
|
||||
{}
|
||||
Host_UpdateMainFrame();
|
||||
}
|
||||
}
|
||||
|
@ -18,9 +18,11 @@
|
||||
#define _GLINTERFACE_H_
|
||||
|
||||
#include "Thread.h"
|
||||
|
||||
#if defined(USE_EGL) && USE_EGL
|
||||
#include "GLInterface/EGL.h"
|
||||
#ifdef ANDROID
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLInterface/InterfaceBase.h>
|
||||
#elif defined(USE_EGL) && USE_EGL
|
||||
#include "GLInterface/EGL_X11.h"
|
||||
#elif defined(USE_WX) && USE_WX
|
||||
#include "GLInterface/WX.h"
|
||||
#elif defined(__APPLE__)
|
||||
@ -29,10 +31,13 @@
|
||||
#include "GLInterface/WGL.h"
|
||||
#elif defined(HAVE_X11) && HAVE_X11
|
||||
#include "GLInterface/GLX.h"
|
||||
#else
|
||||
#error Platform doesnt have a GLInterface
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
#if defined(USE_EGL) && USE_EGL // This is currently a X11/EGL implementation for desktop
|
||||
#ifdef ANDROID
|
||||
#elif defined(USE_EGL) && USE_EGL // This is currently a X11/EGL implementation for desktop
|
||||
int screen;
|
||||
Display *dpy;
|
||||
Display *evdpy;
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "RenderBase.h"
|
||||
|
||||
#include "../GLInterface.h"
|
||||
#include "EGL.h"
|
||||
#include "EGL_X11.h"
|
||||
|
||||
// Show the current FPS
|
||||
void cInterfaceEGL::UpdateFPSDisplay(const char *text)
|
@ -23,11 +23,11 @@ protected:
|
||||
u32 s_backbuffer_width;
|
||||
u32 s_backbuffer_height;
|
||||
public:
|
||||
virtual void Swap() = 0;
|
||||
virtual void UpdateFPSDisplay(const char *Text) = 0;
|
||||
virtual bool Create(void *&window_handle) = 0;
|
||||
virtual bool MakeCurrent() = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual void Swap() {}
|
||||
virtual void UpdateFPSDisplay(const char *Text) {}
|
||||
virtual bool Create(void *&window_handle) { return true; }
|
||||
virtual bool MakeCurrent() { return true; }
|
||||
virtual void Shutdown() {}
|
||||
|
||||
virtual void SwapInterval(int Interval) { }
|
||||
virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "FileSearch.h"
|
||||
#include "CompressedBlob.h"
|
||||
#include "ChunkFile.h"
|
||||
#include "../resources/no_banner.cpp"
|
||||
#include "ConfigManager.h"
|
||||
|
||||
#define CACHE_REVISION 0x10F
|
||||
|
||||
@ -174,10 +174,16 @@ GameListItem::GameListItem(const std::string& _rFileName)
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string theme = SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/";
|
||||
std::string dir = File::GetUserPath(D_THEMES_IDX) + theme;
|
||||
|
||||
#if !defined(_WIN32)
|
||||
// If theme does not exist in user's dir load from shared directory
|
||||
if (!File::Exists(dir))
|
||||
dir = SHARED_USER_DIR THEMES_DIR "/" + theme;
|
||||
#endif
|
||||
// default banner
|
||||
wxMemoryInputStream istream(no_banner_png, sizeof no_banner_png);
|
||||
wxImage iNoBanner(istream, wxBITMAP_TYPE_PNG);
|
||||
m_Image = iNoBanner;
|
||||
m_Image = wxImage(dir + "nobanner.png", wxBITMAP_TYPE_PNG);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -390,10 +390,6 @@ void DolphinApp::InitLanguageSupport()
|
||||
int DolphinApp::OnExit()
|
||||
{
|
||||
WiimoteReal::Shutdown();
|
||||
#ifdef _WIN32
|
||||
if (SConfig::GetInstance().m_WiiAutoUnpair)
|
||||
WiimoteReal::UnPair();
|
||||
#endif
|
||||
VideoBackend::ClearList();
|
||||
SConfig::Shutdown();
|
||||
LogManager::Shutdown();
|
||||
|
149
Source/Core/DolphinWX/Src/MainAndroid.cpp
Normal file
149
Source/Core/DolphinWX/Src/MainAndroid.cpp
Normal file
@ -0,0 +1,149 @@
|
||||
// Copyright (C) 2003 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "Common.h"
|
||||
#include "FileUtil.h"
|
||||
|
||||
#include "Core.h"
|
||||
#include "Host.h"
|
||||
#include "CPUDetect.h"
|
||||
#include "Thread.h"
|
||||
|
||||
#include "PowerPC/PowerPC.h"
|
||||
#include "HW/Wiimote.h"
|
||||
|
||||
#include "VideoBackendBase.h"
|
||||
#include "ConfigManager.h"
|
||||
#include "LogManager.h"
|
||||
#include "BootManager.h"
|
||||
|
||||
#include <jni.h>
|
||||
#include <android/log.h>
|
||||
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "Dolphinemu", __VA_ARGS__))
|
||||
|
||||
bool rendererHasFocus = true;
|
||||
bool running = true;
|
||||
|
||||
void Host_NotifyMapLoaded() {}
|
||||
void Host_RefreshDSPDebuggerWindow() {}
|
||||
|
||||
void Host_ShowJitResults(unsigned int address){}
|
||||
|
||||
Common::Event updateMainFrameEvent;
|
||||
void Host_Message(int Id)
|
||||
{
|
||||
}
|
||||
|
||||
void* Host_GetRenderHandle()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* Host_GetInstance() { return NULL; }
|
||||
|
||||
void Host_UpdateTitle(const char* title){};
|
||||
|
||||
void Host_UpdateLogDisplay(){}
|
||||
|
||||
void Host_UpdateDisasmDialog(){}
|
||||
|
||||
void Host_UpdateMainFrame()
|
||||
{
|
||||
}
|
||||
|
||||
void Host_UpdateBreakPointView(){}
|
||||
|
||||
bool Host_GetKeyState(int keycode)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void Host_GetRenderWindowSize(int& x, int& y, int& width, int& height)
|
||||
{
|
||||
x = SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowXPos;
|
||||
y = SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowYPos;
|
||||
width = SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth;
|
||||
height = SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight;
|
||||
}
|
||||
|
||||
void Host_RequestRenderWindowSize(int width, int height) {}
|
||||
void Host_SetStartupDebuggingParameters()
|
||||
{
|
||||
}
|
||||
|
||||
bool Host_RendererHasFocus()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void Host_ConnectWiimote(int wm_idx, bool connect) {}
|
||||
|
||||
void Host_SetWaitCursor(bool enable){}
|
||||
|
||||
void Host_UpdateStatusBar(const char* _pText, int Filed){}
|
||||
|
||||
void Host_SysMessage(const char *fmt, ...)
|
||||
{
|
||||
va_list list;
|
||||
char msg[512];
|
||||
|
||||
va_start(list, fmt);
|
||||
vsprintf(msg, fmt, list);
|
||||
va_end(list);
|
||||
|
||||
size_t len = strlen(msg);
|
||||
if (msg[len - 1] != '\n') {
|
||||
msg[len - 1] = '\n';
|
||||
msg[len] = '\0';
|
||||
}
|
||||
LOGI(msg);
|
||||
}
|
||||
|
||||
void Host_SetWiiMoteConnectionState(int _State) {}
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_dolphinemuactivity_main(JNIEnv *env, jobject obj)
|
||||
{
|
||||
LogManager::Init();
|
||||
SConfig::Init();
|
||||
VideoBackend::PopulateList();
|
||||
VideoBackend::ActivateBackend(SConfig::GetInstance().
|
||||
m_LocalCoreStartupParameter.m_strVideoBackend);
|
||||
WiimoteReal::LoadSettings();
|
||||
|
||||
// No use running the loop when booting fails
|
||||
if (BootManager::BootCore(""))
|
||||
{
|
||||
while (PowerPC::GetState() != PowerPC::CPU_POWERDOWN)
|
||||
updateMainFrameEvent.Wait();
|
||||
}
|
||||
|
||||
WiimoteReal::Shutdown();
|
||||
VideoBackend::ClearList();
|
||||
SConfig::Shutdown();
|
||||
LogManager::Shutdown();
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -4,13 +4,6 @@
|
||||
#include "HW/WiimoteReal/WiimoteReal.h"
|
||||
#include "Frame.h"
|
||||
|
||||
const wxString& ConnectedWiimotesString()
|
||||
{
|
||||
static wxString str;
|
||||
str.Printf(_("%i connected"), WiimoteReal::Initialize());
|
||||
return str;
|
||||
}
|
||||
|
||||
WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin)
|
||||
: wxDialog(parent, -1, _("Dolphin Wiimote Configuration"), wxDefaultPosition, wxDefaultSize)
|
||||
, m_plugin(plugin)
|
||||
@ -64,27 +57,31 @@ WiimoteConfigDiag::WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin
|
||||
|
||||
|
||||
// "Real wiimotes" controls
|
||||
connected_wiimotes_txt = new wxStaticText(this, -1, ConnectedWiimotesString());
|
||||
|
||||
wxButton* const refresh_btn = new wxButton(this, -1, _("Refresh"), wxDefaultPosition);
|
||||
refresh_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::RefreshRealWiimotes, this);
|
||||
|
||||
#ifdef _WIN32
|
||||
wxButton* const pairup_btn = new wxButton(this, -1, _("Pair Up"), wxDefaultPosition);
|
||||
pairup_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &WiimoteConfigDiag::PairUpRealWiimotes, this);
|
||||
#endif
|
||||
wxStaticBoxSizer* const real_wiimotes_group = new wxStaticBoxSizer(wxVERTICAL, this, _("Real Wiimotes"));
|
||||
|
||||
wxBoxSizer* const real_wiimotes_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
if (!WiimoteReal::g_wiimote_scanner.IsReady())
|
||||
real_wiimotes_group->Add(new wxStaticText(this, -1, _("A supported bluetooth device could not be found.\n"
|
||||
"You must manually connect your wiimotes.")), 0, wxALIGN_CENTER | wxALL, 5);
|
||||
|
||||
wxCheckBox* const continuous_scanning = new wxCheckBox(this, wxID_ANY, _("Continuous Scanning"));
|
||||
continuous_scanning->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &WiimoteConfigDiag::OnContinuousScanning, this);
|
||||
continuous_scanning->SetValue(SConfig::GetInstance().m_WiimoteContinuousScanning);
|
||||
|
||||
auto wiimote_speaker = new wxCheckBox(this, wxID_ANY, _("Enable Speaker Data"));
|
||||
wiimote_speaker->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &WiimoteConfigDiag::OnEnableSpeaker, this);
|
||||
wiimote_speaker->SetValue(SConfig::GetInstance().m_WiimoteEnableSpeaker);
|
||||
|
||||
real_wiimotes_sizer->Add(continuous_scanning, 0, wxALIGN_CENTER_VERTICAL);
|
||||
real_wiimotes_sizer->AddStretchSpacer(1);
|
||||
real_wiimotes_sizer->Add(refresh_btn, 0, wxALL | wxALIGN_CENTER, 5);
|
||||
|
||||
// "Real wiimotes" layout
|
||||
wxStaticBoxSizer* const real_wiimotes_group = new wxStaticBoxSizer(wxHORIZONTAL, this, _("Real Wiimotes"));
|
||||
wxFlexGridSizer* const real_wiimotes_sizer = new wxFlexGridSizer(3, 5, 5);
|
||||
real_wiimotes_sizer->Add(connected_wiimotes_txt, 0, wxALIGN_CENTER_VERTICAL);
|
||||
#ifdef _WIN32
|
||||
real_wiimotes_sizer->Add(pairup_btn);
|
||||
#endif
|
||||
real_wiimotes_sizer->Add(refresh_btn);
|
||||
real_wiimotes_group->Add(real_wiimotes_sizer, 1, wxALL, 5);
|
||||
|
||||
real_wiimotes_group->Add(wiimote_speaker, 0);
|
||||
real_wiimotes_group->Add(real_wiimotes_sizer, 0, wxEXPAND);
|
||||
|
||||
// "General Settings" controls
|
||||
const wxString str[] = { _("Bottom"), _("Top") };
|
||||
@ -188,33 +185,9 @@ void WiimoteConfigDiag::ConfigEmulatedWiimote(wxCommandEvent& ev)
|
||||
m_emu_config_diag->Destroy();
|
||||
}
|
||||
|
||||
void WiimoteConfigDiag::UpdateGUI()
|
||||
{
|
||||
connected_wiimotes_txt->SetLabel(ConnectedWiimotesString());
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
void WiimoteConfigDiag::PairUpRealWiimotes(wxCommandEvent&)
|
||||
{
|
||||
const int paired = WiimoteReal::PairUp();
|
||||
|
||||
if (paired > 0)
|
||||
{
|
||||
// TODO: Maybe add a label of newly paired up wiimotes?
|
||||
WiimoteReal::Refresh();
|
||||
UpdateGUI();
|
||||
}
|
||||
else if (paired < 0)
|
||||
PanicAlertT("A supported bluetooth device could not be found!\n"
|
||||
"If you are not using Microsoft's bluetooth stack "
|
||||
"you must manually pair your wiimotes and use only the \"Refresh\" button.");
|
||||
}
|
||||
#endif
|
||||
|
||||
void WiimoteConfigDiag::RefreshRealWiimotes(wxCommandEvent&)
|
||||
{
|
||||
WiimoteReal::Refresh();
|
||||
UpdateGUI();
|
||||
}
|
||||
|
||||
void WiimoteConfigDiag::SelectSource(wxCommandEvent& event)
|
||||
@ -222,30 +195,15 @@ void WiimoteConfigDiag::SelectSource(wxCommandEvent& event)
|
||||
// This needs to be changed now in order for refresh to work right.
|
||||
// Revert if the dialog is canceled.
|
||||
int index = m_wiimote_index_from_ctrl_id[event.GetId()];
|
||||
g_wiimote_sources[index] = event.GetInt();
|
||||
|
||||
WiimoteReal::ChangeWiimoteSource(index, event.GetInt());
|
||||
|
||||
if (g_wiimote_sources[index] != WIIMOTE_SRC_EMU && g_wiimote_sources[index] != WIIMOTE_SRC_HYBRID)
|
||||
wiimote_configure_bt[index]->Disable();
|
||||
else
|
||||
wiimote_configure_bt[index]->Enable();
|
||||
}
|
||||
|
||||
void WiimoteConfigDiag::UpdateWiimoteStatus()
|
||||
{
|
||||
for (int index = 0; index < 4; ++index)
|
||||
{
|
||||
if (m_orig_wiimote_sources[index] != g_wiimote_sources[index])
|
||||
{
|
||||
// Disconnect first, otherwise the new source doesn't seem to work
|
||||
CFrame::ConnectWiimote(index, false);
|
||||
// Connect wiimotes
|
||||
if (WIIMOTE_SRC_EMU & g_wiimote_sources[index])
|
||||
CFrame::ConnectWiimote(index, true);
|
||||
else if (WIIMOTE_SRC_REAL & g_wiimote_sources[index] && WiimoteReal::g_wiimotes[index])
|
||||
CFrame::ConnectWiimote(index, WiimoteReal::g_wiimotes[index]->IsConnected());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WiimoteConfigDiag::RevertSource()
|
||||
{
|
||||
for (int i = 0; i < 4; ++i)
|
||||
@ -267,7 +225,6 @@ void WiimoteConfigDiag::Save(wxCommandEvent& event)
|
||||
|
||||
sec.Set("Source", (int)g_wiimote_sources[i]);
|
||||
}
|
||||
UpdateWiimoteStatus();
|
||||
|
||||
inifile.Save(ini_filename);
|
||||
|
||||
|
@ -24,20 +24,13 @@ class WiimoteConfigDiag : public wxDialog
|
||||
public:
|
||||
WiimoteConfigDiag(wxWindow* const parent, InputPlugin& plugin);
|
||||
|
||||
#ifdef _WIN32
|
||||
void PairUpRealWiimotes(wxCommandEvent& event);
|
||||
#endif
|
||||
void RefreshRealWiimotes(wxCommandEvent& event);
|
||||
|
||||
|
||||
void SelectSource(wxCommandEvent& event);
|
||||
void UpdateWiimoteStatus();
|
||||
void RevertSource();
|
||||
|
||||
|
||||
void ConfigEmulatedWiimote(wxCommandEvent& event);
|
||||
void Save(wxCommandEvent& event);
|
||||
void UpdateGUI();
|
||||
|
||||
void OnSensorBarPos(wxCommandEvent& event)
|
||||
{
|
||||
@ -64,6 +57,17 @@ public:
|
||||
SConfig::GetInstance().m_WiimoteReconnectOnLoad = event.IsChecked();
|
||||
event.Skip();
|
||||
}
|
||||
void OnContinuousScanning(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_WiimoteContinuousScanning = event.IsChecked();
|
||||
WiimoteReal::Initialize();
|
||||
event.Skip();
|
||||
}
|
||||
void OnEnableSpeaker(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_WiimoteEnableSpeaker = event.IsChecked();
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
private:
|
||||
void Cancel(wxCommandEvent& event);
|
||||
@ -76,8 +80,6 @@ private:
|
||||
|
||||
wxButton* wiimote_configure_bt[4];
|
||||
std::map<wxWindowID, unsigned int> m_wiimote_index_from_conf_bt_id;
|
||||
|
||||
wxStaticText* connected_wiimotes_txt;
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user