return b;
}
-static int in_sdl_update_analog(void *drv_data, int axis_id, int *result)
+static int in_sdl_update_pointer(void *drv_data, int id, int *result)
{
struct in_sdl_state *state = drv_data;
int max;
*result = 0;
- switch (axis_id) {
+ switch (id) {
// absolute position, clipped at the window/screen border
case 0: if ((max = state->revent.resize.w))
*result = state->mevent.motion.x * 2*1024/max - 1024;
.get_key_names = in_sdl_get_key_names,
.update = in_sdl_update,
.update_kbd = in_sdl_update_kbd,
- .update_analog = in_sdl_update_analog,
+ .update_pointer = in_sdl_update_pointer,
.update_keycode = in_sdl_update_keycode,
.menu_translate = in_sdl_menu_translate,
.clean_binds = in_sdl_clean_binds,
return DRV(dev->drv_id).update_analog(dev->drv_data, axis_id, result);
}
+int in_update_pointer(int dev_id, int id, int *result)
+{
+ in_dev_t *dev = get_dev(dev_id);
+
+ if (dev == NULL || !dev->probed)
+ return -1;
+
+ return DRV(dev->drv_id).update_pointer(dev->drv_data, id, result);
+}
+
static int in_update_kc_async(int *dev_id_out, int *is_down_out, int timeout_ms)
{
int i, is_down, result;
static int in_def_get_config(void *drv_data, int what, int *val) { return -1; }
static int in_def_set_config(void *drv_data, int what, int val) { return -1; }
static int in_def_update_analog(void *drv_data, int axis_id, int *result) { return -1; }
+static int in_def_update_pointer(void *drv_data, int id, int *result) { return -1; }
static int in_def_update_keycode(void *drv_data, int *is_down) { return 0; }
static int in_def_menu_translate(void *drv_data, int keycode, char *ccode) { return 0; }
static int in_def_get_key_code(const char *key_name) { return -1; }
CHECK_ADD_STUB(new_drivers[in_driver_count], get_config);
CHECK_ADD_STUB(new_drivers[in_driver_count], set_config);
CHECK_ADD_STUB(new_drivers[in_driver_count], update_analog);
+ CHECK_ADD_STUB(new_drivers[in_driver_count], update_pointer);
CHECK_ADD_STUB(new_drivers[in_driver_count], update_keycode);
CHECK_ADD_STUB(new_drivers[in_driver_count], menu_translate);
CHECK_ADD_STUB(new_drivers[in_driver_count], get_key_code);
int (*update)(void *drv_data, const int *binds, int *result);
int (*update_kbd)(void *drv_data, const int *binds, int *result);
int (*update_analog)(void *drv_data, int axis_id, int *result);
+ int (*update_pointer)(void *drv_data, int axis_id, int *result);
/* return -1 on no event, -2 on error */
int (*update_keycode)(void *drv_data, int *is_down);
int (*menu_translate)(void *drv_data, int keycode, char *charcode);
void in_probe(void);
int in_update(int *result);
int in_update_analog(int dev_id, int axis_id, int *value);
+int in_update_pointer(int dev_id, int id, int *result);
int in_update_keycode(int *dev_id, int *is_down, char *charcode, int timeout_ms);
int in_update_kbd(int *result);
int in_menu_wait_any(char *charcode, int timeout_ms);