aboutsummaryrefslogtreecommitdiff
path: root/backends/keymapper
diff options
context:
space:
mode:
authorTarek Soliman2012-02-22 07:17:38 -0600
committerTarek Soliman2012-02-22 07:44:59 -0600
commit92aabb686889206060ecb67b8163c6817232f8f9 (patch)
tree4471a5aa39d60b2080cdceb086351459ed9be710 /backends/keymapper
parent6b91c94a096940285a2fe8909654fece0167900d (diff)
downloadscummvm-rg350-92aabb686889206060ecb67b8163c6817232f8f9.tar.gz
scummvm-rg350-92aabb686889206060ecb67b8163c6817232f8f9.tar.bz2
scummvm-rg350-92aabb686889206060ecb67b8163c6817232f8f9.zip
KEYMAPPER: Change HardwareKey id to Common::String
Diffstat (limited to 'backends/keymapper')
-rw-r--r--backends/keymapper/hardware-key.h19
-rw-r--r--backends/keymapper/keymap.cpp6
2 files changed, 9 insertions, 16 deletions
diff --git a/backends/keymapper/hardware-key.h b/backends/keymapper/hardware-key.h
index 8c46ee6358..9fd8d1981a 100644
--- a/backends/keymapper/hardware-key.h
+++ b/backends/keymapper/hardware-key.h
@@ -31,14 +31,12 @@
namespace Common {
-#define HWKEY_ID_SIZE (30)
-
/**
* Describes an available hardware key
*/
struct HardwareKey {
/** unique id used for saving/loading to config */
- char hwKeyId[HWKEY_ID_SIZE];
+ String id;
/** Human readable description */
String description;
@@ -49,11 +47,8 @@ struct HardwareKey {
*/
KeyState key;
- HardwareKey(const char *i, KeyState ky = KeyState(), String desc = "")
- : key(ky), description(desc) {
- assert(i);
- Common::strlcpy(hwKeyId, i, HWKEY_ID_SIZE);
- }
+ HardwareKey(String i, KeyState ky = KeyState(), String desc = "")
+ : id(i), key(ky), description(desc) { }
};
/**
@@ -108,11 +103,11 @@ public:
_keys.push_back(key);
}
- const HardwareKey *findHardwareKey(const char *id) const {
+ const HardwareKey *findHardwareKey(String id) const {
List<const HardwareKey *>::const_iterator it;
for (it = _keys.begin(); it != _keys.end(); it++) {
- if (strncmp((*it)->hwKeyId, id, HWKEY_ID_SIZE) == 0)
+ if ((*it)->id == id)
return (*it);
}
return 0;
@@ -175,8 +170,8 @@ private:
List<const HardwareKey *>::iterator it;
for (it = _keys.begin(); it != _keys.end(); it++) {
- if (strncmp((*it)->hwKeyId, key->hwKeyId, HWKEY_ID_SIZE) == 0)
- error("Error adding HardwareKey '%s' - id of %s already in use!", key->description.c_str(), key->hwKeyId);
+ if ((*it)->id == key->id)
+ error("Error adding HardwareKey '%s' - id of %s already in use!", key->description.c_str(), key->id.c_str());
else if ((*it)->key == key->key)
error("Error adding HardwareKey '%s' - key already in use!", key->description.c_str());
}
diff --git a/backends/keymapper/keymap.cpp b/backends/keymapper/keymap.cpp
index 5bee1a246d..3913fd149e 100644
--- a/backends/keymapper/keymap.cpp
+++ b/backends/keymapper/keymap.cpp
@@ -185,12 +185,10 @@ void Keymap::saveMappings() {
actIdLen = (actIdLen > ACTION_ID_SIZE) ? ACTION_ID_SIZE : actIdLen;
String actId((*it)->id, (*it)->id + actIdLen);
- char hwId[HWKEY_ID_SIZE+1];
-
- memset(hwId, 0, HWKEY_ID_SIZE+1);
+ String hwId = "";
if ((*it)->getMappedKey()) {
- memcpy(hwId, (*it)->getMappedKey()->hwKeyId, HWKEY_ID_SIZE);
+ hwId = (*it)->getMappedKey()->id;
}
_configDomain->setVal(prefix + actId, hwId);
}