aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp9
-rw-r--r--xbmc/platform/android/peripherals/PeripheralBusAndroid.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
index f8282eeb55..a785c9043b 100644
--- a/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
+++ b/xbmc/platform/android/peripherals/PeripheralBusAndroid.cpp
@@ -112,6 +112,8 @@ bool CPeripheralBusAndroid::InitializeProperties(CPeripheral& peripheral)
joystick.SetButtonCount(state.GetButtonCount());
joystick.SetAxisCount(state.GetAxisCount());
+ std::unique_lock<CCriticalSection> lock(m_critSectionStates);
+
// remember the joystick state
m_joystickStates.insert(std::make_pair(deviceId, std::move(state)));
@@ -134,6 +136,8 @@ bool CPeripheralBusAndroid::InitializeButtonMap(const CPeripheral& peripheral,
return false;
}
+ std::unique_lock<CCriticalSection> lock(m_critSectionStates);
+
// get the joystick state
auto it = m_joystickStates.find(deviceId);
if (it == m_joystickStates.end())
@@ -325,7 +329,10 @@ void CPeripheralBusAndroid::OnInputDeviceRemoved(int deviceId)
if (removed)
{
- m_joystickStates.erase(deviceId);
+ {
+ std::unique_lock<CCriticalSection> lock(m_critSectionStates);
+ m_joystickStates.erase(deviceId);
+ }
OnDeviceRemoved(deviceLocation);
}
diff --git a/xbmc/platform/android/peripherals/PeripheralBusAndroid.h b/xbmc/platform/android/peripherals/PeripheralBusAndroid.h
index 5ee9480970..59bc261e54 100644
--- a/xbmc/platform/android/peripherals/PeripheralBusAndroid.h
+++ b/xbmc/platform/android/peripherals/PeripheralBusAndroid.h
@@ -66,7 +66,7 @@ private:
mutable std::map<int, CAndroidJoystickState> m_joystickStates;
PeripheralScanResults m_scanResults;
- CCriticalSection m_critSectionStates;
+ mutable CCriticalSection m_critSectionStates;
CCriticalSection m_critSectionResults;
};
using PeripheralBusAndroidPtr = std::shared_ptr<CPeripheralBusAndroid>;