Duckstation/dep/rcheevos/src/rc_client_raintegration_internal.h

62 lines
2.9 KiB
C
Raw Normal View History

2023-11-30 04:06:00 +00:00
#ifndef RC_CLIENT_RAINTEGRATION_INTERNAL_H
#define RC_CLIENT_RAINTEGRATION_INTERNAL_H
#include "rc_client_raintegration.h"
#ifdef RC_CLIENT_SUPPORTS_RAINTEGRATION
#include "rc_client_external.h"
#include "rc_compat.h"
2024-01-13 04:24:04 +00:00
RC_BEGIN_C_DECLS
/* RAIntegration follows the same calling convention as rcheevos */
2023-11-30 04:06:00 +00:00
2024-01-13 04:24:04 +00:00
typedef void (RC_CCONV* rc_client_raintegration_action_func_t)(void);
typedef const char* (RC_CCONV* rc_client_raintegration_get_string_func_t)(void);
typedef int (RC_CCONV* rc_client_raintegration_init_client_func_t)(HWND hMainWnd, const char* sClientName, const char* sClientVersion);
typedef int (RC_CCONV* rc_client_raintegration_get_external_client_func_t)(rc_client_external_t* pClient, int nVersion);
typedef void (RC_CCONV* rc_client_raintegration_hwnd_action_func_t)(HWND hWnd);
2024-06-24 01:27:43 +00:00
typedef int (RC_CCONV* rc_client_raintegration_get_achievement_state_func_t)(uint32_t nMenuItemId);
2024-01-13 04:24:04 +00:00
typedef const rc_client_raintegration_menu_t* (RC_CCONV* rc_client_raintegration_get_menu_func_t)(void);
typedef int (RC_CCONV* rc_client_raintegration_activate_menuitem_func_t)(uint32_t nMenuItemId);
typedef void (RC_CCONV* rc_client_raintegration_set_write_memory_func_t)(rc_client_t* pClient, rc_client_raintegration_write_memory_func_t handler);
2024-02-24 04:52:57 +00:00
typedef void (RC_CCONV* rc_client_raintegration_set_get_game_name_func_t)(rc_client_t* pClient, rc_client_raintegration_get_game_name_func_t handler);
2024-01-13 04:24:04 +00:00
typedef void (RC_CCONV* rc_client_raintegration_set_event_handler_func_t)(rc_client_t* pClient, rc_client_raintegration_event_handler_t handler);
2024-06-24 01:27:43 +00:00
typedef void (RC_CCONV* rc_client_raintegration_set_int_func_t)(int);
2024-02-24 04:52:57 +00:00
typedef int (RC_CCONV* rc_client_raintegration_get_int_func_t)(void);
2023-11-30 04:06:00 +00:00
typedef struct rc_client_raintegration_t
{
HINSTANCE hDLL;
2024-06-24 01:27:43 +00:00
HWND hMainWindow;
2024-01-13 04:24:04 +00:00
HMENU hPopupMenu;
uint8_t bIsInited;
rc_client_raintegration_get_string_func_t get_version;
rc_client_raintegration_get_string_func_t get_host_url;
rc_client_raintegration_init_client_func_t init_client;
rc_client_raintegration_init_client_func_t init_client_offline;
2024-06-24 01:27:43 +00:00
rc_client_raintegration_set_int_func_t set_console_id;
2024-01-13 04:24:04 +00:00
rc_client_raintegration_action_func_t shutdown;
2023-11-30 04:06:00 +00:00
2024-01-13 04:24:04 +00:00
rc_client_raintegration_hwnd_action_func_t update_main_window_handle;
2023-11-30 04:06:00 +00:00
2024-01-13 04:24:04 +00:00
rc_client_raintegration_set_write_memory_func_t set_write_memory_function;
2024-02-24 04:52:57 +00:00
rc_client_raintegration_set_get_game_name_func_t set_get_game_name_function;
2024-01-13 04:24:04 +00:00
rc_client_raintegration_set_event_handler_func_t set_event_handler;
rc_client_raintegration_get_menu_func_t get_menu;
rc_client_raintegration_activate_menuitem_func_t activate_menu_item;
2024-02-24 04:52:57 +00:00
rc_client_raintegration_get_int_func_t has_modifications;
2024-06-24 01:27:43 +00:00
rc_client_raintegration_get_achievement_state_func_t get_achievement_state;
2024-01-13 04:24:04 +00:00
rc_client_raintegration_get_external_client_func_t get_external_client;
2023-11-30 04:06:00 +00:00
} rc_client_raintegration_t;
2024-01-13 04:24:04 +00:00
RC_END_C_DECLS
2023-11-30 04:06:00 +00:00
2024-01-13 04:24:04 +00:00
#endif /* RC_CLIENT_SUPPORTS_RAINTEGRATION */
2023-11-30 04:06:00 +00:00
#endif /* RC_CLIENT_RAINTEGRATION_INTERNAL_H */