Removing wait for real Wiimote connection

when

* opening the Wiimote configuration dialog
* booting from the emulated program entry point rather than a state

because

* it doesn't have meaning in these scenarios
* it has meaning when booting from a state
This commit is contained in:
John Peterson 2013-07-11 08:17:00 +02:00 committed by Rachel Bryk
parent e36757bec1
commit fd4a4410e5
4 changed files with 17 additions and 14 deletions

View File

@ -391,7 +391,7 @@ void EmuThread()
// Load and Init Wiimotes - only if we are booting in wii mode
if (g_CoreStartupParameter.bWii)
{
Wiimote::Initialize(g_pWindowHandle);
Wiimote::Initialize(g_pWindowHandle, !g_stateFileName.empty());
// Activate wiimotes which don't have source set to "None"
for (unsigned int i = 0; i != MAX_BBMOTES; ++i)

View File

@ -38,7 +38,7 @@ void Shutdown()
}
// if plugin isn't initialized, init and load config
void Initialize(void* const hwnd)
void Initialize(void* const hwnd, bool wait)
{
// add 4 wiimotes
for (unsigned int i = WIIMOTE_CHAN_0; i<MAX_BBMOTES; ++i)
@ -50,7 +50,7 @@ void Initialize(void* const hwnd)
g_plugin.LoadConfig(false);
WiimoteReal::Initialize();
WiimoteReal::Initialize(wait);
// reload Wiimotes with our settings
if (Movie::IsPlayingInput() || Movie::IsRecordingInput())

View File

@ -35,7 +35,7 @@ namespace Wiimote
{
void Shutdown();
void Initialize(void* const hwnd);
void Initialize(void* const hwnd, bool wait = false);
void Resume();
void Pause();
@ -53,7 +53,7 @@ void Update(int _number);
namespace WiimoteReal
{
void Initialize();
void Initialize(bool wait = false);
void Shutdown();
void Resume();
void Pause();

View File

@ -538,7 +538,7 @@ void LoadSettings()
}
// config dialog calls this when some settings change
void Initialize()
void Initialize(bool wait)
{
if (SConfig::GetInstance().m_WiimoteContinuousScanning)
g_wiimote_scanner.StartScanning();
@ -551,16 +551,19 @@ void Initialize()
g_wiimote_scanner.WantBB(0 != CalculateWantedBB());
// wait for connection because it should exist before state load
int timeout = 100;
std::vector<Wiimote*> found_wiimotes;
Wiimote* found_board = NULL;
g_wiimote_scanner.FindWiimotes(found_wiimotes, found_board);
if (SConfig::GetInstance().m_WiimoteContinuousScanning)
if (wait)
{
while(CalculateWantedWiimotes() && CalculateConnectedWiimotes() < found_wiimotes.size() && timeout)
int timeout = 100;
std::vector<Wiimote*> found_wiimotes;
Wiimote* found_board = NULL;
g_wiimote_scanner.FindWiimotes(found_wiimotes, found_board);
if (SConfig::GetInstance().m_WiimoteContinuousScanning)
{
Common::SleepCurrentThread(100);
timeout--;
while(CalculateWantedWiimotes() && CalculateConnectedWiimotes() < found_wiimotes.size() && timeout)
{
Common::SleepCurrentThread(100);
timeout--;
}
}
}