aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ellis <malard@gmail.com>2011-06-12 14:33:57 +0100
committerMartin Ellis <malard@gmail.com>2011-06-12 15:43:13 +0100
commit1226f2b3020db6ed86c7db7e8403395c5a91b540 (patch)
tree2d0b854e2e3a452779f6045ab9a64235c44fe87b
parent742f64bdec217a662ff0d8b7e519aa8e4bba2681 (diff)
fixed: if activeKeyboardMapping is unknown then use "default" which should always exist
-rw-r--r--xbmc/input/ButtonTranslator.cpp14
-rw-r--r--xbmc/input/ButtonTranslator.h1
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);