RetroArch/frontend/menu/disp/menu_display.h
Vladimir Panteleev d0e970f175 Fix/reimplement input flushing
This fixes:

- menu toggle erratically not working on Android
- stray input going to libretro core when resuming content
- bound keys triggering as soon as they're bound on Android
- menu key repeat also repeating keys which should not be repeated
- issues caused by relying on timeouts for flushing

Architectural changes:

- menu_ctx_driver_t::input_postprocess now takes state and old_state
  (this allows getting rid of menu_handle_t::trigger_state)

Related changes:

- remove some no-op input_postprocess handlers (same effect as NULL)
- menu_iterate now uses the parameters passed to it, instead of
  polling menu_input
- menu_input is now merged into meta_input_keys_pressed
2014-09-29 12:58:52 +00:00

44 lines
1.2 KiB
C

#ifndef DRIVER_MENU_DISPLAY_H__
#define DRIVER_MENU_DISPLAY_H__
#ifdef __cplusplus
extern "C" {
#endif
typedef struct menu_ctx_driver
{
void (*set_texture)(void*);
void (*render_messagebox)(const char*);
void (*render)(void);
void (*frame)(void);
void* (*init)(void);
void (*free)(void*);
void (*context_reset)(void*);
void (*context_destroy)(void*);
void (*populate_entries)(void*, const char *, const char *,
unsigned);
void (*iterate)(void*, unsigned);
int (*input_postprocess)(uint64_t, uint64_t);
void (*navigation_clear)(void *);
void (*navigation_decrement)(void *);
void (*navigation_increment)(void *);
void (*navigation_set)(void *);
void (*navigation_set_last)(void *);
void (*navigation_descend_alphabet)(void *, size_t *);
void (*navigation_ascend_alphabet)(void *, size_t *);
void (*list_insert)(void *, const char *, const char *, size_t);
void (*list_delete)(void *, size_t);
void (*list_clear)(void *);
void (*list_set_selection)(void *);
void (*init_core_info)(void *);
const menu_ctx_driver_backend_t *backend;
const char *ident;
} menu_ctx_driver_t;
#ifdef __cplusplus
}
#endif
#endif