diff options
author | Martin Ellis <malard@gmail.com> | 2011-06-12 14:33:57 +0100 |
---|---|---|
committer | Martin Ellis <malard@gmail.com> | 2011-06-12 15:43:13 +0100 |
commit | 1226f2b3020db6ed86c7db7e8403395c5a91b540 (patch) | |
tree | 2d0b854e2e3a452779f6045ab9a64235c44fe87b | |
parent | 742f64bdec217a662ff0d8b7e519aa8e4bba2681 (diff) |
fixed: if activeKeyboardMapping is unknown then use "default" which should always exist
-rw-r--r-- | xbmc/input/ButtonTranslator.cpp | 14 | ||||
-rw-r--r-- | xbmc/input/ButtonTranslator.h | 1 |
2 files changed, 10 insertions, 5 deletions
diff --git a/xbmc/input/ButtonTranslator.cpp b/xbmc/input/ButtonTranslator.cpp index f85da89a75..d9f081cfb6 100644 --- a/xbmc/input/ButtonTranslator.cpp +++ b/xbmc/input/ButtonTranslator.cpp @@ -782,15 +782,19 @@ CAction CButtonTranslator::GetAction(int window, const CKey &key, bool fallback) return action; } +std::map<CStdString, std::map<int, CButtonTranslator::buttonMap>>::iterator CButtonTranslator::GetActiveButtonMap() +{ + std::map<CStdString, std::map<int, buttonMap>>::iterator activeMapIt = deviceMappings.find(g_settings.m_activeKeyboardMapping); + if (activeMapIt == deviceMappings.end()) + return deviceMappings.find("default"); + return activeMapIt; +} + int CButtonTranslator::GetActionCode(int window, const CKey &key, CStdString &strAction) { uint32_t code = key.GetButtonCode(); - map<CStdString, std::map<int, buttonMap>>::iterator activeMapIt = deviceMappings.find(g_settings.m_activeKeyboardMapping); - if (activeMapIt == deviceMappings.end()) - return 0; - - std::map<int, buttonMap> deviceMap = (*activeMapIt).second; + std::map<int, buttonMap> deviceMap = (*GetActiveButtonMap()).second; map<int, buttonMap>::iterator it = deviceMap.find(window); if (it == deviceMap.end()) return 0; diff --git a/xbmc/input/ButtonTranslator.h b/xbmc/input/ButtonTranslator.h index 869810900d..e94a98c3de 100644 --- a/xbmc/input/ButtonTranslator.h +++ b/xbmc/input/ButtonTranslator.h @@ -98,6 +98,7 @@ private: typedef std::multimap<uint32_t, CButtonAction> buttonMap; // our button map to fill in std::map<CStdString, std::map<int, buttonMap>> deviceMappings; + std::map<CStdString, std::map<int, buttonMap>>::iterator CButtonTranslator::GetActiveButtonMap(); int GetActionCode(int window, const CKey &key, CStdString &strAction); static uint32_t TranslateGamepadString(const char *szButton); |