mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
(BlackBerry) Hide overlay on Q10 and when controllers are mapped. Add RGUI toggle to controllers.
This commit is contained in:
parent
4e0e2ff245
commit
d5775ea531
@ -114,8 +114,8 @@ Page
|
||||
onTriggered:
|
||||
{
|
||||
var sym, data;
|
||||
sym = RetroArch.mapButton(0, players.selectedValue, indexPath);
|
||||
data = dataModel.data(indexPath);
|
||||
sym = RetroArch.mapButton(0, players.selectedValue, data["index"]);
|
||||
data["button"] = RetroArch.buttonToString(0, sym);
|
||||
dataModel.replace(indexPath, data);
|
||||
}
|
||||
|
@ -8,30 +8,6 @@
|
||||
#include "input/input_common.h"
|
||||
#include "../../frontend_qnx.h"
|
||||
|
||||
/*
|
||||
ButtonMap_t buttons[] = {
|
||||
{ SCREEN_A_GAME_BUTTON, "A button" },
|
||||
{ SCREEN_B_GAME_BUTTON, "B button" },
|
||||
{ SCREEN_C_GAME_BUTTON, "C button" },
|
||||
{ SCREEN_X_GAME_BUTTON, "X button" },
|
||||
{ SCREEN_Y_GAME_BUTTON, "Y button" },
|
||||
{ SCREEN_Z_GAME_BUTTON, "Z button" },
|
||||
{ SCREEN_MENU1_GAME_BUTTON, "Menu1 button" },
|
||||
{ SCREEN_MENU2_GAME_BUTTON, "Menu2 button" },
|
||||
{ SCREEN_MENU3_GAME_BUTTON, "Menu3 button" },
|
||||
{ SCREEN_MENU4_GAME_BUTTON, "Menu4 button" },
|
||||
{ SCREEN_L1_GAME_BUTTON, "L1 Button" },
|
||||
{ SCREEN_L2_GAME_BUTTON, "L2 Button" },
|
||||
{ SCREEN_L3_GAME_BUTTON, "L3 Button" },
|
||||
{ SCREEN_R1_GAME_BUTTON, "R1 Button" },
|
||||
{ SCREEN_R2_GAME_BUTTON, "R2 Button" },
|
||||
{ SCREEN_R3_GAME_BUTTON, "R3 Button" },
|
||||
{ SCREEN_DPAD_UP_GAME_BUTTON, "D-Pad Up" },
|
||||
{ SCREEN_DPAD_DOWN_GAME_BUTTON, "D-Pad Down" },
|
||||
{ SCREEN_DPAD_LEFT_GAME_BUTTON, "D-Pad Left" },
|
||||
{ SCREEN_DPAD_RIGHT_GAME_BUTTON, "D-Pad Right" },
|
||||
};*/
|
||||
|
||||
ButtonMap::ButtonMap(screen_context_t screen_ctx, QString groupId, int coid)
|
||||
{
|
||||
this->screen_cxt = screen_ctx;
|
||||
@ -224,8 +200,13 @@ void ButtonMap::mapDevice(int index, int player)
|
||||
map.insert("label",QVariant(desc));
|
||||
map.insert("button", buttonToString(g_settings.input.binds[0][i].joykey));
|
||||
map.insert("type", QVariant("item"));
|
||||
qDebug() << map;
|
||||
qDebug() << "Joykey: " << g_settings.input.binds[0][i].joykey;
|
||||
map.insert("index", QVariant(i));
|
||||
buttonDataModel->append(map);
|
||||
}
|
||||
|
||||
map.insert("label",QVariant("RetroArch Menu"));
|
||||
map.insert("button", buttonToString(g_settings.input.binds[0][RARCH_MENU_TOGGLE].joykey));
|
||||
map.insert("type", QVariant("item"));
|
||||
map.insert("index", QVariant(RARCH_MENU_TOGGLE));
|
||||
buttonDataModel->append(map);
|
||||
}
|
||||
|
@ -374,9 +374,12 @@ void RetroArch::initRASettings()
|
||||
|
||||
HardwareInfo *hwInfo = new HardwareInfo();
|
||||
|
||||
//TODO: Check of we have a controller active.
|
||||
if(!hwInfo->isPhysicalKeyboardDevice())
|
||||
//If Physical keyboard or a device mapped to player 1, hide overlay
|
||||
//TODO: Should there be a minimized/quick settings only overlay?
|
||||
if(!hwInfo->isPhysicalKeyboardDevice() && !port_device[0])
|
||||
strlcpy(g_settings.input.overlay, GET_CORE_INFO(coreSelectedIndex, "default_overlay").toAscii().constData(), sizeof(g_settings.input.overlay));
|
||||
else
|
||||
*g_settings.input.overlay = '\0';
|
||||
}
|
||||
|
||||
int RetroArch::mapButton(void* deviceVp, int player, int button)
|
||||
|
@ -70,6 +70,11 @@ static void process_gamepad_event(screen_event_t screen_event, int type)
|
||||
|
||||
if (controller->analogCount == 2)
|
||||
screen_get_event_property_iv(screen_event, SCREEN_PROPERTY_ANALOG1, controller->analog1);
|
||||
|
||||
//Only player 1
|
||||
//TODO: Am I missing something? Is there a better way?
|
||||
if((controller->port == 0) && (controller->buttons & g_settings.input.binds[0][RARCH_MENU_TOGGLE].joykey))
|
||||
g_extern.lifecycle_state ^= (1ULL << RARCH_MENU_TOGGLE);
|
||||
}
|
||||
|
||||
static void loadController(input_device_t* controller)
|
||||
@ -267,6 +272,10 @@ static void process_keyboard_event(screen_event_t event, int type)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//TODO: Am I missing something? Is there a better way?
|
||||
if((controller->port == 0) && ((unsigned int)g_settings.input.binds[0][RARCH_MENU_TOGGLE].joykey == (unsigned int)(sym&0xFF)))
|
||||
g_extern.lifecycle_state ^= (1ULL << RARCH_MENU_TOGGLE);
|
||||
}
|
||||
|
||||
static void process_touch_event(screen_event_t event, int type)
|
||||
@ -503,15 +512,16 @@ static int16_t qnx_input_state(void *data, const struct retro_keybind **retro_ke
|
||||
{
|
||||
if (port_device[port]->device == DEVICE_KEYBOARD || port_device[port]->device == DEVICE_KEYPAD)
|
||||
return ((port_device[port]->buttons & (1 << id)) && (port < pads_connected) );
|
||||
else
|
||||
else{
|
||||
return ((port_device[port]->buttons & retro_keybinds[port][id].joykey) && (port < pads_connected));
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_BB10
|
||||
case RETRO_DEVICE_ANALOG:
|
||||
//Need to return [-0x8000, 0x7fff]
|
||||
//Gamepad API gives us [-128, 127] with (0,0) center
|
||||
//Untested
|
||||
if(port_device[port] != (input_device_t*)-1)
|
||||
if(port_device[port])
|
||||
{
|
||||
switch ((index << 1) | id)
|
||||
{
|
||||
@ -550,7 +560,7 @@ static int16_t qnx_input_state(void *data, const struct retro_keybind **retro_ke
|
||||
|
||||
static bool qnx_input_key_pressed(void *data, int key)
|
||||
{
|
||||
return ((g_extern.lifecycle_state | driver.overlay_state) & (1ULL << key));
|
||||
return ((g_extern.lifecycle_state | driver.overlay_state ) & (1ULL << key));
|
||||
}
|
||||
|
||||
static void qnx_input_free_input(void *data)
|
||||
@ -638,6 +648,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = SCREEN_R2_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = SCREEN_L3_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = SCREEN_R3_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = SCREEN_MENU3_GAME_BUTTON;
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
controller->port = port;
|
||||
port_device[port] = controller;
|
||||
@ -662,6 +673,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_P & 0xFF;
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
controller->port = port;
|
||||
port_device[port] = controller;
|
||||
@ -687,6 +699,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_TILDE;
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
controller->port = port;
|
||||
port_device[port] = controller;
|
||||
@ -712,6 +725,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = SCREEN_R2_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = SCREEN_L3_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = SCREEN_R3_GAME_BUTTON;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = 0; //TODO: Find a good mappnig
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
controller->port = port;
|
||||
port_device[port] = controller;
|
||||
@ -737,6 +751,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = 0;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = 0;
|
||||
controller->port = -1;
|
||||
port_device[port] = 0;
|
||||
break;
|
||||
@ -748,6 +763,9 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].id = RARCH_MENU_TOGGLE;
|
||||
g_settings.input.binds[port][RARCH_MENU_TOGGLE].joykey = g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey;
|
||||
}
|
||||
|
||||
#ifdef HAVE_BB10
|
||||
|
Loading…
x
Reference in New Issue
Block a user