summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2016-11-25 12:10:14 +1100
committer Vas Crabb <vas@vastheman.com>2016-11-25 12:10:14 +1100
commit51f33cf106e99180aff696d74638fd8197faac24 (patch)
tree41d32323f298b8cf3237a6166c77b5847c3a1d1a
parent84288bb15c70e0220f15f8e03d296ae0ebb25a69 (diff)
Fix key names with -keyboardprovider win32
-rw-r--r--src/osd/modules/input/input_win32.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/osd/modules/input/input_win32.cpp b/src/osd/modules/input/input_win32.cpp
index edd378be25d..a4e00eec17f 100644
--- a/src/osd/modules/input/input_win32.cpp
+++ b/src/osd/modules/input/input_win32.cpp
@@ -14,12 +14,14 @@
// standard windows headers
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
+#include <tchar.h>
#undef interface
#undef min
#undef max
// MAME headers
#include "emu.h"
+#include "strconv.h"
// MAMEOS headers
#include "winmain.h"
@@ -81,13 +83,15 @@ public:
for (int keynum = 0; keynum < MAX_KEYS; keynum++)
{
input_item_id itemid = table.map_di_scancode_to_itemid(keynum);
- char name[20];
+ TCHAR keyname[100];
- // generate/fetch the name
- _snprintf(name, ARRAY_LENGTH(name), "Scan%03d", keynum);
+ // generate the name
+ if (GetKeyNameText(((keynum & 0x7f) << 16) | ((keynum & 0x80) << 17), keyname, ARRAY_LENGTH(keyname)) == 0)
+ _sntprintf(keyname, ARRAY_LENGTH(keyname), TEXT("Scan%03d"), keynum);
+ std::string name = osd::text::from_tstring(keyname);
// add the item to the device
- devinfo->device()->add_item(name, itemid, generic_button_get_state<std::uint8_t>, &devinfo->keyboard.state[keynum]);
+ devinfo->device()->add_item(name.c_str(), itemid, generic_button_get_state<std::uint8_t>, &devinfo->keyboard.state[keynum]);
}
}