diff --git a/blackberry-qnx/bb10/.cproject b/blackberry-qnx/bb10/.cproject
index fd246a9fc9..375c5068cb 100644
--- a/blackberry-qnx/bb10/.cproject
+++ b/blackberry-qnx/bb10/.cproject
@@ -19,17 +19,13 @@
-
-
-
-
-
+
-
-
-
+
-
+
@@ -116,6 +97,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -213,8 +217,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -316,8 +340,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -419,8 +463,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -519,8 +583,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -621,8 +705,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -723,8 +827,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/blackberry-qnx/bb10/.project b/blackberry-qnx/bb10/.project
index bfd71b2f7c..3e336db315 100644
--- a/blackberry-qnx/bb10/.project
+++ b/blackberry-qnx/bb10/.project
@@ -29,4 +29,21 @@
org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
com.qnx.tools.ide.bbt.core.bbtnature
+
+
+ src/griffin.c
+ 1
+ PARENT-2-PROJECT_LOC/griffin/griffin.c
+
+
+ src/sinc_neon.S
+ 1
+ PARENT-2-PROJECT_LOC/audio/sinc_neon.S
+
+
+ src/utils_neon.S
+ 1
+ PARENT-2-PROJECT_LOC/audio/utils_neon.S
+
+
diff --git a/blackberry-qnx/qnx_input.c b/blackberry-qnx/qnx_input.c
index be05daae90..b18c1d9878 100644
--- a/blackberry-qnx/qnx_input.c
+++ b/blackberry-qnx/qnx_input.c
@@ -40,7 +40,6 @@ struct touches
typedef struct qnx_input
{
- unsigned pads_connected;
struct touches touch[MAX_TOUCH];
unsigned touch_count;
@@ -48,16 +47,17 @@ typedef struct qnx_input
/*The first touch_count indices of touch_map will be a valid, active index in touch array.
* Saves us from searching through touch array when polling state.
*/
- input_device_t *port_device[MAX_PADS];
} qnx_input_t;
input_device_t devices[MAX_PADS];
+input_device_t *port_device[MAX_PADS];
static unsigned screen_width, screen_height;
+unsigned pads_connected;
-static void qnx_input_autodetect_gamepad(void *data, input_device_t* controller);
-static void initController(void *data, input_device_t* controller);
+static void qnx_input_autodetect_gamepad(input_device_t* controller);
+static void initController(input_device_t* controller);
#ifdef HAVE_BB10
static void process_gamepad_event(void *data, screen_event_t screen_event, int type)
@@ -98,16 +98,12 @@ static void process_gamepad_event(void *data, screen_event_t screen_event, int t
g_extern.lifecycle_state ^= (1ULL << RARCH_MENU_TOGGLE);
}
-static void loadController(void *data, input_device_t* controller)
+static void loadController(input_device_t* controller)
{
int device;
- qnx_input_t *qnx = (qnx_input_t*)data;
(void)device;
- if (!qnx)
- return;
-
// Query libscreen for information about this device.
screen_get_device_property_iv(controller->handle, SCREEN_PROPERTY_TYPE, &controller->type);
screen_get_device_property_cv(controller->handle, SCREEN_PROPERTY_ID_STRING, sizeof(controller->id), controller->id);
@@ -127,7 +123,7 @@ static void loadController(void *data, input_device_t* controller)
}
//Screen service will map supported controllers, we still might need to adjust.
- qnx_input_autodetect_gamepad(qnx, controller);
+ qnx_input_autodetect_gamepad(controller);
if (controller->type == SCREEN_EVENT_GAMEPAD)
RARCH_LOG("Gamepad Device Connected:\n");
@@ -144,14 +140,12 @@ static void loadController(void *data, input_device_t* controller)
}
extern screen_context_t screen_ctx;
-
-static void discoverControllers(void *data)
+void discoverControllers(void)
{
// Get an array of all available devices.
int deviceCount;
unsigned i;
screen_event_t *event;
- qnx_input_t *qnx = (qnx_input_t*)data;
(void)event;
@@ -160,10 +154,10 @@ static void discoverControllers(void *data)
screen_get_context_property_pv(screen_ctx, SCREEN_PROPERTY_DEVICES, (void**)devices_found);
// Scan the list for gamepad and joystick devices.
- for(i = 0; i < qnx->pads_connected; ++i)
- initController(qnx, &devices[i]);
+ for(i = 0; i < pads_connected; ++i)
+ initController(&devices[i]);
- qnx->pads_connected = 0;
+ pads_connected = 0;
for (i = 0; i < deviceCount; i++)
{
@@ -172,11 +166,11 @@ static void discoverControllers(void *data)
if (type == SCREEN_EVENT_GAMEPAD || type == SCREEN_EVENT_JOYSTICK || type == SCREEN_EVENT_KEYBOARD)
{
- devices[qnx->pads_connected].handle = devices_found[i];
- devices[qnx->pads_connected].index = qnx->pads_connected;
- loadController(qnx, &devices[qnx->pads_connected]);
+ devices[pads_connected].handle = devices_found[i];
+ devices[pads_connected].index = pads_connected;
+ loadController(&devices[pads_connected]);
- if (qnx->pads_connected == MAX_PADS)
+ if (pads_connected == MAX_PADS)
break;
}
}
@@ -184,21 +178,16 @@ static void discoverControllers(void *data)
free(devices_found);
}
#else
-void init_playbook_keyboard(void *data)
+void init_playbook_keyboard()
{
- qnx_input_t *qnx = (qnx_input_t*)data;
strlcpy(devices[0].id, "0A5C-8502", sizeof(devices[0].id));
- qnx_input_autodetect_gamepad(qnx, &devices[0]);
- qnx->pads_connected = 1;
+ qnx_input_autodetect_gamepad(&devices[0]);
+ pads_connected = 1;
}
#endif
-static void initController(void *data, input_device_t* controller)
+static void initController(input_device_t* controller)
{
- qnx_input_t *qnx = (qnx_input_t*)data;
- if (!qnx)
- return;
-
// Initialize controller values.
#ifdef HAVE_BB10
controller->handle = 0;
@@ -215,13 +204,8 @@ static void initController(void *data, input_device_t* controller)
memset(controller->id, 0, sizeof(controller->id));
}
-static void qnx_input_autodetect_gamepad(void *data, input_device_t* controller)
+static void qnx_input_autodetect_gamepad(input_device_t* controller)
{
- qnx_input_t *qnx = (qnx_input_t*)data;
-
- if (!qnx)
- return;
-
//ID: A-BBBB-CCCC-D.D
//A is the device's index in the array returned by screen_get_context_property_pv()
//BBBB is the device's Vendor ID (in hexadecimal)
@@ -267,9 +251,9 @@ static void qnx_input_autodetect_gamepad(void *data, input_device_t* controller)
if (input_qnx.set_keybinds && (controller->device != DEVICE_NONE))
{
- input_qnx.set_keybinds((void*)controller, controller->device, qnx->pads_connected, 0,
+ input_qnx.set_keybinds((void*)controller, controller->device, pads_connected, 0,
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
- qnx->pads_connected++;
+ pads_connected++;
}
}
@@ -464,7 +448,7 @@ static void handle_screen_event(void *data, bps_event_t *event)
if (!devices[i].handle)
{
devices[i].handle = device;
- loadController(data, &devices[i]);
+ loadController(&devices[i]);
break;
}
}
@@ -476,7 +460,7 @@ static void handle_screen_event(void *data, bps_event_t *event)
if (device == devices[i].handle)
{
RARCH_LOG("Device %s: Disconnected.\n", devices[i].id);
- initController(data, &devices[i]);
+ initController(&devices[i]);
break;
}
}
@@ -561,12 +545,12 @@ static void *qnx_input_init(void)
for (i = 0; i < MAX_PADS; ++i)
{
- initController(qnx, &devices[i]);
- qnx->port_device[i] = 0;
+ initController(&devices[i]);
+ port_device[i] = 0;
}
#ifdef HAVE_BB10
//Find currently connected gamepads
- discoverControllers(qnx);
+ discoverControllers();
#else
init_playbook_keyboard();
#endif
@@ -610,15 +594,17 @@ static int16_t qnx_input_state(void *data, const struct retro_keybind **retro_ke
switch (device)
{
case RETRO_DEVICE_JOYPAD:
- if(qnx->port_device[port])
+ if(port_device[port])
{
- if (qnx->port_device[port]->device == DEVICE_KEYBOARD
+ if (port_device[port]->device == DEVICE_KEYBOARD
#ifdef HAVE_BB10
- || qnx->port_device[port]->device == DEVICE_KEYPAD
+ || port_device[port]->device == DEVICE_KEYPAD
#endif
- )
- return ((qnx->port_device[port]->buttons & (1 << id)) && (port < qnx->pads_connected) );
- return ((qnx->port_device[port]->buttons & retro_keybinds[port][id].joykey) && (port < qnx->pads_connected));
+ )
+ return ((port_device[port]->buttons & (1 << id)) && (port < pads_connected) );
+ else{
+ return ((port_device[port]->buttons & retro_keybinds[port][id].joykey) && (port < pads_connected));
+ }
}
break;
#ifdef HAVE_BB10
@@ -626,18 +612,18 @@ static int16_t qnx_input_state(void *data, const struct retro_keybind **retro_ke
//Need to return [-0x8000, 0x7fff]
//Gamepad API gives us [-128, 127] with (0,0) center
//Untested
- if(qnx->port_device[port])
+ if(port_device[port])
{
switch ((index << 1) | id)
{
case (RETRO_DEVICE_INDEX_ANALOG_LEFT << 1) | RETRO_DEVICE_ID_ANALOG_X:
- return qnx->port_device[port]->analog0[0] * 256;
+ return port_device[port]->analog0[0] * 256;
case (RETRO_DEVICE_INDEX_ANALOG_LEFT << 1) | RETRO_DEVICE_ID_ANALOG_Y:
- return qnx->port_device[port]->analog0[1] * 256;
+ return port_device[port]->analog0[1] * 256;
case (RETRO_DEVICE_INDEX_ANALOG_RIGHT << 1) | RETRO_DEVICE_ID_ANALOG_X:
- return qnx->port_device[port]->analog1[0] * 256;
+ return port_device[port]->analog1[0] * 256;
case (RETRO_DEVICE_INDEX_ANALOG_RIGHT << 1) | RETRO_DEVICE_ID_ANALOG_Y:
- return qnx->port_device[port]->analog1[1] * 256;
+ return port_device[port]->analog1[1] * 256;
default:
break;
}
@@ -724,7 +710,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
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;
controller->port = port;
- qnx->port_device[port] = controller;
+ port_device[port] = controller;
break;
case DEVICE_KEYPAD:
strlcpy(g_settings.input.device_names[port], "BlackBerry Q10 Keypad",
@@ -748,7 +734,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_P & 0xFF;
controller->port = port;
- qnx->port_device[port] = controller;
+ port_device[port] = controller;
break;
#endif
case DEVICE_KEYBOARD:
@@ -773,7 +759,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = KEYCODE_TILDE;
controller->port = port;
- qnx->port_device[port] = controller;
+ port_device[port] = controller;
break;
case DEVICE_IPEGA:
strlcpy(g_settings.input.device_names[port], "iPega PG-9017",
@@ -797,7 +783,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
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 = port;
- qnx->port_device[port] = controller;
+ port_device[port] = controller;
break;
#ifdef HAVE_BB10
case DEVICE_UNKNOWN:
@@ -822,7 +808,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
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 = NO_BTN; //TODO: Find a good mappnig
controller->port = port;
- qnx->port_device[port] = controller;
+ port_device[port] = controller;
break;
#endif
case DEVICE_NONE:
@@ -848,7 +834,7 @@ static void qnx_input_set_keybinds(void *data, unsigned device, unsigned port,
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
g_settings.input.binds[port][RARCH_MENU_TOGGLE].def_joykey = NO_BTN;
controller->port = -1;
- qnx->port_device[port] = 0;
+ port_device[port] = 0;
break;
}