/* RetroArch - A frontend for libretro. * Copyright (C) 2010-2014 - Hans-Kristian Arntzen * Copyright (C) 2011-2016 - Daniel De Matteis * Copyright (C) 2016-2019 - Brad Parker * * RetroArch is free software: you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Found- * ation, either version 3 of the License, or (at your option) any later version. * * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with RetroArch. * If not, see . */ #ifndef COMMAND_H__ #define COMMAND_H__ #include #include #include #ifdef HAVE_CONFIG_H #include "config.h" #endif RETRO_BEGIN_DECLS typedef struct command command_t; typedef struct command_handle { command_t *handle; unsigned id; } command_handle_t; enum event_command { CMD_EVENT_NONE = 0, /* Resets RetroArch. */ CMD_EVENT_RESET, CMD_EVENT_SET_PER_GAME_RESOLUTION, CMD_EVENT_SET_FRAME_LIMIT, /* Loads core. */ CMD_EVENT_LOAD_CORE, CMD_EVENT_LOAD_CORE_PERSIST, CMD_EVENT_UNLOAD_CORE, CMD_EVENT_LOAD_STATE, /* Swaps the current state with what's on the undo load buffer */ CMD_EVENT_UNDO_LOAD_STATE, /* Rewrites a savestate on disk */ CMD_EVENT_UNDO_SAVE_STATE, CMD_EVENT_SAVE_STATE, CMD_EVENT_SAVE_STATE_DECREMENT, CMD_EVENT_SAVE_STATE_INCREMENT, /* Takes screenshot. */ CMD_EVENT_TAKE_SCREENSHOT, /* Quits RetroArch. */ CMD_EVENT_QUIT, /* Reinitialize all drivers. */ CMD_EVENT_REINIT_FROM_TOGGLE, /* Reinitialize all drivers. */ CMD_EVENT_REINIT, /* Toggles cheevos hardcore mode. */ CMD_EVENT_CHEEVOS_HARDCORE_MODE_TOGGLE, /* Deinitialize rewind. */ CMD_EVENT_REWIND_DEINIT, /* Initializes rewind. */ CMD_EVENT_REWIND_INIT, /* Toggles rewind. */ CMD_EVENT_REWIND_TOGGLE, /* Initializes autosave. */ CMD_EVENT_AUTOSAVE_INIT, /* Stops audio. */ CMD_EVENT_AUDIO_STOP, /* Starts audio. */ CMD_EVENT_AUDIO_START, /* Mutes audio. */ CMD_EVENT_AUDIO_MUTE_TOGGLE, /* Toggles FPS counter. */ CMD_EVENT_FPS_TOGGLE, /* Gathers diagnostic info about the system and RetroArch configuration, then sends it to our servers. */ CMD_EVENT_SEND_DEBUG_INFO, /* Toggles netplay hosting. */ CMD_EVENT_NETPLAY_HOST_TOGGLE, /* Initializes overlay. */ CMD_EVENT_OVERLAY_INIT, /* Deinitializes overlay. */ CMD_EVENT_OVERLAY_DEINIT, /* Sets current scale factor for overlay. */ CMD_EVENT_OVERLAY_SET_SCALE_FACTOR, /* Sets current alpha modulation for overlay. */ CMD_EVENT_OVERLAY_SET_ALPHA_MOD, /* Cycle to next overlay. */ CMD_EVENT_OVERLAY_NEXT, /* Deinitializes overlay. */ CMD_EVENT_DSP_FILTER_INIT, /* Initializes recording system. */ CMD_EVENT_RECORD_INIT, /* Deinitializes recording system. */ CMD_EVENT_RECORD_DEINIT, /* Deinitializes history playlist. */ CMD_EVENT_HISTORY_DEINIT, /* Initializes history playlist. */ CMD_EVENT_HISTORY_INIT, /* Deinitializes core information. */ CMD_EVENT_CORE_INFO_DEINIT, /* Initializes core information. */ CMD_EVENT_CORE_INFO_INIT, /* Deinitializes core. */ CMD_EVENT_CORE_DEINIT, /* Initializes core. */ CMD_EVENT_CORE_INIT, /* Apply video state changes. */ CMD_EVENT_VIDEO_APPLY_STATE_CHANGES, /* Set video blocking state. */ CMD_EVENT_VIDEO_SET_BLOCKING_STATE, /* Sets current aspect ratio index. */ CMD_EVENT_VIDEO_SET_ASPECT_RATIO, /* Restarts RetroArch. */ CMD_EVENT_RESTART_RETROARCH, /* Shutdown the OS */ CMD_EVENT_SHUTDOWN, /* Reboot the OS */ CMD_EVENT_REBOOT, /* Resume RetroArch when in menu. */ CMD_EVENT_RESUME, /* Add a playlist entry to favorites. */ CMD_EVENT_ADD_TO_FAVORITES, /* Reset playlist entry associated core to DETECT */ CMD_EVENT_RESET_CORE_ASSOCIATION, /* Toggles pause. */ CMD_EVENT_PAUSE_TOGGLE, /* Pauses RetroArch. */ CMD_EVENT_UNPAUSE, /* Unpauses retroArch. */ CMD_EVENT_PAUSE, CMD_EVENT_MENU_RESET_TO_DEFAULT_CONFIG, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR, CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME, CMD_EVENT_MENU_SAVE_CONFIG, CMD_EVENT_MENU_PAUSE_LIBRETRO, /* Toggles menu on/off. */ CMD_EVENT_MENU_TOGGLE, /* Applies shader changes. */ CMD_EVENT_SHADERS_APPLY_CHANGES, /* A new shader preset has been loaded */ CMD_EVENT_SHADER_PRESET_LOADED, /* Apply cheats. */ CMD_EVENT_CHEATS_APPLY, /* Initializes network system. */ CMD_EVENT_NETWORK_INIT, /* Initializes netplay system with a string or no host specified. */ CMD_EVENT_NETPLAY_INIT, /* Initializes netplay system with a direct host specified. */ CMD_EVENT_NETPLAY_INIT_DIRECT, /* Initializes netplay system with a direct host specified after loading content. */ CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED, /* Deinitializes netplay system. */ CMD_EVENT_NETPLAY_DEINIT, /* Switch between netplay gaming and watching. */ CMD_EVENT_NETPLAY_GAME_WATCH, /* Start hosting netplay. */ CMD_EVENT_NETPLAY_ENABLE_HOST, /* Disconnect from the netplay host. */ CMD_EVENT_NETPLAY_DISCONNECT, /* Reinitializes audio driver. */ CMD_EVENT_AUDIO_REINIT, /* Resizes windowed scale. Will reinitialize video driver. */ CMD_EVENT_RESIZE_WINDOWED_SCALE, CMD_EVENT_LOG_FILE_DEINIT, /* Toggles disk eject. */ CMD_EVENT_DISK_EJECT_TOGGLE, /* Cycle to next disk. */ CMD_EVENT_DISK_NEXT, /* Cycle to previous disk. */ CMD_EVENT_DISK_PREV, /* Appends disk image to disk image list. */ CMD_EVENT_DISK_APPEND_IMAGE, /* Stops rumbling. */ CMD_EVENT_RUMBLE_STOP, /* Toggles mouse grab. */ CMD_EVENT_GRAB_MOUSE_TOGGLE, /* Toggles game focus. */ CMD_EVENT_GAME_FOCUS_TOGGLE, /* Toggles desktop menu. */ CMD_EVENT_UI_COMPANION_TOGGLE, /* Toggles fullscreen mode. */ CMD_EVENT_FULLSCREEN_TOGGLE, CMD_EVENT_VOLUME_UP, CMD_EVENT_VOLUME_DOWN, CMD_EVENT_MIXER_VOLUME_UP, CMD_EVENT_MIXER_VOLUME_DOWN, CMD_EVENT_DISCORD_INIT, CMD_EVENT_DISCORD_UPDATE, CMD_EVENT_OSK_TOGGLE, CMD_EVENT_RECORDING_TOGGLE, CMD_EVENT_STREAMING_TOGGLE, CMD_EVENT_AI_SERVICE_TOGGLE, CMD_EVENT_BSV_RECORDING_TOGGLE, CMD_EVENT_SHADER_NEXT, CMD_EVENT_SHADER_PREV, CMD_EVENT_CHEAT_INDEX_PLUS, CMD_EVENT_CHEAT_INDEX_MINUS, CMD_EVENT_CHEAT_TOGGLE, CMD_EVENT_AI_SERVICE_CALL }; bool command_set_shader(const char *arg); /** * command_event: * @cmd : Command index. * * Performs RetroArch command with index @cmd. * * Returns: true (1) on success, otherwise false (0). **/ bool command_event(enum event_command action, void *data); RETRO_END_DECLS #endif