summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-10-27 00:40:50 +1100
committer Vas Crabb <vas@vastheman.com>2021-10-27 00:40:50 +1100
commit66f9dadf96f2ba704ad647c59573192c22ceb144 (patch)
treee2bcad361996439b9e1ff5e74b3f5545fb44b754 /src/osd/modules
parent207a759a376e13aa1e258a457034ab5f54595944 (diff)
parent951303452116588727a5127917dfccd36bc4ff1f (diff)
Build cleanup and UWP removal (#8756)
This removes options for deprecated platforms: pnacl, steamlink and ci20. rpi target is not used for Raspberry Pi - linux target with parameters is used instead. MIPS architecture for Android has not been supported for some time - removed leftovers. Visual Studio versions older than 2019 are not able to compile anyway, so removed. CMake target was not able to be used for compiling anyway (just to give some editors a way to see project organization). Xcode4 support was added to get iOS to compile, and that was never finished, so removed. UWP has been deprecated by Microsoft, so we remove it as well.
Diffstat (limited to 'src/osd/modules')
-rw-r--r--src/osd/modules/diagnostics/diagnostics_win32.cpp3
-rw-r--r--src/osd/modules/diagnostics/none.cpp5
-rw-r--r--src/osd/modules/font/font_dwrite.cpp6
-rw-r--r--src/osd/modules/input/input_common.cpp295
-rw-r--r--src/osd/modules/input/input_common.h6
-rw-r--r--src/osd/modules/input/input_uwp.cpp652
-rw-r--r--src/osd/modules/input/input_windows.cpp16
-rw-r--r--src/osd/modules/input/input_xinput.cpp4
-rw-r--r--src/osd/modules/lib/osdlib.h11
-rw-r--r--src/osd/modules/lib/osdlib_uwp.cpp207
-rw-r--r--src/osd/modules/lib/osdlib_win32.cpp5
-rw-r--r--src/osd/modules/lib/osdobj_common.cpp2
-rw-r--r--src/osd/modules/monitor/monitor_dxgi.cpp18
-rw-r--r--src/osd/modules/osdwindow.cpp2
-rw-r--r--src/osd/modules/osdwindow.h2
-rw-r--r--src/osd/modules/render/drawbgfx.cpp25
-rw-r--r--src/osd/modules/render/drawnone.cpp8
-rw-r--r--src/osd/modules/sound/xaudio2_sound.cpp2
18 files changed, 144 insertions, 1125 deletions
diff --git a/src/osd/modules/diagnostics/diagnostics_win32.cpp b/src/osd/modules/diagnostics/diagnostics_win32.cpp
index 27d9c96307d..b80bbdfcdba 100644
--- a/src/osd/modules/diagnostics/diagnostics_win32.cpp
+++ b/src/osd/modules/diagnostics/diagnostics_win32.cpp
@@ -16,7 +16,6 @@
// standard windows headers
#include <windows.h>
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#include <debugger.h>
#include <psapi.h>
@@ -1098,6 +1097,4 @@ diagnostics_module * diagnostics_module::get_instance()
return &s_instance;
}
-#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-
#endif
diff --git a/src/osd/modules/diagnostics/none.cpp b/src/osd/modules/diagnostics/none.cpp
index 8a731fe9009..4663e8aa4d8 100644
--- a/src/osd/modules/diagnostics/none.cpp
+++ b/src/osd/modules/diagnostics/none.cpp
@@ -35,13 +35,8 @@ public:
// Determine if diagnostics_none should be used based on OSD
#if defined(OSD_WINDOWS) || defined(SDLMAME_WIN32)
-#include <winapifamily.h>
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define USE_DIAG_NONE 0 // Desktop Windows
#else
-#define USE_DIAG_NONE 1 // Universal Windows
-#endif
-#else
#define USE_DIAG_NONE 1 // SDL and others
#endif
diff --git a/src/osd/modules/font/font_dwrite.cpp b/src/osd/modules/font/font_dwrite.cpp
index b8a60aee200..a1e63c2d870 100644
--- a/src/osd/modules/font/font_dwrite.cpp
+++ b/src/osd/modules/font/font_dwrite.cpp
@@ -9,7 +9,7 @@
#include "modules/osdmodule.h"
#include "modules/lib/osdlib.h"
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
#include <windows.h>
@@ -353,11 +353,7 @@ public:
// accept qualifiers from the name
std::string name(_name);
if (name.compare("default") == 0)
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
- name = "Tahoma";
-#else
name = "Segoe UI";
-#endif
bool bold = (strreplace(name, "[B]", "") + strreplace(name, "[b]", "") > 0);
bool italic = (strreplace(name, "[I]", "") + strreplace(name, "[i]", "") > 0);
diff --git a/src/osd/modules/input/input_common.cpp b/src/osd/modules/input/input_common.cpp
index 344d7f02f51..bb596295ea9 100644
--- a/src/osd/modules/input/input_common.cpp
+++ b/src/osd/modules/input/input_common.cpp
@@ -25,143 +25,140 @@
#if defined(OSD_WINDOWS)
#include <windows.h>
-#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, KEY_ ## disc, virtual, ascii, "ITEM_ID_"#mame, (char *) UI }
-#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, KEY_ ## disc, virtual, ascii, "ITEM_ID_"#mame, (char*) #mame }
+#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, ascii, UI) { ITEM_ID_##mame, KEY_ ## disc, virtual, ascii, "ITEM_ID_"#mame, (char *) UI }
+#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, ascii) { ITEM_ID_##mame, KEY_ ## disc, virtual, ascii, "ITEM_ID_"#mame, (char*) #mame }
#elif defined(OSD_SDL)
// SDL include
#include <SDL2/SDL.h>
-#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char *) UI }
-#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char*) #mame }
-#elif defined(OSD_UWP)
-#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii, UI) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char *) UI }
-#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, uwp, ascii) { ITEM_ID_##mame, KEY_ ## disc, Windows::System::VirtualKey:: ## uwp, ascii, "ITEM_ID_"#mame, (char*) #mame }
+#define KEY_TRANS_ENTRY0(mame, sdlsc, sdlkey, disc, virtual, ascii, UI) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char *) UI }
+#define KEY_TRANS_ENTRY1(mame, sdlsc, sdlkey, disc, virtual, ascii) { ITEM_ID_##mame, SDL_SCANCODE_ ## sdlsc, ascii, "ITEM_ID_"#mame, (char*) #mame }
#else
// osd mini
#endif
// FIXME: sdl_key can be removed from the table below. It is no longer used.
-#if defined(OSD_WINDOWS) || defined(OSD_SDL) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS) || defined(OSD_SDL)
key_trans_entry keyboard_trans_table::s_default_table[] =
{
- // MAME key sdl scancode sdl key di scancode virtual key uwp vkey ascii ui
- KEY_TRANS_ENTRY0(ESC, ESCAPE, ESCAPE, ESCAPE, VK_ESCAPE, Escape, 27, "ESCAPE"),
- KEY_TRANS_ENTRY1(1, 1, 1, 1, '1', Number1, '1'),
- KEY_TRANS_ENTRY1(2, 2, 2, 2, '2', Number2, '2'),
- KEY_TRANS_ENTRY1(3, 3, 3, 3, '3', Number3, '3'),
- KEY_TRANS_ENTRY1(4, 4, 4, 4, '4', Number4, '4'),
- KEY_TRANS_ENTRY1(5, 5, 5, 5, '5', Number5, '5'),
- KEY_TRANS_ENTRY1(6, 6, 6, 6, '6', Number6, '6'),
- KEY_TRANS_ENTRY1(7, 7, 7, 7, '7', Number7, '7'),
- KEY_TRANS_ENTRY1(8, 8, 8, 8, '8', Number8, '8'),
- KEY_TRANS_ENTRY1(9, 9, 9, 9, '9', Number9, '9'),
- KEY_TRANS_ENTRY1(0, 0, 0, 0, '0', Number0, '0'),
- KEY_TRANS_ENTRY1(MINUS, MINUS, MINUS, MINUS, VK_OEM_MINUS, None, '-'),
- KEY_TRANS_ENTRY1(EQUALS, EQUALS, EQUALS, EQUALS, VK_OEM_PLUS, None, '='),
- KEY_TRANS_ENTRY1(BACKSPACE, BACKSPACE, BACKSPACE, BACK, VK_BACK, Back, 8),
- KEY_TRANS_ENTRY1(TAB, TAB, TAB, TAB, VK_TAB, Tab, 9),
- KEY_TRANS_ENTRY1(Q, Q, q, Q, 'Q', Q, 'Q'),
- KEY_TRANS_ENTRY1(W, W, w, W, 'W', W, 'W'),
- KEY_TRANS_ENTRY1(E, E, e, E, 'E', E, 'E'),
- KEY_TRANS_ENTRY1(R, R, r, R, 'R', R, 'R'),
- KEY_TRANS_ENTRY1(T, T, t, T, 'T', T, 'T'),
- KEY_TRANS_ENTRY1(Y, Y, y, Y, 'Y', Y, 'Y'),
- KEY_TRANS_ENTRY1(U, U, u, U, 'U', U, 'U'),
- KEY_TRANS_ENTRY1(I, I, i, I, 'I', I, 'I'),
- KEY_TRANS_ENTRY1(O, O, o, O, 'O', O, 'O'),
- KEY_TRANS_ENTRY1(P, P, p, P, 'P', P, 'P'),
- KEY_TRANS_ENTRY1(OPENBRACE, LEFTBRACKET, LEFTBRACKET, LBRACKET, VK_OEM_4, None, '['),
- KEY_TRANS_ENTRY1(CLOSEBRACE, RIGHTBRACKET, RIGHTBRACKET, RBRACKET, VK_OEM_6, None, ']'),
- KEY_TRANS_ENTRY0(ENTER, RETURN, RETURN, RETURN, VK_RETURN, Enter, 13, "RETURN"),
- KEY_TRANS_ENTRY1(LCONTROL, LCTRL, LCTRL, LCONTROL, VK_LCONTROL, LeftControl, 0),
- KEY_TRANS_ENTRY1(A, A, a, A, 'A', A, 'A'),
- KEY_TRANS_ENTRY1(S, S, s, S, 'S', S, 'S'),
- KEY_TRANS_ENTRY1(D, D, d, D, 'D', D, 'D'),
- KEY_TRANS_ENTRY1(F, F, f, F, 'F', F, 'F'),
- KEY_TRANS_ENTRY1(G, G, g, G, 'G', G, 'G'),
- KEY_TRANS_ENTRY1(H, H, h, H, 'H', H, 'H'),
- KEY_TRANS_ENTRY1(J, J, j, J, 'J', J, 'J'),
- KEY_TRANS_ENTRY1(K, K, k, K, 'K', K, 'K'),
- KEY_TRANS_ENTRY1(L, L, l, L, 'L', L, 'L'),
- KEY_TRANS_ENTRY1(COLON, SEMICOLON, SEMICOLON, SEMICOLON, VK_OEM_1, None, ';'),
- KEY_TRANS_ENTRY1(QUOTE, APOSTROPHE, QUOTE, APOSTROPHE, VK_OEM_7, None, '\''),
- KEY_TRANS_ENTRY1(TILDE, GRAVE, BACKQUOTE, GRAVE, VK_OEM_3, None, '`'),
- KEY_TRANS_ENTRY1(LSHIFT, LSHIFT, LSHIFT, LSHIFT, VK_LSHIFT, LeftShift, 0),
- KEY_TRANS_ENTRY1(BACKSLASH, BACKSLASH, BACKSLASH, BACKSLASH, VK_OEM_5, None, '\\'),
-// KEY_TRANS_ENTRY1(BACKSLASH2, NONUSHASH, UNKNOWN, OEM_102, VK_OEM_102, None, '<'),
+ // MAME key sdl scancode sdl key di scancode virtual key ascii ui
+ KEY_TRANS_ENTRY0(ESC, ESCAPE, ESCAPE, ESCAPE, VK_ESCAPE, 27, "ESCAPE"),
+ KEY_TRANS_ENTRY1(1, 1, 1, 1, '1', '1'),
+ KEY_TRANS_ENTRY1(2, 2, 2, 2, '2', '2'),
+ KEY_TRANS_ENTRY1(3, 3, 3, 3, '3', '3'),
+ KEY_TRANS_ENTRY1(4, 4, 4, 4, '4', '4'),
+ KEY_TRANS_ENTRY1(5, 5, 5, 5, '5', '5'),
+ KEY_TRANS_ENTRY1(6, 6, 6, 6, '6', '6'),
+ KEY_TRANS_ENTRY1(7, 7, 7, 7, '7', '7'),
+ KEY_TRANS_ENTRY1(8, 8, 8, 8, '8', '8'),
+ KEY_TRANS_ENTRY1(9, 9, 9, 9, '9', '9'),
+ KEY_TRANS_ENTRY1(0, 0, 0, 0, '0', '0'),
+ KEY_TRANS_ENTRY1(MINUS, MINUS, MINUS, MINUS, VK_OEM_MINUS, '-'),
+ KEY_TRANS_ENTRY1(EQUALS, EQUALS, EQUALS, EQUALS, VK_OEM_PLUS, '='),
+ KEY_TRANS_ENTRY1(BACKSPACE, BACKSPACE, BACKSPACE, BACK, VK_BACK, 8),
+ KEY_TRANS_ENTRY1(TAB, TAB, TAB, TAB, VK_TAB, 9),
+ KEY_TRANS_ENTRY1(Q, Q, q, Q, 'Q', 'Q'),
+ KEY_TRANS_ENTRY1(W, W, w, W, 'W', 'W'),
+ KEY_TRANS_ENTRY1(E, E, e, E, 'E', 'E'),
+ KEY_TRANS_ENTRY1(R, R, r, R, 'R', 'R'),
+ KEY_TRANS_ENTRY1(T, T, t, T, 'T', 'T'),
+ KEY_TRANS_ENTRY1(Y, Y, y, Y, 'Y', 'Y'),
+ KEY_TRANS_ENTRY1(U, U, u, U, 'U', 'U'),
+ KEY_TRANS_ENTRY1(I, I, i, I, 'I', 'I'),
+ KEY_TRANS_ENTRY1(O, O, o, O, 'O', 'O'),
+ KEY_TRANS_ENTRY1(P, P, p, P, 'P', 'P'),
+ KEY_TRANS_ENTRY1(OPENBRACE, LEFTBRACKET, LEFTBRACKET, LBRACKET, VK_OEM_4, '['),
+ KEY_TRANS_ENTRY1(CLOSEBRACE, RIGHTBRACKET, RIGHTBRACKET, RBRACKET, VK_OEM_6, ']'),
+ KEY_TRANS_ENTRY0(ENTER, RETURN, RETURN, RETURN, VK_RETURN, 13, "RETURN"),
+ KEY_TRANS_ENTRY1(LCONTROL, LCTRL, LCTRL, LCONTROL, VK_LCONTROL, 0),
+ KEY_TRANS_ENTRY1(A, A, a, A, 'A', 'A'),
+ KEY_TRANS_ENTRY1(S, S, s, S, 'S', 'S'),
+ KEY_TRANS_ENTRY1(D, D, d, D, 'D', 'D'),
+ KEY_TRANS_ENTRY1(F, F, f, F, 'F', 'F'),
+ KEY_TRANS_ENTRY1(G, G, g, G, 'G', 'G'),
+ KEY_TRANS_ENTRY1(H, H, h, H, 'H', 'H'),
+ KEY_TRANS_ENTRY1(J, J, j, J, 'J', 'J'),
+ KEY_TRANS_ENTRY1(K, K, k, K, 'K', 'K'),
+ KEY_TRANS_ENTRY1(L, L, l, L, 'L', 'L'),
+ KEY_TRANS_ENTRY1(COLON, SEMICOLON, SEMICOLON, SEMICOLON, VK_OEM_1, ';'),
+ KEY_TRANS_ENTRY1(QUOTE, APOSTROPHE, QUOTE, APOSTROPHE, VK_OEM_7, '\''),
+ KEY_TRANS_ENTRY1(TILDE, GRAVE, BACKQUOTE, GRAVE, VK_OEM_3, '`'),
+ KEY_TRANS_ENTRY1(LSHIFT, LSHIFT, LSHIFT, LSHIFT, VK_LSHIFT, 0),
+ KEY_TRANS_ENTRY1(BACKSLASH, BACKSLASH, BACKSLASH, BACKSLASH, VK_OEM_5, '\\'),
+// KEY_TRANS_ENTRY1(BACKSLASH2, NONUSHASH, UNKNOWN, OEM_102, VK_OEM_102, '<'),
// This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y.
- KEY_TRANS_ENTRY1(BACKSLASH2, NONUSBACKSLASH, UNKNOWN, OEM_102, VK_OEM_102, None, '<'),
- KEY_TRANS_ENTRY1(Z, Z, z, Z, 'Z', Z, 'Z'),
- KEY_TRANS_ENTRY1(X, X, x, X, 'X', X, 'X'),
- KEY_TRANS_ENTRY1(C, C, c, C, 'C', C, 'C'),
- KEY_TRANS_ENTRY1(V, V, v, V, 'V', V, 'V'),
- KEY_TRANS_ENTRY1(B, B, b, B, 'B', B, 'B'),
- KEY_TRANS_ENTRY1(N, N, n, N, 'N', N, 'N'),
- KEY_TRANS_ENTRY1(M, M, m, M, 'M', M, 'M'),
- KEY_TRANS_ENTRY1(COMMA, COMMA, COMMA, COMMA, VK_OEM_COMMA, None, ','),
- KEY_TRANS_ENTRY1(STOP, PERIOD, PERIOD, PERIOD, VK_OEM_PERIOD, None, '.'),
- KEY_TRANS_ENTRY1(SLASH, SLASH, SLASH, SLASH, VK_OEM_2, None, '/'),
- KEY_TRANS_ENTRY1(RSHIFT, RSHIFT, RSHIFT, RSHIFT, VK_RSHIFT, RightShift, 0),
- KEY_TRANS_ENTRY1(ASTERISK, KP_MULTIPLY, KP_MULTIPLY, MULTIPLY, VK_MULTIPLY, Multiply, '*'),
- KEY_TRANS_ENTRY1(LALT, LALT, LALT, LMENU, VK_LMENU, LeftMenu, 0),
- KEY_TRANS_ENTRY1(SPACE, SPACE, SPACE, SPACE, VK_SPACE, Space, ' '),
- KEY_TRANS_ENTRY1(CAPSLOCK, CAPSLOCK, CAPSLOCK, CAPITAL, VK_CAPITAL, CapitalLock, 0),
- KEY_TRANS_ENTRY1(F1, F1, F1, F1, VK_F1, F1, 0),
- KEY_TRANS_ENTRY1(F2, F2, F2, F2, VK_F2, F2, 0),
- KEY_TRANS_ENTRY1(F3, F3, F3, F3, VK_F3, F3, 0),
- KEY_TRANS_ENTRY1(F4, F4, F4, F4, VK_F4, F4, 0),
- KEY_TRANS_ENTRY1(F5, F5, F5, F5, VK_F5, F5, 0),
- KEY_TRANS_ENTRY1(F6, F6, F6, F6, VK_F6, F6, 0),
- KEY_TRANS_ENTRY1(F7, F7, F7, F7, VK_F7, F7, 0),
- KEY_TRANS_ENTRY1(F8, F8, F8, F8, VK_F8, F8, 0),
- KEY_TRANS_ENTRY1(F9, F9, F9, F9, VK_F9, F9, 0),
- KEY_TRANS_ENTRY1(F10, F10, F10, F10, VK_F10, F10, 0),
- KEY_TRANS_ENTRY1(NUMLOCK, NUMLOCKCLEAR, NUMLOCKCLEAR, NUMLOCK, VK_NUMLOCK, NumberKeyLock, 0),
- KEY_TRANS_ENTRY1(SCRLOCK, SCROLLLOCK, SCROLLLOCK, SCROLL, VK_SCROLL, Scroll, 0),
- KEY_TRANS_ENTRY1(7_PAD, KP_7, KP_7, NUMPAD7, VK_NUMPAD7, NumberPad7, 0),
- KEY_TRANS_ENTRY1(8_PAD, KP_8, KP_8, NUMPAD8, VK_NUMPAD8, NumberPad8, 0),
- KEY_TRANS_ENTRY1(9_PAD, KP_9, KP_9, NUMPAD9, VK_NUMPAD9, NumberPad9, 0),
- KEY_TRANS_ENTRY1(MINUS_PAD, KP_MINUS, KP_MINUS, SUBTRACT, VK_SUBTRACT, Subtract, 0),
- KEY_TRANS_ENTRY1(4_PAD, KP_4, KP_4, NUMPAD4, VK_NUMPAD4, NumberPad4, 0),
- KEY_TRANS_ENTRY1(5_PAD, KP_5, KP_5, NUMPAD5, VK_NUMPAD5, NumberPad5, 0),
- KEY_TRANS_ENTRY1(6_PAD, KP_6, KP_6, NUMPAD6, VK_NUMPAD6, NumberPad6, 0),
- KEY_TRANS_ENTRY1(PLUS_PAD, KP_PLUS, KP_PLUS, ADD, VK_ADD, Add, 0),
- KEY_TRANS_ENTRY1(1_PAD, KP_1, KP_1, NUMPAD1, VK_NUMPAD1, NumberPad1, 0),
- KEY_TRANS_ENTRY1(2_PAD, KP_2, KP_2, NUMPAD2, VK_NUMPAD2, NumberPad2, 0),
- KEY_TRANS_ENTRY1(3_PAD, KP_3, KP_3, NUMPAD3, VK_NUMPAD3, NumberPad3, 0),
- KEY_TRANS_ENTRY1(0_PAD, KP_0, KP_0, NUMPAD0, VK_NUMPAD0, NumberPad0, 0),
- KEY_TRANS_ENTRY1(DEL_PAD, KP_PERIOD, KP_PERIOD, DECIMAL, VK_DECIMAL, Decimal, 0),
- KEY_TRANS_ENTRY1(F11, F11, F11, F11, VK_F11, F11, 0),
- KEY_TRANS_ENTRY1(F12, F12, F12, F12, VK_F12, F12, 0),
- KEY_TRANS_ENTRY1(F13, F13, F13, F13, VK_F13, F13, 0),
- KEY_TRANS_ENTRY1(F14, F14, F14, F14, VK_F14, F14, 0),
- KEY_TRANS_ENTRY1(F15, F15, F15, F15, VK_F15, F15, 0),
- KEY_TRANS_ENTRY1(ENTER_PAD, KP_ENTER, KP_ENTER, NUMPADENTER, VK_RETURN, None, 0),
- KEY_TRANS_ENTRY1(RCONTROL, RCTRL, RCTRL, RCONTROL, VK_RCONTROL, RightControl, 0),
- KEY_TRANS_ENTRY1(SLASH_PAD, KP_DIVIDE, KP_DIVIDE, DIVIDE, VK_DIVIDE, Divide, 0),
- KEY_TRANS_ENTRY1(PRTSCR, PRINTSCREEN, PRINTSCREEN, SYSRQ, 0, Print, 0),
- KEY_TRANS_ENTRY1(RALT, RALT, RALT, RMENU, VK_RMENU, RightMenu, 0),
- KEY_TRANS_ENTRY1(HOME, HOME, HOME, HOME, VK_HOME, Home, 0),
- KEY_TRANS_ENTRY1(UP, UP, UP, UP, VK_UP, Up, 0),
- KEY_TRANS_ENTRY1(PGUP, PAGEUP, PAGEUP, PRIOR, VK_PRIOR, PageUp, 0),
- KEY_TRANS_ENTRY1(LEFT, LEFT, LEFT, LEFT, VK_LEFT, Left, 0),
- KEY_TRANS_ENTRY1(RIGHT, RIGHT, RIGHT, RIGHT, VK_RIGHT, Right, 0),
- KEY_TRANS_ENTRY1(END, END, END, END, VK_END, End, 0),
- KEY_TRANS_ENTRY1(DOWN, DOWN, DOWN, DOWN, VK_DOWN, Down, 0),
- KEY_TRANS_ENTRY1(PGDN, PAGEDOWN, PAGEDOWN, NEXT, VK_NEXT, PageDown, 0),
- KEY_TRANS_ENTRY1(INSERT, INSERT, INSERT, INSERT, VK_INSERT, Insert, 0),
- KEY_TRANS_ENTRY0(DEL, DELETE, DELETE, DELETE, VK_DELETE, Delete, 0, "DELETE"),
- KEY_TRANS_ENTRY1(LWIN, LGUI, LGUI, LWIN, VK_LWIN, LeftWindows, 0),
- KEY_TRANS_ENTRY1(RWIN, RGUI, RGUI, RWIN, VK_RWIN, RightWindows, 0),
- KEY_TRANS_ENTRY1(MENU, MENU, MENU, APPS, VK_APPS, Menu, 0),
- KEY_TRANS_ENTRY1(PAUSE, PAUSE, PAUSE, PAUSE, VK_PAUSE, Pause, 0),
- KEY_TRANS_ENTRY0(CANCEL, CANCEL, CANCEL, UNKNOWN, 0, Cancel, 0, "CANCEL"),
- KEY_TRANS_ENTRY1(BS_PAD, KP_BACKSPACE, KP_BACKSPACE, UNKNOWN, 0, None, 0),
- KEY_TRANS_ENTRY1(TAB_PAD, KP_TAB, KP_TAB, UNKNOWN, 0, None, 0),
- KEY_TRANS_ENTRY1(00_PAD, KP_00, KP_00, UNKNOWN, 0, None, 0),
- KEY_TRANS_ENTRY1(000_PAD, KP_000, KP_000, UNKNOWN, 0, None, 0),
- KEY_TRANS_ENTRY1(COMMA_PAD, KP_COMMA, KP_COMMA, NUMPADCOMMA, 0, None, 0),
- KEY_TRANS_ENTRY1(EQUALS_PAD, KP_EQUALS, KP_EQUALS, NUMPADEQUALS, 0, None, 0),
+ KEY_TRANS_ENTRY1(BACKSLASH2, NONUSBACKSLASH, UNKNOWN, OEM_102, VK_OEM_102, '<'),
+ KEY_TRANS_ENTRY1(Z, Z, z, Z, 'Z', 'Z'),
+ KEY_TRANS_ENTRY1(X, X, x, X, 'X', 'X'),
+ KEY_TRANS_ENTRY1(C, C, c, C, 'C', 'C'),
+ KEY_TRANS_ENTRY1(V, V, v, V, 'V', 'V'),
+ KEY_TRANS_ENTRY1(B, B, b, B, 'B', 'B'),
+ KEY_TRANS_ENTRY1(N, N, n, N, 'N', 'N'),
+ KEY_TRANS_ENTRY1(M, M, m, M, 'M', 'M'),
+ KEY_TRANS_ENTRY1(COMMA, COMMA, COMMA, COMMA, VK_OEM_COMMA, ','),
+ KEY_TRANS_ENTRY1(STOP, PERIOD, PERIOD, PERIOD, VK_OEM_PERIOD, '.'),
+ KEY_TRANS_ENTRY1(SLASH, SLASH, SLASH, SLASH, VK_OEM_2, '/'),
+ KEY_TRANS_ENTRY1(RSHIFT, RSHIFT, RSHIFT, RSHIFT, VK_RSHIFT, 0),
+ KEY_TRANS_ENTRY1(ASTERISK, KP_MULTIPLY, KP_MULTIPLY, MULTIPLY, VK_MULTIPLY, '*'),
+ KEY_TRANS_ENTRY1(LALT, LALT, LALT, LMENU, VK_LMENU, 0),
+ KEY_TRANS_ENTRY1(SPACE, SPACE, SPACE, SPACE, VK_SPACE, ' '),
+ KEY_TRANS_ENTRY1(CAPSLOCK, CAPSLOCK, CAPSLOCK, CAPITAL, VK_CAPITAL, 0),
+ KEY_TRANS_ENTRY1(F1, F1, F1, F1, VK_F1, 0),
+ KEY_TRANS_ENTRY1(F2, F2, F2, F2, VK_F2, 0),
+ KEY_TRANS_ENTRY1(F3, F3, F3, F3, VK_F3, 0),
+ KEY_TRANS_ENTRY1(F4, F4, F4, F4, VK_F4, 0),
+ KEY_TRANS_ENTRY1(F5, F5, F5, F5, VK_F5, 0),
+ KEY_TRANS_ENTRY1(F6, F6, F6, F6, VK_F6, 0),
+ KEY_TRANS_ENTRY1(F7, F7, F7, F7, VK_F7, 0),
+ KEY_TRANS_ENTRY1(F8, F8, F8, F8, VK_F8, 0),
+ KEY_TRANS_ENTRY1(F9, F9, F9, F9, VK_F9, 0),
+ KEY_TRANS_ENTRY1(F10, F10, F10, F10, VK_F10, 0),
+ KEY_TRANS_ENTRY1(NUMLOCK, NUMLOCKCLEAR, NUMLOCKCLEAR, NUMLOCK, VK_NUMLOCK, 0),
+ KEY_TRANS_ENTRY1(SCRLOCK, SCROLLLOCK, SCROLLLOCK, SCROLL, VK_SCROLL, 0),
+ KEY_TRANS_ENTRY1(7_PAD, KP_7, KP_7, NUMPAD7, VK_NUMPAD7, 0),
+ KEY_TRANS_ENTRY1(8_PAD, KP_8, KP_8, NUMPAD8, VK_NUMPAD8, 0),
+ KEY_TRANS_ENTRY1(9_PAD, KP_9, KP_9, NUMPAD9, VK_NUMPAD9, 0),
+ KEY_TRANS_ENTRY1(MINUS_PAD, KP_MINUS, KP_MINUS, SUBTRACT, VK_SUBTRACT, 0),
+ KEY_TRANS_ENTRY1(4_PAD, KP_4, KP_4, NUMPAD4, VK_NUMPAD4, 0),
+ KEY_TRANS_ENTRY1(5_PAD, KP_5, KP_5, NUMPAD5, VK_NUMPAD5, 0),
+ KEY_TRANS_ENTRY1(6_PAD, KP_6, KP_6, NUMPAD6, VK_NUMPAD6, 0),
+ KEY_TRANS_ENTRY1(PLUS_PAD, KP_PLUS, KP_PLUS, ADD, VK_ADD, 0),
+ KEY_TRANS_ENTRY1(1_PAD, KP_1, KP_1, NUMPAD1, VK_NUMPAD1, 0),
+ KEY_TRANS_ENTRY1(2_PAD, KP_2, KP_2, NUMPAD2, VK_NUMPAD2, 0),
+ KEY_TRANS_ENTRY1(3_PAD, KP_3, KP_3, NUMPAD3, VK_NUMPAD3, 0),
+ KEY_TRANS_ENTRY1(0_PAD, KP_0, KP_0, NUMPAD0, VK_NUMPAD0, 0),
+ KEY_TRANS_ENTRY1(DEL_PAD, KP_PERIOD, KP_PERIOD, DECIMAL, VK_DECIMAL, 0),
+ KEY_TRANS_ENTRY1(F11, F11, F11, F11, VK_F11, 0),
+ KEY_TRANS_ENTRY1(F12, F12, F12, F12, VK_F12, 0),
+ KEY_TRANS_ENTRY1(F13, F13, F13, F13, VK_F13, 0),
+ KEY_TRANS_ENTRY1(F14, F14, F14, F14, VK_F14, 0),
+ KEY_TRANS_ENTRY1(F15, F15, F15, F15, VK_F15, 0),
+ KEY_TRANS_ENTRY1(ENTER_PAD, KP_ENTER, KP_ENTER, NUMPADENTER, VK_RETURN, 0),
+ KEY_TRANS_ENTRY1(RCONTROL, RCTRL, RCTRL, RCONTROL, VK_RCONTROL, 0),
+ KEY_TRANS_ENTRY1(SLASH_PAD, KP_DIVIDE, KP_DIVIDE, DIVIDE, VK_DIVIDE, 0),
+ KEY_TRANS_ENTRY1(PRTSCR, PRINTSCREEN, PRINTSCREEN, SYSRQ, 0, 0),
+ KEY_TRANS_ENTRY1(RALT, RALT, RALT, RMENU, VK_RMENU, 0),
+ KEY_TRANS_ENTRY1(HOME, HOME, HOME, HOME, VK_HOME, 0),
+ KEY_TRANS_ENTRY1(UP, UP, UP, UP, VK_UP, 0),
+ KEY_TRANS_ENTRY1(PGUP, PAGEUP, PAGEUP, PRIOR, VK_PRIOR, 0),
+ KEY_TRANS_ENTRY1(LEFT, LEFT, LEFT, LEFT, VK_LEFT, 0),
+ KEY_TRANS_ENTRY1(RIGHT, RIGHT, RIGHT, RIGHT, VK_RIGHT, 0),
+ KEY_TRANS_ENTRY1(END, END, END, END, VK_END, 0),
+ KEY_TRANS_ENTRY1(DOWN, DOWN, DOWN, DOWN, VK_DOWN, 0),
+ KEY_TRANS_ENTRY1(PGDN, PAGEDOWN, PAGEDOWN, NEXT, VK_NEXT, 0),
+ KEY_TRANS_ENTRY1(INSERT, INSERT, INSERT, INSERT, VK_INSERT, 0),
+ KEY_TRANS_ENTRY0(DEL, DELETE, DELETE, DELETE, VK_DELETE, 0, "DELETE"),
+ KEY_TRANS_ENTRY1(LWIN, LGUI, LGUI, LWIN, VK_LWIN, 0),
+ KEY_TRANS_ENTRY1(RWIN, RGUI, RGUI, RWIN, VK_RWIN, 0),
+ KEY_TRANS_ENTRY1(MENU, MENU, MENU, APPS, VK_APPS, 0),
+ KEY_TRANS_ENTRY1(PAUSE, PAUSE, PAUSE, PAUSE, VK_PAUSE, 0),
+ KEY_TRANS_ENTRY0(CANCEL, CANCEL, CANCEL, UNKNOWN, 0, 0, "CANCEL"),
+ KEY_TRANS_ENTRY1(BS_PAD, KP_BACKSPACE, KP_BACKSPACE, UNKNOWN, 0, 0),
+ KEY_TRANS_ENTRY1(TAB_PAD, KP_TAB, KP_TAB, UNKNOWN, 0, 0),
+ KEY_TRANS_ENTRY1(00_PAD, KP_00, KP_00, UNKNOWN, 0, 0),
+ KEY_TRANS_ENTRY1(000_PAD, KP_000, KP_000, UNKNOWN, 0, 0),
+ KEY_TRANS_ENTRY1(COMMA_PAD, KP_COMMA, KP_COMMA, NUMPADCOMMA, 0, 0),
+ KEY_TRANS_ENTRY1(EQUALS_PAD, KP_EQUALS, KP_EQUALS, NUMPADEQUALS, 0, 0),
// New keys introduced in Windows 2000. These have no MAME codes to
// preserve compatibility with old config files that may refer to them
@@ -170,19 +167,19 @@ key_trans_entry keyboard_trans_table::s_default_table[] =
// GetAsyncKeyState polling is used (as happens currently when MAME is
// paused). Some codes are missing because the mapping to vkey codes
// isn't clear, and MapVirtualKey is no help.
- KEY_TRANS_ENTRY1(OTHER_SWITCH, MUTE, MUTE, MUTE, VK_VOLUME_MUTE, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, VOLUMEDOWN, VOLUMEDOWN, VOLUMEDOWN, VK_VOLUME_DOWN, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, VOLUMEUP, VOLUMEUP, VOLUMEUP, VK_VOLUME_UP, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_HOME, AC_HOME, WEBHOME, VK_BROWSER_HOME, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_SEARCH, AC_SEARCH, WEBSEARCH, VK_BROWSER_SEARCH, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_BOOKMARKS, AC_BOOKMARKS, WEBFAVORITES, VK_BROWSER_FAVORITES, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_REFRESH, AC_REFRESH, WEBREFRESH, VK_BROWSER_REFRESH, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_STOP, AC_STOP, WEBSTOP, VK_BROWSER_STOP, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_FORWARD, AC_FORWARD, WEBFORWARD, VK_BROWSER_FORWARD, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_BACK, AC_BACK, WEBBACK, VK_BROWSER_BACK, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, MAIL, MAIL, MAIL, VK_LAUNCH_MAIL, None, 0),
- KEY_TRANS_ENTRY1(OTHER_SWITCH, MEDIASELECT, MEDIASELECT, MEDIASELECT, VK_LAUNCH_MEDIA_SELECT, None, 0),
- KEY_TRANS_ENTRY0(INVALID, UNKNOWN, UNKNOWN, ESCAPE, 0, None, 0, "INVALID")
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, MUTE, MUTE, MUTE, VK_VOLUME_MUTE, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, VOLUMEDOWN, VOLUMEDOWN, VOLUMEDOWN, VK_VOLUME_DOWN, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, VOLUMEUP, VOLUMEUP, VOLUMEUP, VK_VOLUME_UP, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_HOME, AC_HOME, WEBHOME, VK_BROWSER_HOME, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_SEARCH, AC_SEARCH, WEBSEARCH, VK_BROWSER_SEARCH, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_BOOKMARKS, AC_BOOKMARKS, WEBFAVORITES, VK_BROWSER_FAVORITES, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_REFRESH, AC_REFRESH, WEBREFRESH, VK_BROWSER_REFRESH, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_STOP, AC_STOP, WEBSTOP, VK_BROWSER_STOP, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_FORWARD, AC_FORWARD, WEBFORWARD, VK_BROWSER_FORWARD, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, AC_BACK, AC_BACK, WEBBACK, VK_BROWSER_BACK, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, MAIL, MAIL, MAIL, VK_LAUNCH_MAIL, 0),
+ KEY_TRANS_ENTRY1(OTHER_SWITCH, MEDIASELECT, MEDIASELECT, MEDIASELECT, VK_LAUNCH_MEDIA_SELECT, 0),
+ KEY_TRANS_ENTRY0(INVALID, UNKNOWN, UNKNOWN, ESCAPE, 0, 0, "INVALID")
};
// The private constructor to create the default instance
@@ -227,7 +224,7 @@ input_item_id keyboard_trans_table::lookup_mame_code(const char *scode) const
}
// Windows specific lookup methods
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
input_item_id keyboard_trans_table::map_di_scancode_to_itemid(int scancode) const
{
@@ -242,10 +239,6 @@ input_item_id keyboard_trans_table::map_di_scancode_to_itemid(int scancode) cons
return ITEM_ID_OTHER_SWITCH;
}
-#endif
-
-#if defined(OSD_WINDOWS)
-
//============================================================
// wininput_vkey_for_mame_code
//============================================================
@@ -268,22 +261,6 @@ int keyboard_trans_table::vkey_for_mame_code(input_code code) const
#endif
-#if defined(OSD_UWP)
-
-const char* keyboard_trans_table::ui_label_for_mame_key(input_item_id itemid) const
-{
- // scan the table for a match
- for (int tablenum = 0; tablenum < m_table_size; tablenum++)
- if (m_table[tablenum].mame_key == itemid)
- return m_table[tablenum].ui_name;
-
- // We didn't find one
- return nullptr;
-}
-
-#endif
-
-
int input_module_base::init(const osd_options &options)
{
m_options = &options;
diff --git a/src/osd/modules/input/input_common.h b/src/osd/modules/input/input_common.h
index bddcf9b6384..49c4e768dcf 100644
--- a/src/osd/modules/input/input_common.h
+++ b/src/osd/modules/input/input_common.h
@@ -360,9 +360,6 @@ struct key_trans_entry {
#elif defined(OSD_WINDOWS)
int scan_code;
unsigned char virtual_key;
-#elif defined(OSD_UWP)
- int scan_code;
- Windows::System::VirtualKey virtual_key;
#endif
char ascii_key;
@@ -396,9 +393,6 @@ public:
#if defined(OSD_WINDOWS)
input_item_id map_di_scancode_to_itemid(int di_scancode) const;
int vkey_for_mame_code(input_code code) const;
-#elif defined(OSD_UWP)
- input_item_id map_di_scancode_to_itemid(int di_scancode) const;
- const char* ui_label_for_mame_key(input_item_id code) const;
#endif
static keyboard_trans_table& instance()
diff --git a/src/osd/modules/input/input_uwp.cpp b/src/osd/modules/input/input_uwp.cpp
deleted file mode 100644
index 111ff0e0784..00000000000
--- a/src/osd/modules/input/input_uwp.cpp
+++ /dev/null
@@ -1,652 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Brad Hughes
-//============================================================
-//
-// input_uwp.cpp - UWP input implementation
-//
-//============================================================
-
-#include "input_module.h"
-#include "modules/osdmodule.h"
-
-#if defined(OSD_UWP)
-
-#include <agile.h>
-#include <ppltasks.h>
-#include <collection.h>
-#undef interface
-
-// MAME headers
-#include "emu.h"
-#include "uiinput.h"
-#include "strconv.h"
-
-// MAMEOS headers
-#include "winmain.h"
-#include "input_common.h"
-#include "input_windows.h"
-
-
-namespace {
-
-#define UWP_BUTTON_COUNT 32
-
-using namespace concurrency;
-using namespace Windows::UI::Core;
-using namespace Windows::Foundation;
-using namespace Windows::Foundation::Collections;
-using namespace Windows::Gaming::Input;
-
-//============================================================
-// UWP Base device/module implementation
-//============================================================
-
-//============================================================
-// UwpInputDevice - base class for implementing an input
-// device in C++/CX. To be used with uwp_input_device
-//============================================================
-
-private ref class UwpInputDevice
-{
-private:
- running_machine & m_machine;
- std::string m_name;
- std::string m_id;
- input_device_class m_devclass;
- input_module & m_module;
- input_device *m_inputdevice;
-
-internal:
- UwpInputDevice(running_machine &machine, std::string &&name, std::string &&id, input_device_class deviceclass, input_module &module) :
- m_machine(machine),
- m_name(std::move(name)),
- m_id(std::move(id)),
- m_devclass(deviceclass),
- m_module(module),
- m_inputdevice(nullptr)
- {
- }
-
- property running_machine & Machine
- {
- running_machine & get() { return m_machine; }
- }
-
- property const std::string & Name
- {
- const std::string & get() { return m_name; }
- }
-
- property const std::string & Id
- {
- const std::string & get() { return m_id; }
- }
-
- property input_device_class DeviceClass
- {
- input_device_class get() { return m_devclass; }
- }
-
- property input_module & Module
- {
- input_module & get() { return m_module; }
- }
-
- property input_device* InputDevice
- {
- input_device* get() { return m_inputdevice; }
- void set(input_device* value) { m_inputdevice = value; }
- }
-
- virtual void Poll()
- {
- }
-
- virtual void Reset()
- {
- }
-};
-
-//============================================================
-// uwp_input_device - a device that can be used to wrap a
-// C++/CX ref class for an input device implementation
-//============================================================
-
-class uwp_input_device : public device_info
-{
-private:
- UwpInputDevice ^m_wrapped_device;
-
-public:
- uwp_input_device(UwpInputDevice ^device) :
- device_info(device->Machine, std::string(device->Name), std::string(device->Id), device->DeviceClass, device->Module),
- m_wrapped_device(device)
- {
- }
-
- void poll() override
- {
- m_wrapped_device->Poll();
- }
-
- void reset() override
- {
- m_wrapped_device->Reset();
- }
-};
-
-//============================================================
-// UwpInputModule - a base class that can be used to
-// implement an input module with a C++/CX class.
-// normally used with uwp_wininput_module
-//============================================================
-
-class uwp_input_module;
-
-private ref class UwpInputModule
-{
-private:
- const std::string m_type;
- const std::string m_name;
- uwp_input_module *m_module;
-
-internal:
- UwpInputModule(std::string &&type, std::string &&name) :
- m_type(std::move(type)),
- m_name(std::move(name)),
- m_module(nullptr)
- {
- }
-
- property const std::string & Type
- {
- const std::string & get() { return m_type; }
- }
-
- property const std::string & Name
- {
- const std::string & get() { return m_name; }
- }
-
- property uwp_input_module * NativeModule
- {
- uwp_input_module * get() { return m_module; }
- void set(uwp_input_module * value) { m_module = value; }
- }
-
- virtual void input_init(running_machine &machine)
- {
- }
-};
-
-//============================================================
-// uwp_input_module - an input module that can be
-// used to create an input module with a C++/CX ref class
-//============================================================
-
-class uwp_input_module : public wininput_module
-{
-private:
- UwpInputModule^ m_refmodule;
-
-public:
- uwp_input_module(UwpInputModule^ refmodule) :
- wininput_module(refmodule->Type.c_str(), refmodule->Name.c_str()),
- m_refmodule(refmodule)
- {
- refmodule->NativeModule = this;
- }
-
- void input_init(running_machine &machine) override
- {
- m_refmodule->input_init(machine);
- }
-};
-
-//============================================================
-// UWP Keyboard Implementation
-//============================================================
-
-//============================================================
-// UwpKeyboardDevice
-//============================================================
-
-private ref class UwpKeyboardDevice : public UwpInputDevice
-{
-private:
- keyboard_state keyboard;
- Platform::Agile<CoreWindow> m_coreWindow;
- std::mutex m_state_lock;
-
-internal:
- UwpKeyboardDevice(Platform::Agile<CoreWindow> coreWindow, running_machine& machine, std::string &&name, std::string &&id, input_module &module) :
- UwpInputDevice(machine, std::move(name), std::move(id), DEVICE_CLASS_KEYBOARD, module),
- keyboard({{0}}),
- m_coreWindow(coreWindow)
- {
- coreWindow->Dispatcher->AcceleratorKeyActivated += ref new TypedEventHandler<CoreDispatcher^, AcceleratorKeyEventArgs^>(this, &UwpKeyboardDevice::OnAcceleratorKeyActivated);
- coreWindow->KeyDown += ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &UwpKeyboardDevice::OnKeyDown);
- coreWindow->KeyUp += ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &UwpKeyboardDevice::OnKeyUp);
- coreWindow->CharacterReceived += ref new TypedEventHandler<CoreWindow^, CharacterReceivedEventArgs^>(this, &UwpKeyboardDevice::OnCharacterReceived);
- }
-
- void Reset() override
- {
- std::lock_guard<std::mutex> scope_lock(m_state_lock);
- memset(&keyboard, 0, sizeof(keyboard));
- }
-
- void Configure()
- {
- keyboard_trans_table &table = keyboard_trans_table::instance();
-
- // populate it indexed by the scancode
- for (int keynum = KEY_UNKNOWN + 1; keynum < MAX_KEYS; keynum++)
- {
- input_item_id itemid = table.map_di_scancode_to_itemid(keynum);
- const char *keyname = table.ui_label_for_mame_key(itemid);
-
- char temp[256];
- if (!keyname)
- {
- snprintf(temp, std::size(temp), "Scan%03d", keynum);
- keyname = temp;
- }
-
- // add the item to the device
- this->InputDevice->add_item(keyname, itemid, generic_button_get_state<std::uint8_t>, &keyboard.state[keynum]);
- }
- }
-
- void OnKeyDown(CoreWindow^ win, KeyEventArgs^ args)
- {
- std::lock_guard<std::mutex> scope_lock(m_state_lock);
- CorePhysicalKeyStatus status = args->KeyStatus;
- int discancode = (status.ScanCode & 0x7f) | (status.IsExtendedKey ? 0x80 : 0x00);
- keyboard.state[discancode] = 0x80;
- }
-
- void OnKeyUp(CoreWindow^ win, KeyEventArgs^ args)
- {
- std::lock_guard<std::mutex> scope_lock(m_state_lock);
- CorePhysicalKeyStatus status = args->KeyStatus;
- int discancode = (status.ScanCode & 0x7f) | (status.IsExtendedKey ? 0x80 : 0x00);
- keyboard.state[discancode] = 0;
- }
-
- void OnCharacterReceived(CoreWindow ^sender, CharacterReceivedEventArgs ^args)
- {
- this->Machine.ui_input().push_char_event(osd_common_t::s_window_list.front()->target(), args->KeyCode);
- }
-
- void OnAcceleratorKeyActivated(CoreDispatcher ^sender, AcceleratorKeyEventArgs ^args)
- {
- std::lock_guard<std::mutex> scope_lock(m_state_lock);
- auto eventType = args->EventType;
- if (eventType == CoreAcceleratorKeyEventType::SystemKeyDown ||
- eventType == CoreAcceleratorKeyEventType::SystemKeyUp)
- {
- CorePhysicalKeyStatus status = args->KeyStatus;
- int discancode = (status.ScanCode & 0x7f) | (status.IsExtendedKey ? 0x80 : 0x00);
- keyboard.state[discancode] =
- eventType == CoreAcceleratorKeyEventType::SystemKeyDown ? 0x80 : 0;
- }
- }
-};
-
-//============================================================
-// UwpKeyboardModule
-//============================================================
-
-private ref class UwpKeyboardModule : public UwpInputModule
-{
-private:
- running_machine *m_machine;
-
-internal:
- UwpKeyboardModule() : UwpInputModule(OSD_KEYBOARDINPUT_PROVIDER, "uwp")
- {
- }
-
- void input_init(running_machine &machine) override
- {
- auto first_window = std::static_pointer_cast<uwp_window_info>(osd_common_t::s_window_list.front());
- auto coreWindow = first_window->platform_window();
-
- // allocate the UWP implementation of the device object
- UwpKeyboardDevice ^refdevice = ref new UwpKeyboardDevice(coreWindow, machine, "UWP Keyboard 1", "UWP Keyboard 1", *this->NativeModule);
-
- // Allocate the wrapper and add it to the list
- auto created_devinfo = std::make_unique<uwp_input_device>(refdevice);
- uwp_input_device &devinfo = NativeModule->devicelist()->add_device<uwp_input_device>(machine, std::move(created_devinfo));
-
- // Give the UWP implementation a handle to the input_device
- refdevice->InputDevice = devinfo.device();
-
- // Configure the device
- refdevice->Configure();
- }
-};
-
-//============================================================
-// uwp_keyboard_module
-//============================================================
-
-class uwp_keyboard_module : public uwp_input_module
-{
-public:
- uwp_keyboard_module()
- : uwp_input_module(ref new UwpKeyboardModule())
- {
- }
-};
-
-// default axis names
-static const char *const uwp_axis_name[] =
-{
- "LSX",
- "LSY",
- "RSX",
- "RSY"
-};
-
-static const input_item_id uwp_axis_ids[] =
-{
- ITEM_ID_XAXIS,
- ITEM_ID_YAXIS,
- ITEM_ID_RXAXIS,
- ITEM_ID_RYAXIS
-};
-
-struct gamepad_state
-{
- BYTE buttons[UWP_BUTTON_COUNT];
- LONG left_trigger;
- LONG right_trigger;
- LONG left_thumb_x;
- LONG left_thumb_y;
- LONG right_thumb_x;
- LONG right_thumb_y;
-};
-
-// Maps different UWP GameControllerButtonLabels to a halfway-sane input_item_id in many cases
-static input_item_id buttonlabel_to_itemid[] =
-{
- input_item_id::ITEM_ID_INVALID, // GameControllerButtonLabel::None
- input_item_id::ITEM_ID_SELECT, // GameControllerButtonLabel::XboxBack
- input_item_id::ITEM_ID_START, // GameControllerButtonLabel::XboxStart
- input_item_id::ITEM_ID_START, // GameControllerButtonLabel::XboxMenu
- input_item_id::ITEM_ID_SELECT, // GameControllerButtonLabel::XboxView
- input_item_id::ITEM_ID_HAT1UP, // GameControllerButtonLabel::XboxUp
- input_item_id::ITEM_ID_HAT1DOWN, // GameControllerButtonLabel::XboxDown
- input_item_id::ITEM_ID_HAT1LEFT, // GameControllerButtonLabel::XboxLeft
- input_item_id::ITEM_ID_HAT1RIGHT, // GameControllerButtonLabel::XboxRight
- input_item_id::ITEM_ID_BUTTON1, // GameControllerButtonLabel::XboxA
- input_item_id::ITEM_ID_BUTTON2, // GameControllerButtonLabel::XboxB
- input_item_id::ITEM_ID_BUTTON3, // GameControllerButtonLabel::XboxX
- input_item_id::ITEM_ID_BUTTON4, // GameControllerButtonLabel::XboxY
- input_item_id::ITEM_ID_BUTTON5, // GameControllerButtonLabel::XboxLeftBumper
- input_item_id::ITEM_ID_ZAXIS, // GameControllerButtonLabel::XboxLeftTrigger
- input_item_id::ITEM_ID_BUTTON7, // GameControllerButtonLabel::XboxLeftStickButton
- input_item_id::ITEM_ID_BUTTON6, // GameControllerButtonLabel::XboxRightBumper
- input_item_id::ITEM_ID_RZAXIS, // GameControllerButtonLabel::XboxRightTrigger
- input_item_id::ITEM_ID_BUTTON8, // GameControllerButtonLabel::XboxRightStickButton
- input_item_id::ITEM_ID_BUTTON9, // GameControllerButtonLabel::XboxPaddle1
- input_item_id::ITEM_ID_BUTTON10, // GameControllerButtonLabel::XboxPaddle2
- input_item_id::ITEM_ID_BUTTON11, // GameControllerButtonLabel::XboxPaddle3
- input_item_id::ITEM_ID_BUTTON12, // GameControllerButtonLabel::XboxPaddle4
- input_item_id::ITEM_ID_INVALID, // GameControllerButtonLabel_Mode
- input_item_id::ITEM_ID_SELECT, // GameControllerButtonLabel_Select
- input_item_id::ITEM_ID_START, // GameControllerButtonLabel_Menu
- input_item_id::ITEM_ID_SELECT, // GameControllerButtonLabel_View
- input_item_id::ITEM_ID_SELECT, // GameControllerButtonLabel_Back
- input_item_id::ITEM_ID_START, // GameControllerButtonLabel_Start
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Options
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Share
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Up
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Down
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Left
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Right
- input_item_id::ITEM_ID_BUTTON1, // GameControllerButtonLabel_LetterA
- input_item_id::ITEM_ID_BUTTON2, // GameControllerButtonLabel_LetterB
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_LetterC
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_LetterL
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_LetterR
- input_item_id::ITEM_ID_BUTTON3, // GameControllerButtonLabel_LetterX
- input_item_id::ITEM_ID_BUTTON4, // GameControllerButtonLabel_LetterY
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_LetterZ
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Cross
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Circle
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Square
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Triangle
- input_item_id::ITEM_ID_BUTTON5, // GameControllerButtonLabel_LeftBumper
- input_item_id::ITEM_ID_ZAXIS, // GameControllerButtonLabel_LeftTrigger
- input_item_id::ITEM_ID_BUTTON7, // GameControllerButtonLabel_LeftStickButton
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Left1
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Left2
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Left3
- input_item_id::ITEM_ID_BUTTON6, // GameControllerButtonLabel_RightBumper
- input_item_id::ITEM_ID_RZAXIS, // GameControllerButtonLabel_RightTrigger
- input_item_id::ITEM_ID_BUTTON8, // GameControllerButtonLabel_RightStickButton
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Right1
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Right2
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Right3
- input_item_id::ITEM_ID_BUTTON9, // GameControllerButtonLabel_Paddle1
- input_item_id::ITEM_ID_BUTTON10, // GameControllerButtonLabel_Paddle2
- input_item_id::ITEM_ID_BUTTON11, // GameControllerButtonLabel_Paddle3
- input_item_id::ITEM_ID_BUTTON12, // GameControllerButtonLabel_Paddle4
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Plus
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Minus
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_DownLeftArrow
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_DialLeft
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_DialRight
- input_item_id::ITEM_ID_OTHER_SWITCH, // GameControllerButtonLabel_Suspension
-};
-
-//============================================================
-// UwpJoystickDevice
-//============================================================
-
-private ref class UwpJoystickDevice : public UwpInputDevice
-{
-private:
- Gamepad ^m_pad;
- bool m_configured;
- gamepad_state state;
-
-internal:
- UwpJoystickDevice(Gamepad^ pad, running_machine &machine, const char *name, const char *id, input_module &module)
- : UwpInputDevice(machine, name, id, DEVICE_CLASS_JOYSTICK, module),
- m_pad(pad),
- m_configured(false),
- state({0})
- {}
-
- void Poll() override
- {
- // If the device hasn't been configured, don't poll
- if (!m_configured)
- return;
-
- GamepadReading reading = m_pad->GetCurrentReading();
-
- for (int butnum = 0; butnum < UWP_BUTTON_COUNT; butnum++)
- {
- GamepadButtons currentButton = GamepadButtons(1 << butnum);
- state.buttons[butnum] = (reading.Buttons & currentButton) != GamepadButtons::None ? 0xFF : 0;
- }
-
- // Now grab the axis values
- // Each of the thumbstick axis members is a signed value between -32768 and 32767 describing the position of the thumbstick
- // However, the Y axis values are inverted from what MAME expects, so negate the value
- state.left_thumb_x = normalize_absolute_axis(reading.LeftThumbstickX, -1, 1);
- state.left_thumb_y = -normalize_absolute_axis(reading.LeftThumbstickY, -1, 1);
- state.right_thumb_x = normalize_absolute_axis(reading.RightThumbstickX, -1, 1);
- state.right_thumb_y = -normalize_absolute_axis(reading.RightThumbstickY, -1, 1);
-
- // Get the trigger values
- state.left_trigger = normalize_absolute_axis(reading.LeftTrigger, 0.0, 1.0);
- state.right_trigger = normalize_absolute_axis(reading.RightTrigger, 0.0, 1.0);
-
- // For the UI, triggering UI_CONFIGURE is odd. It requires a EVENT_CHAR first
- static constexpr int menuhotkey = (int)(GamepadButtons::View | GamepadButtons::X);
- if (((int)reading.Buttons & menuhotkey) == menuhotkey)
- {
- ui_event uiev;
- memset(&uiev, 0, sizeof(uiev));
- uiev.event_type = ui_event::IME_CHAR;
- this->Machine.ui_input().push_event(uiev);
- }
- }
-
- void Reset() override
- {
- memset(&state, 0, sizeof(state));
- }
-
- void Configure()
- {
- // If the device has already been configured, don't do it again
- if (m_configured)
- return;
-
- GamepadReading r = m_pad->GetCurrentReading();
-
- // Add the axes
- for (int axisnum = 0; axisnum < 4; axisnum++)
- {
- this->InputDevice->add_item(
- uwp_axis_name[axisnum],
- uwp_axis_ids[axisnum],
- generic_axis_get_state<LONG>,
- &state.left_thumb_x + axisnum);
- }
-
- // populate the buttons
- for (int butnum = 0; butnum < UWP_BUTTON_COUNT; butnum++)
- {
- GamepadButtons button = GamepadButtons(1 << butnum);
- auto label = m_pad->GetButtonLabel(button);
- if (label != GameControllerButtonLabel::None)
- {
- std::string desc = osd::text::from_wstring(label.ToString()->Data());
- this->InputDevice->add_item(
- desc.c_str(),
- buttonlabel_to_itemid[static_cast<int>(label)],
- generic_button_get_state<BYTE>,
- &state.buttons[butnum]);
- }
- }
-
- this->InputDevice->add_item(
- "Left Trigger",
- ITEM_ID_ZAXIS,
- generic_axis_get_state<LONG>,
- &state.left_trigger);
-
- this->InputDevice->add_item(
- "Right Trigger",
- ITEM_ID_RZAXIS,
- generic_axis_get_state<LONG>,
- &state.right_trigger);
-
- m_configured = true;
- }
-};
-
-//============================================================
-// UwpJoystickModule
-//============================================================
-
-private ref class UwpJoystickModule : public UwpInputModule
-{
-private:
- boolean m_joysticks_discovered;
-
-internal:
- UwpJoystickModule()
- : UwpInputModule(OSD_JOYSTICKINPUT_PROVIDER, "uwp"),
- m_joysticks_discovered(false)
- {
- }
-
- void input_init(running_machine &machine) override
- {
- PerformGamepadDiscovery();
-
- auto pads = Gamepad::Gamepads;
-
- int padindex = 0;
- std::for_each(begin(pads), end(pads), [&](Gamepad^ pad)
- {
- std::ostringstream namestream;
- namestream << "UWP Gamepad " << (padindex + 1);
-
- auto name = namestream.str();
-
- // allocate the UWP implementation of the device object
- UwpJoystickDevice ^refdevice = ref new UwpJoystickDevice(pad, machine, name.c_str(), name.c_str(), *this->NativeModule);
-
- // Allocate the wrapper and add it to the list
- auto created_devinfo = std::make_unique<uwp_input_device>(refdevice);
- auto &devinfo = NativeModule->devicelist()->add_device<uwp_input_device>(machine, std::move(created_devinfo));
-
- // Give the UWP implementation a handle to the input_device
- refdevice->InputDevice = devinfo->device();
-
- // Configure the device
- refdevice->Configure();
-
- padindex++;
- });
- }
-
-private:
- void PerformGamepadDiscovery()
- {
- Gamepad::GamepadAdded += ref new EventHandler<Gamepad ^>(this, &UwpJoystickModule::OnGamepadAdded);
- auto start = std::chrono::system_clock::now();
-
- // We need to pause a bit and pump events so gamepads get discovered
- while (std::chrono::system_clock::now() - start < std::chrono::milliseconds(1000))
- CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent);
-
- m_joysticks_discovered = true;
- }
-
- void OnGamepadAdded(Platform::Object ^sender, Gamepad ^pad)
- {
- if (m_joysticks_discovered)
- {
- osd_printf_error("Input: UWP Compatible %s gamepad plugged in AFTER discovery complete!\n", pad->IsWireless ? "Wireless" : "Wired");
- }
- else
- {
- osd_printf_verbose("Input: UWP Compatible %s gamepad discovered.\n", pad->IsWireless ? "Wireless" : "Wired");
- }
- }
-};
-
-//============================================================
-// uwp_joystick_module
-//============================================================
-
-class uwp_joystick_module : public uwp_input_module
-{
-public:
- uwp_joystick_module() : uwp_input_module(ref new UwpJoystickModule())
- {
- }
-};
-
-} // anonymous namespace
-
-#else // defined(OSD_UWP)
-
-MODULE_NOT_SUPPORTED(uwp_keyboard_module, OSD_KEYBOARDINPUT_PROVIDER, "uwp")
-MODULE_NOT_SUPPORTED(uwp_joystick_module, OSD_JOYSTICKINPUT_PROVIDER, "uwp")
-
-#endif // defined(OSD_UWP)
-
-MODULE_DEFINITION(KEYBOARDINPUT_UWP, uwp_keyboard_module)
-MODULE_DEFINITION(JOYSTICKINPUT_UWP, uwp_joystick_module)
diff --git a/src/osd/modules/input/input_windows.cpp b/src/osd/modules/input/input_windows.cpp
index 9432aab83a7..b00d5570ca2 100644
--- a/src/osd/modules/input/input_windows.cpp
+++ b/src/osd/modules/input/input_windows.cpp
@@ -8,7 +8,7 @@
#include "input_module.h"
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
// MAME headers
#include "emu.h"
@@ -81,23 +81,11 @@ void windows_osd_interface::customize_input_type_list(std::vector<input_type_ent
for (input_type_entry &entry : typelist)
switch (entry.type())
{
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// disable the config menu if the ALT key is down
// (allows ALT-TAB to switch between windows apps)
case IPT_UI_CONFIGURE:
entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_TAB, input_seq::not_code, KEYCODE_LALT, input_seq::not_code, KEYCODE_RALT);
break;
-#else
- // UWP: Hotkey Select + X => UI_CONFIGURE (Menu)
- case IPT_UI_CONFIGURE:
- entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_TAB, input_seq::or_code, JOYCODE_SELECT, JOYCODE_BUTTON3);
- break;
-
- // UWP: Hotkey Select + Start => CANCEL
- case IPT_UI_CANCEL:
- entry.defseq(SEQ_TYPE_STANDARD).set(KEYCODE_ESC, input_seq::or_code, JOYCODE_SELECT, JOYCODE_START);
- break;
-#endif
// configurable UI mode switch
case IPT_UI_TOGGLE_UI:
uimode = options().ui_mode_key();
@@ -163,4 +151,4 @@ void windows_osd_interface::customize_input_type_list(std::vector<input_type_ent
}
}
-#endif // defined(OSD_WINDOWS) || defined(OSD_UWP)
+#endif // defined(OSD_WINDOWS)
diff --git a/src/osd/modules/input/input_xinput.cpp b/src/osd/modules/input/input_xinput.cpp
index 4ae4cfba7ac..dd4c418aacd 100644
--- a/src/osd/modules/input/input_xinput.cpp
+++ b/src/osd/modules/input/input_xinput.cpp
@@ -30,11 +30,7 @@
#include "input_windows.h"
#include "input_xinput.h"
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define XINPUT_LIBRARIES { "xinput1_4.dll", "xinput9_1_0.dll" }
-#else
-#define XINPUT_LIBRARIES { "xinput1_4.dll" }
-#endif
#define XINPUT_AXIS_MINVALUE -32767
#define XINPUT_AXIS_MAXVALUE 32767
diff --git a/src/osd/modules/lib/osdlib.h b/src/osd/modules/lib/osdlib.h
index cb3c2dcdce8..4a06b7052f5 100644
--- a/src/osd/modules/lib/osdlib.h
+++ b/src/osd/modules/lib/osdlib.h
@@ -188,20 +188,9 @@ protected:
// Calling then looks like: DYNAMIC_CALL(CreateDXGIFactory1, p1, p2, etc)
//=========================================================================================================
-#if !defined(OSD_UWP)
-
#define OSD_DYNAMIC_API(apiname, ...) osd::dynamic_module::ptr m_##apiname##module = osd::dynamic_module::open( { __VA_ARGS__ } )
#define OSD_DYNAMIC_API_FN(apiname, ret, conv, fname, ...) ret(conv *m_##fname##_pfn)( __VA_ARGS__ ) = m_##apiname##module->bind<ret(conv *)( __VA_ARGS__ )>(#fname)
#define OSD_DYNAMIC_CALL(fname, ...) (*m_##fname##_pfn) ( __VA_ARGS__ )
#define OSD_DYNAMIC_API_TEST(fname) (m_##fname##_pfn != nullptr)
-#else
-
-#define OSD_DYNAMIC_API(apiname, ...)
-#define OSD_DYNAMIC_API_FN(apiname, ret, conv, fname, ...)
-#define OSD_DYNAMIC_CALL(fname, ...) fname( __VA_ARGS__ )
-#define OSD_DYNAMIC_API_TEST(fname) (true)
-
-#endif
-
#endif /* __OSDLIB__ */
diff --git a/src/osd/modules/lib/osdlib_uwp.cpp b/src/osd/modules/lib/osdlib_uwp.cpp
deleted file mode 100644
index 87035e9db97..00000000000
--- a/src/osd/modules/lib/osdlib_uwp.cpp
+++ /dev/null
@@ -1,207 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Olivier Galibert, R. Belmont, Brad Hughes
-//============================================================
-//
-// sdlos_*.c - OS specific low level code
-//
-// SDLMAME by Olivier Galibert and R. Belmont
-//
-//============================================================
-
-// MAME headers
-#include "osdlib.h"
-#include "osdcomm.h"
-#include "osdcore.h"
-#include "strconv.h"
-
-#include <cstdio>
-#include <cstdlib>
-#include <map>
-#include <memory>
-
-#include <windows.h>
-#include <memoryapi.h>
-
-#include <wrl\client.h>
-
-
-using namespace Platform;
-using namespace Windows::ApplicationModel::DataTransfer;
-using namespace Windows::Foundation;
-
-
-//============================================================
-// GLOBAL VARIABLES
-//============================================================
-
-std::map<const char *, std::unique_ptr<char>> g_runtime_environment;
-
-//============================================================
-// osd_getenv
-//============================================================
-
-const char *osd_getenv(const char *name)
-{
- for (auto iter = g_runtime_environment.begin(); iter != g_runtime_environment.end(); iter++)
- {
- if (stricmp(iter->first, name) == 0)
- {
- osd_printf_debug("ENVIRONMENT: Get %s = value: '%s'", name, iter->second.get());
- return iter->second.get();
- }
- }
-
- return nullptr;
-}
-
-
-//============================================================
-// osd_setenv
-//============================================================
-
-int osd_setenv(const char *name, const char *value, int overwrite)
-{
- if (!overwrite)
- {
- if (osd_getenv(name) != nullptr)
- return 0;
- }
-
- auto buf = std::make_unique<char>(strlen(name) + strlen(value) + 2);
- sprintf(buf.get(), "%s=%s", name, value);
-
- g_runtime_environment[name] = std::move(buf);
- osd_printf_debug("ENVIRONMENT: Set %s to value: '%s'", name, buf.get());
-
- return 0;
-}
-
-//============================================================
-// osd_process_kill
-//============================================================
-
-void osd_process_kill()
-{
- TerminateProcess(GetCurrentProcess(), -1);
-}
-
-//============================================================
-// osd_break_into_debugger
-//============================================================
-
-void osd_break_into_debugger(const char *message)
-{
- if (IsDebuggerPresent())
- {
- OutputDebugStringA(message);
- __debugbreak();
- }
-}
-
-//============================================================
-// get_clipboard_text_by_format
-//============================================================
-
-static bool get_clipboard_text_by_format(std::string &result_text, UINT format, std::string (*convert)(LPCVOID data))
-{
- DataPackageView^ dataPackageView;
- IAsyncOperation<String^>^ getTextOp;
- String^ clipboardText;
-
- dataPackageView = Clipboard::GetContent();
- getTextOp = dataPackageView->GetTextAsync();
- clipboardText = getTextOp->GetResults();
-
- result_text = convert(clipboardText->Data());
- return !result_text.empty();
-}
-
-//============================================================
-// convert_wide
-//============================================================
-
-static std::string convert_wide(LPCVOID data)
-{
- return osd::text::from_wstring((LPCWSTR) data);
-}
-
-//============================================================
-// convert_ansi
-//============================================================
-
-static std::string convert_ansi(LPCVOID data)
-{
- return osd::text::from_astring((LPCSTR) data);
-}
-
-//============================================================
-// osd_get_clipboard_text
-//============================================================
-
-std::string osd_get_clipboard_text()
-{
- std::string result;
-
- // try to access unicode text
- if (!get_clipboard_text_by_format(result, CF_UNICODETEXT, convert_wide))
- {
- // try to access ANSI text
- get_clipboard_text_by_format(result, CF_TEXT, convert_ansi);
- }
-
- return result;
-}
-
-//============================================================
-// osd_getpid
-//============================================================
-
-int osd_getpid()
-{
- return GetCurrentProcessId();
-}
-
-
-namespace osd {
-
-bool invalidate_instruction_cache(void const *start, std::size_t size)
-{
- return FlushInstructionCache(GetCurrentProcess(), start, size) != 0;
-}
-
-
-void *virtual_memory_allocation::do_alloc(std::initializer_list<std::size_t> blocks, unsigned intent, std::size_t &size, std::size_t &page_size)
-{
- SYSTEM_INFO info;
- GetSystemInfo(&info);
- SIZE_T s(0);
- for (std::size_t b : blocks)
- s += (b + info.dwPageSize - 1) / info.dwPageSize;
- s *= info.dwPageSize;
- if (!s)
- return nullptr;
- LPVOID const result(VirtualAllocFromApp(nullptr, s, MEM_COMMIT, PAGE_NOACCESS));
- if (result)
- {
- size = s;
- page_size = info.dwPageSize;
- }
- return result;
-}
-
-void virtual_memory_allocation::do_free(void *start, std::size_t size)
-{
- VirtualFree(start, 0, MEM_RELEASE);
-}
-
-bool virtual_memory_allocation::do_set_access(void *start, std::size_t size, unsigned access)
-{
- ULONG p, o;
- if (access & EXECUTE)
- p = (access & WRITE) ? PAGE_EXECUTE_READWRITE : (access & READ) ? PAGE_EXECUTE_READ : PAGE_EXECUTE;
- else
- p = (access & WRITE) ? PAGE_READWRITE : (access & READ) ? PAGE_READONLY : PAGE_NOACCESS;
- return VirtualProtectFromApp(start, size, p, &o) != 0;
-}
-
-} // namespace osd
diff --git a/src/osd/modules/lib/osdlib_win32.cpp b/src/osd/modules/lib/osdlib_win32.cpp
index b75500deee9..174dc769760 100644
--- a/src/osd/modules/lib/osdlib_win32.cpp
+++ b/src/osd/modules/lib/osdlib_win32.cpp
@@ -195,13 +195,8 @@ int osd_getpid()
// osd_dynamic_bind
//============================================================
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// for classic desktop applications
#define load_library(filename) LoadLibrary(filename)
-#else
-// for Windows Store universal applications
-#define load_library(filename) LoadPackagedLibrary(filename, 0)
-#endif
namespace osd {
diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp
index a8ed943f18b..be06da29767 100644
--- a/src/osd/modules/lib/osdobj_common.cpp
+++ b/src/osd/modules/lib/osdobj_common.cpp
@@ -260,7 +260,6 @@ void osd_common_t::register_options()
REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_RAWINPUT);
REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_DINPUT);
REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_WIN32);
- REGISTER_MODULE(m_mod_man, KEYBOARDINPUT_UWP);
REGISTER_MODULE(m_mod_man, KEYBOARD_NONE);
REGISTER_MODULE(m_mod_man, MOUSEINPUT_SDL);
@@ -278,7 +277,6 @@ void osd_common_t::register_options()
REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_WINHYBRID);
REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_DINPUT);
REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_XINPUT);
- REGISTER_MODULE(m_mod_man, JOYSTICKINPUT_UWP);
REGISTER_MODULE(m_mod_man, JOYSTICK_NONE);
REGISTER_MODULE(m_mod_man, OUTPUT_NONE);
diff --git a/src/osd/modules/monitor/monitor_dxgi.cpp b/src/osd/modules/monitor/monitor_dxgi.cpp
index 054afea1eb0..8c2c3cb334a 100644
--- a/src/osd/modules/monitor/monitor_dxgi.cpp
+++ b/src/osd/modules/monitor/monitor_dxgi.cpp
@@ -9,7 +9,7 @@
#include "modules/osdmodule.h"
#include "monitor_module.h"
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
// standard windows headers
#include <windows.h>
@@ -79,7 +79,6 @@ public:
if (!m_initialized)
return nullptr;
-#if defined(OSD_WINDOWS)
RECT p;
p.top = rect.top();
p.left = rect.left();
@@ -89,13 +88,6 @@ public:
auto nearest = monitor_from_handle(reinterpret_cast<std::uintptr_t>(MonitorFromRect(&p, MONITOR_DEFAULTTONEAREST)));
assert(nearest != nullptr);
return nearest;
-#elif defined(OSD_UWP)
- if (list().size() == 0)
- return nullptr;
-
- // For now just return first monitor
- return list()[0];
-#endif
}
// Currently this method implementation is duplicated from the win32 module
@@ -105,17 +97,9 @@ public:
if (!m_initialized)
return nullptr;
-#if defined(OSD_WINDOWS)
auto nearest = monitor_from_handle(reinterpret_cast<std::uintptr_t>(MonitorFromWindow(static_cast<const win_window_info &>(window).platform_window(), MONITOR_DEFAULTTONEAREST)));
assert(nearest != nullptr);
return nearest;
-#elif defined(OSD_UWP)
- if (list().size() == 0)
- return nullptr;
-
- // For now just return first monitor
- return list()[0];
-#endif
}
protected:
diff --git a/src/osd/modules/osdwindow.cpp b/src/osd/modules/osdwindow.cpp
index 610b7a0929a..797148382bf 100644
--- a/src/osd/modules/osdwindow.cpp
+++ b/src/osd/modules/osdwindow.cpp
@@ -61,7 +61,7 @@ std::unique_ptr<osd_renderer> osd_renderer::make_for_type(int mode, std::shared_
{
switch(mode)
{
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
case VIDEO_MODE_NONE:
return std::make_unique<renderer_none>(window);
#endif
diff --git a/src/osd/modules/osdwindow.h b/src/osd/modules/osdwindow.h
index 4b74d504a1c..730e8a67894 100644
--- a/src/osd/modules/osdwindow.h
+++ b/src/osd/modules/osdwindow.h
@@ -127,7 +127,7 @@ public:
virtual void update() = 0;
virtual void complete_destroy() = 0;
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
virtual bool win_has_menu() = 0;
#endif
diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp
index 1e34cb1ee7e..29cb8deda00 100644
--- a/src/osd/modules/render/drawbgfx.cpp
+++ b/src/osd/modules/render/drawbgfx.cpp
@@ -8,7 +8,7 @@
#include <bx/math.h>
#include <bx/readerwriter.h>
-#if defined(SDLMAME_WIN32) || defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(SDLMAME_WIN32) || defined(OSD_WINDOWS)
// standard windows headers
#include <windows.h>
#if defined(SDLMAME_WIN32)
@@ -208,22 +208,6 @@ inline bool sdlSetWindow(SDL_Window* _window)
return true;
}
-#elif defined(OSD_UWP)
-inline void winrtSetWindow(::IUnknown* _window)
-{
- bgfx::PlatformData pd;
- pd.ndt = NULL;
- pd.nwh = _window;
- pd.context = NULL;
- pd.backBuffer = NULL;
- pd.backBufferDS = NULL;
- bgfx::setPlatformData(pd);
-}
-
-IInspectable* AsInspectable(Platform::Agile<Windows::UI::Core::CoreWindow> win)
-{
- return reinterpret_cast<IInspectable*>(win.Get());
-}
#endif
int renderer_bgfx::create()
@@ -249,9 +233,6 @@ int renderer_bgfx::create()
}
#ifdef OSD_WINDOWS
winSetHwnd(std::static_pointer_cast<win_window_info>(win)->platform_window());
-#elif defined(OSD_UWP)
-
- winrtSetWindow(AsInspectable(std::static_pointer_cast<uwp_window_info>(win)->platform_window()));
#elif defined(OSD_MAC)
macSetWindow(std::static_pointer_cast<mac_window_info>(win)->platform_window());
#else
@@ -316,8 +297,6 @@ int renderer_bgfx::create()
{
#ifdef OSD_WINDOWS
m_framebuffer = m_targets->create_backbuffer(std::static_pointer_cast<win_window_info>(win)->platform_window(), m_width[win->index()], m_height[win->index()]);
-#elif defined(OSD_UWP)
- m_framebuffer = m_targets->create_backbuffer(AsInspectable(std::static_pointer_cast<uwp_window_info>(win)->platform_window()), m_width[win->index()], m_height[win->index()]);
#elif defined(OSD_MAC)
m_framebuffer = m_targets->create_backbuffer(GetOSWindow(std::static_pointer_cast<mac_window_info>(win)->platform_window()), m_width[win->index()], m_height[win->index()]);
#else
@@ -1001,8 +980,6 @@ bool renderer_bgfx::update_dimensions()
delete m_framebuffer;
#ifdef OSD_WINDOWS
m_framebuffer = m_targets->create_backbuffer(std::static_pointer_cast<win_window_info>(win)->platform_window(), width, height);
-#elif defined(OSD_UWP)
- m_framebuffer = m_targets->create_backbuffer(AsInspectable(std::static_pointer_cast<uwp_window_info>(win)->platform_window()), width, height);
#elif defined(OSD_MAC)
m_framebuffer = m_targets->create_backbuffer(GetOSWindow(std::static_pointer_cast<mac_window_info>(win)->platform_window()), width, height);
#else
diff --git a/src/osd/modules/render/drawnone.cpp b/src/osd/modules/render/drawnone.cpp
index e8bbfa15432..6d9d433ecca 100644
--- a/src/osd/modules/render/drawnone.cpp
+++ b/src/osd/modules/render/drawnone.cpp
@@ -25,15 +25,7 @@ render_primitive_list *renderer_none::get_primitives()
return nullptr;
RECT client;
-#if defined(OSD_WINDOWS)
GetClientRect(std::static_pointer_cast<win_window_info>(win)->platform_window(), &client);
-#elif defined(OSD_UWP)
- auto bounds = std::static_pointer_cast<uwp_window_info>(win)->platform_window()->Bounds;
- client.left = bounds.Left;
- client.right = bounds.Right;
- client.top = bounds.Top;
- client.bottom = bounds.Bottom;
-#endif
if ((rect_width(&client) == 0) || (rect_height(&client) == 0))
return nullptr;
win->target()->set_bounds(rect_width(&client), rect_height(&client), win->pixel_aspect());
diff --git a/src/osd/modules/sound/xaudio2_sound.cpp b/src/osd/modules/sound/xaudio2_sound.cpp
index 40697ac9aaf..2ec81fde836 100644
--- a/src/osd/modules/sound/xaudio2_sound.cpp
+++ b/src/osd/modules/sound/xaudio2_sound.cpp
@@ -9,7 +9,7 @@
#include "sound_module.h"
#include "modules/osdmodule.h"
-#if defined(OSD_WINDOWS) || defined(OSD_UWP)
+#if defined(OSD_WINDOWS)
// standard windows headers
#include <windows.h>