mirror of
https://github.com/libretro/RetroArch
synced 2025-04-10 15:45:19 +00:00
Build fix for overlay.
Compute keyboard mod state once. Fix C++ 'new' usage.
This commit is contained in:
parent
de703eee52
commit
5b4ebb3fa1
@ -17,6 +17,7 @@
|
|||||||
#define INPUT_OVERLAY_H__
|
#define INPUT_OVERLAY_H__
|
||||||
|
|
||||||
#include "../boolean.h"
|
#include "../boolean.h"
|
||||||
|
#include "../libretro.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
33
retroarch.c
33
retroarch.c
@ -36,6 +36,7 @@
|
|||||||
#include "cheats.h"
|
#include "cheats.h"
|
||||||
#include "compat/getopt_rarch.h"
|
#include "compat/getopt_rarch.h"
|
||||||
#include "compat/posix_string.h"
|
#include "compat/posix_string.h"
|
||||||
|
#include "input/keyboard_line.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#ifdef _XBOX
|
#ifdef _XBOX
|
||||||
@ -526,28 +527,28 @@ static inline void input_poll_overlay(void)
|
|||||||
polled = true;
|
polled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t key_mod = 0;
|
||||||
|
key_mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LSHIFT) ||
|
||||||
|
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RSHIFT)) ? RETROKMOD_SHIFT : 0;
|
||||||
|
key_mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LCTRL) ||
|
||||||
|
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RCTRL)) ? RETROKMOD_CTRL : 0;
|
||||||
|
key_mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LALT) ||
|
||||||
|
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RALT)) ? RETROKMOD_ALT : 0;
|
||||||
|
key_mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LMETA) ||
|
||||||
|
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RMETA)) ? RETROKMOD_META : 0;
|
||||||
|
// CAPSLOCK SCROLLOCK NUMLOCK
|
||||||
for (i = 0; i < ARRAY_SIZE(driver.overlay_state.keys); i++)
|
for (i = 0; i < ARRAY_SIZE(driver.overlay_state.keys); i++)
|
||||||
|
{
|
||||||
if (driver.overlay_state.keys[i] != old_key_state.keys[i])
|
if (driver.overlay_state.keys[i] != old_key_state.keys[i])
|
||||||
{
|
{
|
||||||
uint32_t orig = old_key_state.keys[i];
|
uint32_t orig_bits = old_key_state.keys[i];
|
||||||
uint32_t new = driver.overlay_state.keys[i];
|
uint32_t new_bits = driver.overlay_state.keys[i];
|
||||||
|
|
||||||
uint16_t mod = 0;
|
|
||||||
mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LSHIFT) ||
|
|
||||||
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RSHIFT)) ? RETROKMOD_SHIFT : 0;
|
|
||||||
mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LCTRL) ||
|
|
||||||
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RCTRL)) ? RETROKMOD_CTRL : 0;
|
|
||||||
mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LALT) ||
|
|
||||||
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RALT)) ? RETROKMOD_ALT : 0;
|
|
||||||
mod |= (OVERLAY_GET_KEY(&driver.overlay_state, RETROK_LMETA) ||
|
|
||||||
OVERLAY_GET_KEY(&driver.overlay_state, RETROK_RMETA)) ? RETROKMOD_META : 0;
|
|
||||||
// CAPSLOCK SCROLLOCK NUMLOCK
|
|
||||||
|
|
||||||
for (j = 0; j < 32; j++)
|
for (j = 0; j < 32; j++)
|
||||||
if ((orig & (1 << j)) != (new & (1 << j)))
|
if ((orig_bits & (1 << j)) != (new_bits & (1 << j)))
|
||||||
input_keyboard_event(new & (1 << j), i * 32 + j, 0, mod);
|
input_keyboard_event(new_bits & (1 << j), i * 32 + j, 0, key_mod);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (polled)
|
if (polled)
|
||||||
input_overlay_post_poll(driver.overlay);
|
input_overlay_post_poll(driver.overlay);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user