Project64-input: If setup fails clear
This commit is contained in:
parent
be8af060e7
commit
6c6bdaef6a
|
@ -327,7 +327,8 @@ void CControllerSettings::EnablePage(bool Enable)
|
|||
|
||||
void CControllerSettings::RemoveMapping(const BUTTON & Button)
|
||||
{
|
||||
if (!m_Controller.RemoveDuplicate)
|
||||
BUTTON EmptyButton = { 0 };
|
||||
if (!m_Controller.RemoveDuplicate || memcmp(&Button, &EmptyButton, sizeof(Button)) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -341,7 +342,6 @@ void CControllerSettings::RemoveMapping(const BUTTON & Button)
|
|||
};
|
||||
|
||||
bool Changed = false;
|
||||
BUTTON EmptyButton = { 0 };
|
||||
for (size_t b = 0; b < (sizeof(buttons) / sizeof(buttons[0])); b++)
|
||||
{
|
||||
if (buttons[b]->Offset == Button.Offset &&
|
||||
|
|
|
@ -53,6 +53,7 @@ void CScanButton::OnTimer(UINT_PTR nIDEvent)
|
|||
{
|
||||
if (nIDEvent == DETECT_KEY_TIMER)
|
||||
{
|
||||
BUTTON EmptyButton = { 0 };
|
||||
bool Stop = false, ScanSuccess = false;
|
||||
if (g_InputPlugin)
|
||||
{
|
||||
|
@ -60,12 +61,22 @@ void CScanButton::OnTimer(UINT_PTR nIDEvent)
|
|||
CDirectInput::ScanResult Result = g_InputPlugin->ScanDevices(Button);
|
||||
if (Result == CDirectInput::SCAN_SUCCEED && (Button.Offset != m_Button.Offset || Button.AxisID != m_Button.AxisID || Button.BtnType != m_Button.BtnType))
|
||||
{
|
||||
m_ScanBtn.KillTimer(DETECT_KEY_TIMER);
|
||||
if (m_ChangeCallback != nullptr)
|
||||
{
|
||||
m_ChangeCallback(m_ChangeCallbackData, Button);
|
||||
}
|
||||
m_Button = Button;
|
||||
}
|
||||
if (Result == CDirectInput::SCAN_ESCAPE && (EmptyButton.Offset != m_Button.Offset || EmptyButton.AxisID != m_Button.AxisID || EmptyButton.BtnType != m_Button.BtnType))
|
||||
{
|
||||
m_ScanBtn.KillTimer(DETECT_KEY_TIMER);
|
||||
if (m_ChangeCallback != nullptr)
|
||||
{
|
||||
m_ChangeCallback(m_ChangeCallbackData, EmptyButton);
|
||||
}
|
||||
m_Button = EmptyButton;
|
||||
}
|
||||
if (Result == CDirectInput::SCAN_SUCCEED || Result == CDirectInput::SCAN_ESCAPE)
|
||||
{
|
||||
ScanSuccess = Result == CDirectInput::SCAN_SUCCEED;
|
||||
|
@ -83,6 +94,12 @@ void CScanButton::OnTimer(UINT_PTR nIDEvent)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (m_ChangeCallback != nullptr)
|
||||
{
|
||||
m_ChangeCallback(m_ChangeCallbackData, EmptyButton);
|
||||
}
|
||||
m_Button = EmptyButton;
|
||||
DisplayButton();
|
||||
Stop = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue