diff --git a/retroarch.c b/retroarch.c index 52ee869dc8..a79abea035 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2745,203 +2745,7 @@ struct retro_keybind input_autoconf_binds[MAX_USERS][RARCH_BIND_LIST_END]; struct retro_subsystem_info subsystem_data[SUBSYSTEM_MAX_SUBSYSTEMS]; /* Forward declarations */ -#ifdef HAVE_DISCORD -#if defined(__cplusplus) && !defined(CXX_BUILD) -extern "C" -{ -#endif - void Discord_Register(const char *a, const char *b); -#if defined(__cplusplus) && !defined(CXX_BUILD) -} -#endif -#endif - -static void retroarch_fail(int error_code, const char *error); -static void retroarch_core_options_intl_init( - struct rarch_state *p_rarch, - const struct - retro_core_options_intl *core_options_intl); -static void ui_companion_driver_toggle( - settings_t *settings, - struct rarch_state *p_rarch, - bool force); - -#ifdef HAVE_ACCESSIBILITY -static void set_gamepad_input_override(struct rarch_state *p_rarch, - unsigned i, bool val); -#endif - -#ifdef HAVE_LIBNX -void libnx_apply_overclock(void); -#endif -#ifdef HAVE_ACCESSIBILITY -#ifdef HAVE_TRANSLATE -static bool is_narrator_running(struct rarch_state *p_rarch); -#endif -static bool accessibility_startup_message(struct rarch_state *p_rarch); -#endif - -#ifdef HAVE_NETWORKING -static void deinit_netplay(struct rarch_state *p_rarch); -#endif - -static void retroarch_deinit_drivers(struct rarch_state *p_rarch); - -static bool command_set_shader(const char *arg); - -static bool midi_driver_read(uint8_t *byte); -static bool midi_driver_write(uint8_t byte, uint32_t delta_time); -static bool midi_driver_output_enabled(void); -static bool midi_driver_input_enabled(void); -static bool midi_driver_set_all_sounds_off(struct rarch_state *p_rarch); -static const void *midi_driver_find_handle(int index); -static bool midi_driver_flush(void); - -static void retroarch_deinit_core_options(struct rarch_state *p_rarch); -static void retroarch_init_core_variables( - struct rarch_state *p_rarch, - const struct retro_variable *vars); -static void rarch_init_core_options( - struct rarch_state *p_rarch, - const struct retro_core_option_definition *option_defs); -#ifdef HAVE_RUNAHEAD -#if defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB) -static bool secondary_core_create(struct rarch_state *p_rarch); -#endif -static int16_t input_state_get_last(unsigned port, - unsigned device, unsigned index, unsigned id); -#endif -static int16_t input_state(unsigned port, unsigned device, - unsigned idx, unsigned id); -static void video_driver_frame(const void *data, unsigned width, - unsigned height, size_t pitch); -static void retro_frame_null(const void *data, unsigned width, - unsigned height, size_t pitch); -static void retro_run_null(void); -static void retro_input_poll_null(void); - -static uint64_t input_driver_get_capabilities(void); - -static void uninit_libretro_symbols( - struct rarch_state *p_rarch, - struct retro_core_t *current_core); -static bool init_libretro_symbols( - struct rarch_state *p_rarch, - enum rarch_core_type type, - struct retro_core_t *current_core); - -static void ui_companion_driver_deinit(struct rarch_state *p_rarch); -static void ui_companion_driver_init_first( - settings_t *settings, - struct rarch_state *p_rarch); - -static bool audio_driver_stop(struct rarch_state *p_rarch); -static bool audio_driver_start(struct rarch_state *p_rarch, - bool is_shutdown); - -static bool recording_init(settings_t *settings, - struct rarch_state *p_rarch); -static bool recording_deinit(struct rarch_state *p_rarch); - -#ifdef HAVE_OVERLAY -static void retroarch_overlay_init(struct rarch_state *p_rarch); -static void retroarch_overlay_deinit(struct rarch_state *p_rarch); -static void input_overlay_set_alpha_mod(struct rarch_state *p_rarch, - input_overlay_t *ol, float mod); -static void input_overlay_set_scale_factor(struct rarch_state *p_rarch, - input_overlay_t *ol, const overlay_layout_desc_t *layout_desc); -static void input_overlay_load_active( - struct rarch_state *p_rarch, - input_overlay_t *ol, float opacity); -static void input_overlay_auto_rotate_(struct rarch_state *p_rarch, - input_overlay_t *ol); -#endif - -#ifdef HAVE_AUDIOMIXER -static void audio_mixer_play_stop_sequential_cb( - audio_mixer_sound_t *sound, unsigned reason); -static void audio_mixer_play_stop_cb( - audio_mixer_sound_t *sound, unsigned reason); -static void audio_mixer_menu_stop_cb( - audio_mixer_sound_t *sound, unsigned reason); -#endif - -static void video_driver_gpu_record_deinit(struct rarch_state *p_rarch); -static retro_proc_address_t video_driver_get_proc_address(const char *sym); -static uintptr_t video_driver_get_current_framebuffer(void); -static bool video_driver_find_driver(struct rarch_state *p_rarch); - -#ifdef HAVE_BSV_MOVIE -static void bsv_movie_deinit(struct rarch_state *p_rarch); -static bool bsv_movie_init(struct rarch_state *p_rarch); -static bool bsv_movie_check(struct rarch_state *p_rarch); -#endif - -static void driver_uninit(struct rarch_state *p_rarch, int flags); -static void drivers_init(struct rarch_state *p_rarch, int flags); - -#if defined(HAVE_RUNAHEAD) -static void core_free_retro_game_info(struct retro_game_info *dest); -#endif -static bool core_load(struct rarch_state *p_rarch, - unsigned poll_type_behavior); -static bool core_unload_game(struct rarch_state *p_rarch); - -static bool rarch_environment_cb(unsigned cmd, void *data); - -static bool driver_location_get_position(double *lat, double *lon, - double *horiz_accuracy, double *vert_accuracy); -static void driver_location_set_interval(unsigned interval_msecs, - unsigned interval_distance); -static void driver_location_stop(void); -static bool driver_location_start(void); -static void driver_camera_stop(void); -static bool driver_camera_start(void); -static int16_t input_joypad_analog_button( - struct rarch_state *p_rarch, - settings_t *settings, - const input_device_driver_t *drv, - rarch_joypad_info_t *joypad_info, - unsigned port, unsigned idx, unsigned ident, - const struct retro_keybind *binds); -static int16_t input_joypad_analog_axis( - struct rarch_state *p_rarch, - settings_t *settings, - const input_device_driver_t *drv, - rarch_joypad_info_t *joypad_info, - unsigned port, unsigned idx, unsigned ident, - const struct retro_keybind *binds); - -#ifdef HAVE_ACCESSIBILITY -static bool is_accessibility_enabled(struct rarch_state *p_rarch); -static bool accessibility_speak_priority( - struct rarch_state *p_rarch, - const char* speak_text, int priority); -#endif - -#ifdef HAVE_MENU -static bool input_mouse_button_raw( - struct rarch_state *p_rarch, - unsigned port, unsigned id); -static void input_keyboard_line_append( - struct rarch_state *p_rarch, - const char *word); -static const char **input_keyboard_start_line(void *userdata, - struct rarch_state *p_rarch, - input_keyboard_line_complete_t cb); - -static void menu_driver_list_free( - struct rarch_state *p_rarch, - menu_ctx_list_t *list); -static void menu_input_post_iterate( - struct rarch_state *p_rarch, - int *ret, unsigned action, - retro_time_t current_time); -static void menu_input_reset(struct rarch_state *p_rarch); -#endif - -static void video_driver_restore_cached(struct rarch_state *p_rarch, - settings_t *settings); +#include "retroarch_fwd_decls.h" #ifdef HAVE_NETWORKING struct netplay_room* netplay_get_host_room(void) @@ -3111,11 +2915,6 @@ static int16_t input_state_wrap( /* DRIVERS */ -/* Forward declaration */ -static const void *find_driver_nonempty( - const char *label, int i, - char *s, size_t len); - /** * driver_find_index: * @label : string of driver type to be found. diff --git a/retroarch_fwd_decls.h b/retroarch_fwd_decls.h new file mode 100644 index 0000000000..ac32728ab3 --- /dev/null +++ b/retroarch_fwd_decls.h @@ -0,0 +1,206 @@ +#ifndef _RETROARCH_FWD_DECLS_H +#define _RETROARCH_FWD_DECLS_H + +#ifdef HAVE_DISCORD +#if defined(__cplusplus) && !defined(CXX_BUILD) +extern "C" +{ +#endif + void Discord_Register(const char *a, const char *b); +#if defined(__cplusplus) && !defined(CXX_BUILD) +} +#endif +#endif + +static void retroarch_fail(int error_code, const char *error); +static void retroarch_core_options_intl_init( + struct rarch_state *p_rarch, + const struct + retro_core_options_intl *core_options_intl); +static void ui_companion_driver_toggle( + settings_t *settings, + struct rarch_state *p_rarch, + bool force); + +#ifdef HAVE_ACCESSIBILITY +static void set_gamepad_input_override(struct rarch_state *p_rarch, + unsigned i, bool val); +#endif + +#ifdef HAVE_LIBNX +void libnx_apply_overclock(void); +#endif +#ifdef HAVE_ACCESSIBILITY +#ifdef HAVE_TRANSLATE +static bool is_narrator_running(struct rarch_state *p_rarch); +#endif +static bool accessibility_startup_message(struct rarch_state *p_rarch); +#endif + +#ifdef HAVE_NETWORKING +static void deinit_netplay(struct rarch_state *p_rarch); +#endif + +static void retroarch_deinit_drivers(struct rarch_state *p_rarch); + +static bool command_set_shader(const char *arg); + +static bool midi_driver_read(uint8_t *byte); +static bool midi_driver_write(uint8_t byte, uint32_t delta_time); +static bool midi_driver_output_enabled(void); +static bool midi_driver_input_enabled(void); +static bool midi_driver_set_all_sounds_off(struct rarch_state *p_rarch); +static const void *midi_driver_find_handle(int index); +static bool midi_driver_flush(void); + +static void retroarch_deinit_core_options(struct rarch_state *p_rarch); +static void retroarch_init_core_variables( + struct rarch_state *p_rarch, + const struct retro_variable *vars); +static void rarch_init_core_options( + struct rarch_state *p_rarch, + const struct retro_core_option_definition *option_defs); +#ifdef HAVE_RUNAHEAD +#if defined(HAVE_DYNAMIC) || defined(HAVE_DYLIB) +static bool secondary_core_create(struct rarch_state *p_rarch); +#endif +static int16_t input_state_get_last(unsigned port, + unsigned device, unsigned index, unsigned id); +#endif +static int16_t input_state(unsigned port, unsigned device, + unsigned idx, unsigned id); +static void video_driver_frame(const void *data, unsigned width, + unsigned height, size_t pitch); +static void retro_frame_null(const void *data, unsigned width, + unsigned height, size_t pitch); +static void retro_run_null(void); +static void retro_input_poll_null(void); + +static uint64_t input_driver_get_capabilities(void); + +static void uninit_libretro_symbols( + struct rarch_state *p_rarch, + struct retro_core_t *current_core); +static bool init_libretro_symbols( + struct rarch_state *p_rarch, + enum rarch_core_type type, + struct retro_core_t *current_core); + +static void ui_companion_driver_deinit(struct rarch_state *p_rarch); +static void ui_companion_driver_init_first( + settings_t *settings, + struct rarch_state *p_rarch); + +static bool audio_driver_stop(struct rarch_state *p_rarch); +static bool audio_driver_start(struct rarch_state *p_rarch, + bool is_shutdown); + +static bool recording_init(settings_t *settings, + struct rarch_state *p_rarch); +static bool recording_deinit(struct rarch_state *p_rarch); + +#ifdef HAVE_OVERLAY +static void retroarch_overlay_init(struct rarch_state *p_rarch); +static void retroarch_overlay_deinit(struct rarch_state *p_rarch); +static void input_overlay_set_alpha_mod(struct rarch_state *p_rarch, + input_overlay_t *ol, float mod); +static void input_overlay_set_scale_factor(struct rarch_state *p_rarch, + input_overlay_t *ol, const overlay_layout_desc_t *layout_desc); +static void input_overlay_load_active( + struct rarch_state *p_rarch, + input_overlay_t *ol, float opacity); +static void input_overlay_auto_rotate_(struct rarch_state *p_rarch, + input_overlay_t *ol); +#endif + +#ifdef HAVE_AUDIOMIXER +static void audio_mixer_play_stop_sequential_cb( + audio_mixer_sound_t *sound, unsigned reason); +static void audio_mixer_play_stop_cb( + audio_mixer_sound_t *sound, unsigned reason); +static void audio_mixer_menu_stop_cb( + audio_mixer_sound_t *sound, unsigned reason); +#endif + +static void video_driver_gpu_record_deinit(struct rarch_state *p_rarch); +static retro_proc_address_t video_driver_get_proc_address(const char *sym); +static uintptr_t video_driver_get_current_framebuffer(void); +static bool video_driver_find_driver(struct rarch_state *p_rarch); + +#ifdef HAVE_BSV_MOVIE +static void bsv_movie_deinit(struct rarch_state *p_rarch); +static bool bsv_movie_init(struct rarch_state *p_rarch); +static bool bsv_movie_check(struct rarch_state *p_rarch); +#endif + +static void driver_uninit(struct rarch_state *p_rarch, int flags); +static void drivers_init(struct rarch_state *p_rarch, int flags); + +#if defined(HAVE_RUNAHEAD) +static void core_free_retro_game_info(struct retro_game_info *dest); +#endif +static bool core_load(struct rarch_state *p_rarch, + unsigned poll_type_behavior); +static bool core_unload_game(struct rarch_state *p_rarch); + +static bool rarch_environment_cb(unsigned cmd, void *data); + +static bool driver_location_get_position(double *lat, double *lon, + double *horiz_accuracy, double *vert_accuracy); +static void driver_location_set_interval(unsigned interval_msecs, + unsigned interval_distance); +static void driver_location_stop(void); +static bool driver_location_start(void); +static void driver_camera_stop(void); +static bool driver_camera_start(void); +static int16_t input_joypad_analog_button( + struct rarch_state *p_rarch, + settings_t *settings, + const input_device_driver_t *drv, + rarch_joypad_info_t *joypad_info, + unsigned port, unsigned idx, unsigned ident, + const struct retro_keybind *binds); +static int16_t input_joypad_analog_axis( + struct rarch_state *p_rarch, + settings_t *settings, + const input_device_driver_t *drv, + rarch_joypad_info_t *joypad_info, + unsigned port, unsigned idx, unsigned ident, + const struct retro_keybind *binds); + +#ifdef HAVE_ACCESSIBILITY +static bool is_accessibility_enabled(struct rarch_state *p_rarch); +static bool accessibility_speak_priority( + struct rarch_state *p_rarch, + const char* speak_text, int priority); +#endif + +#ifdef HAVE_MENU +static bool input_mouse_button_raw( + struct rarch_state *p_rarch, + unsigned port, unsigned id); +static void input_keyboard_line_append( + struct rarch_state *p_rarch, + const char *word); +static const char **input_keyboard_start_line(void *userdata, + struct rarch_state *p_rarch, + input_keyboard_line_complete_t cb); + +static void menu_driver_list_free( + struct rarch_state *p_rarch, + menu_ctx_list_t *list); +static void menu_input_post_iterate( + struct rarch_state *p_rarch, + int *ret, unsigned action, + retro_time_t current_time); +static void menu_input_reset(struct rarch_state *p_rarch); +#endif + +static void video_driver_restore_cached(struct rarch_state *p_rarch, + settings_t *settings); + +static const void *find_driver_nonempty( + const char *label, int i, + char *s, size_t len); + +#endif