gemba 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/THIRD_PARTY_NOTICES +37 -2
- data/assets/placeholder_boxart.png +0 -0
- data/bin/gemba +2 -2
- data/ext/gemba/extconf.rb +23 -1
- data/ext/gemba/gemba_ext.c +436 -2
- data/ext/gemba/gemba_ext.h +2 -0
- data/gemba.gemspec +5 -3
- data/lib/gemba/achievements/achievement.rb +23 -0
- data/lib/gemba/achievements/backend.rb +186 -0
- data/lib/gemba/achievements/cache.rb +70 -0
- data/lib/gemba/achievements/credentials_presenter.rb +142 -0
- data/lib/gemba/achievements/fake_backend.rb +205 -0
- data/lib/gemba/achievements/null_backend.rb +11 -0
- data/lib/gemba/achievements/offline_backend.rb +168 -0
- data/lib/gemba/achievements/retro_achievements/backend.rb +453 -0
- data/lib/gemba/achievements/retro_achievements/cli_sync_requester.rb +64 -0
- data/lib/gemba/achievements/retro_achievements/ping_worker.rb +27 -0
- data/lib/gemba/achievements.rb +19 -0
- data/lib/gemba/achievements_window.rb +556 -0
- data/lib/gemba/app_controller.rb +1015 -0
- data/lib/gemba/bios.rb +54 -0
- data/lib/gemba/boxart_fetcher/libretro_backend.rb +39 -0
- data/lib/gemba/boxart_fetcher/null_backend.rb +12 -0
- data/lib/gemba/boxart_fetcher.rb +79 -0
- data/lib/gemba/bus_emitter.rb +13 -0
- data/lib/gemba/child_window.rb +24 -1
- data/lib/gemba/cli/commands/config_cmd.rb +83 -0
- data/lib/gemba/cli/commands/decode.rb +154 -0
- data/lib/gemba/cli/commands/patch.rb +78 -0
- data/lib/gemba/cli/commands/play.rb +78 -0
- data/lib/gemba/cli/commands/record.rb +114 -0
- data/lib/gemba/cli/commands/replay.rb +161 -0
- data/lib/gemba/cli/commands/retro_achievements.rb +213 -0
- data/lib/gemba/cli/commands/version.rb +22 -0
- data/lib/gemba/cli.rb +52 -364
- data/lib/gemba/config.rb +134 -1
- data/lib/gemba/data/gb_games.json +1 -0
- data/lib/gemba/data/gb_md5.json +1 -0
- data/lib/gemba/data/gba_games.json +1 -0
- data/lib/gemba/data/gba_md5.json +1 -0
- data/lib/gemba/data/gbc_games.json +1 -0
- data/lib/gemba/data/gbc_md5.json +1 -0
- data/lib/gemba/emulator_frame.rb +1060 -0
- data/lib/gemba/event_bus.rb +48 -0
- data/lib/gemba/frame_stack.rb +60 -0
- data/lib/gemba/game_index.rb +84 -0
- data/lib/gemba/game_picker_frame.rb +268 -0
- data/lib/gemba/gamepad_map.rb +103 -0
- data/lib/gemba/headless.rb +6 -5
- data/lib/gemba/headless_player.rb +33 -3
- data/lib/gemba/help_window.rb +61 -0
- data/lib/gemba/hotkey_map.rb +3 -1
- data/lib/gemba/input_recorder.rb +107 -0
- data/lib/gemba/input_replayer.rb +119 -0
- data/lib/gemba/keyboard_map.rb +90 -0
- data/lib/gemba/locales/en.yml +97 -5
- data/lib/gemba/locales/ja.yml +97 -5
- data/lib/gemba/main_window.rb +56 -0
- data/lib/gemba/modal_stack.rb +81 -0
- data/lib/gemba/patcher_window.rb +223 -0
- data/lib/gemba/platform/gb.rb +21 -0
- data/lib/gemba/platform/gba.rb +21 -0
- data/lib/gemba/platform/gbc.rb +23 -0
- data/lib/gemba/platform.rb +20 -0
- data/lib/gemba/platform_open.rb +19 -0
- data/lib/gemba/recorder.rb +4 -3
- data/lib/gemba/replay_player.rb +691 -0
- data/lib/gemba/rom_info.rb +57 -0
- data/lib/gemba/rom_info_window.rb +16 -3
- data/lib/gemba/rom_library.rb +106 -0
- data/lib/gemba/rom_overrides.rb +47 -0
- data/lib/gemba/rom_patcher/bps.rb +161 -0
- data/lib/gemba/rom_patcher/ips.rb +101 -0
- data/lib/gemba/rom_patcher/ups.rb +118 -0
- data/lib/gemba/rom_patcher.rb +109 -0
- data/lib/gemba/{rom_loader.rb → rom_resolver.rb} +7 -6
- data/lib/gemba/runtime.rb +59 -26
- data/lib/gemba/save_state_manager.rb +4 -7
- data/lib/gemba/save_state_picker.rb +17 -4
- data/lib/gemba/session_logger.rb +64 -0
- data/lib/gemba/settings/audio_tab.rb +77 -0
- data/lib/gemba/settings/gamepad_tab.rb +351 -0
- data/lib/gemba/settings/hotkeys_tab.rb +259 -0
- data/lib/gemba/settings/paths.rb +11 -0
- data/lib/gemba/settings/recording_tab.rb +83 -0
- data/lib/gemba/settings/save_states_tab.rb +91 -0
- data/lib/gemba/settings/system_tab.rb +362 -0
- data/lib/gemba/settings/video_tab.rb +318 -0
- data/lib/gemba/settings_window.rb +162 -1036
- data/lib/gemba/version.rb +1 -1
- data/lib/gemba/virtual_keyboard.rb +19 -0
- data/lib/gemba.rb +2 -12
- data/test/achievements_window/test_bulk_sync.rb +218 -0
- data/test/achievements_window/test_bus_events.rb +125 -0
- data/test/achievements_window/test_close_confirmation.rb +201 -0
- data/test/achievements_window/test_initial_state.rb +164 -0
- data/test/achievements_window/test_sorting.rb +227 -0
- data/test/achievements_window/test_tree_rendering.rb +133 -0
- data/test/fixtures/fake_bios.bin +0 -0
- data/test/fixtures/pong.gba +0 -0
- data/test/fixtures/test.gb +0 -0
- data/test/fixtures/test.gbc +0 -0
- data/test/fixtures/test_quicksave.ss +0 -0
- data/test/screenshots/no_focus.png +0 -0
- data/test/shared/teek_test_worker.rb +17 -1
- data/test/shared/tk_test_helper.rb +91 -4
- data/test/support/achievements_window_helpers.rb +18 -0
- data/test/support/fake_core.rb +25 -0
- data/test/support/fake_ra_runtime.rb +74 -0
- data/test/support/fake_requester.rb +68 -0
- data/test/support/player_helpers.rb +20 -5
- data/test/test_achievement.rb +32 -0
- data/test/{test_player.rb → test_app_controller.rb} +353 -85
- data/test/test_bios.rb +123 -0
- data/test/test_boxart_fetcher.rb +150 -0
- data/test/test_cli.rb +17 -265
- data/test/test_cli_config.rb +64 -0
- data/test/test_cli_decode.rb +97 -0
- data/test/test_cli_patch.rb +58 -0
- data/test/test_cli_play.rb +213 -0
- data/test/test_cli_ra.rb +175 -0
- data/test/test_cli_record.rb +69 -0
- data/test/test_cli_replay.rb +72 -0
- data/test/test_cli_sync_requester.rb +152 -0
- data/test/test_cli_version.rb +27 -0
- data/test/test_config.rb +2 -3
- data/test/test_config_ra.rb +69 -0
- data/test/test_core.rb +62 -1
- data/test/test_credentials_presenter.rb +192 -0
- data/test/test_event_bus.rb +100 -0
- data/test/test_fake_backend_achievements.rb +130 -0
- data/test/test_fake_backend_auth.rb +68 -0
- data/test/test_game_index.rb +77 -0
- data/test/test_game_picker_frame.rb +310 -0
- data/test/test_gamepad_map.rb +1 -3
- data/test/test_headless_player.rb +17 -3
- data/test/test_help_window.rb +82 -0
- data/test/test_hotkey_map.rb +22 -1
- data/test/test_input_recorder.rb +179 -0
- data/test/test_input_replay_determinism.rb +113 -0
- data/test/test_input_replayer.rb +162 -0
- data/test/test_keyboard_map.rb +1 -3
- data/test/test_libretro_backend.rb +41 -0
- data/test/test_locale.rb +1 -1
- data/test/test_logging.rb +123 -0
- data/test/test_null_backend.rb +42 -0
- data/test/test_offline_backend.rb +116 -0
- data/test/test_overlay_renderer.rb +1 -1
- data/test/test_platform.rb +149 -0
- data/test/test_ra_backend.rb +313 -0
- data/test/test_ra_backend_unlock_gate.rb +56 -0
- data/test/test_recorder.rb +0 -3
- data/test/test_replay_player.rb +316 -0
- data/test/test_rom_info.rb +149 -0
- data/test/test_rom_overrides.rb +86 -0
- data/test/test_rom_patcher.rb +382 -0
- data/test/{test_rom_loader.rb → test_rom_resolver.rb} +25 -26
- data/test/test_save_state_manager.rb +2 -4
- data/test/test_settings_audio.rb +107 -0
- data/test/test_settings_hotkeys.rb +83 -66
- data/test/test_settings_recording.rb +49 -0
- data/test/test_settings_save_states.rb +97 -0
- data/test/test_settings_system.rb +133 -0
- data/test/test_settings_video.rb +450 -0
- data/test/test_settings_window.rb +76 -507
- data/test/test_tip_service.rb +6 -6
- data/test/test_toast_overlay.rb +1 -1
- data/test/test_virtual_events.rb +156 -0
- data/test/test_virtual_keyboard.rb +1 -1
- data/vendor/rcheevos/CHANGELOG.md +495 -0
- data/vendor/rcheevos/LICENSE +21 -0
- data/vendor/rcheevos/Package.swift +33 -0
- data/vendor/rcheevos/README.md +67 -0
- data/vendor/rcheevos/include/module.modulemap +70 -0
- data/vendor/rcheevos/include/rc_api_editor.h +296 -0
- data/vendor/rcheevos/include/rc_api_info.h +280 -0
- data/vendor/rcheevos/include/rc_api_request.h +77 -0
- data/vendor/rcheevos/include/rc_api_runtime.h +417 -0
- data/vendor/rcheevos/include/rc_api_user.h +262 -0
- data/vendor/rcheevos/include/rc_client.h +877 -0
- data/vendor/rcheevos/include/rc_client_raintegration.h +101 -0
- data/vendor/rcheevos/include/rc_consoles.h +138 -0
- data/vendor/rcheevos/include/rc_error.h +59 -0
- data/vendor/rcheevos/include/rc_export.h +100 -0
- data/vendor/rcheevos/include/rc_hash.h +200 -0
- data/vendor/rcheevos/include/rc_runtime.h +148 -0
- data/vendor/rcheevos/include/rc_runtime_types.h +452 -0
- data/vendor/rcheevos/include/rc_util.h +51 -0
- data/vendor/rcheevos/include/rcheevos.h +8 -0
- data/vendor/rcheevos/src/rapi/rc_api_common.c +1379 -0
- data/vendor/rcheevos/src/rapi/rc_api_common.h +88 -0
- data/vendor/rcheevos/src/rapi/rc_api_editor.c +625 -0
- data/vendor/rcheevos/src/rapi/rc_api_info.c +587 -0
- data/vendor/rcheevos/src/rapi/rc_api_runtime.c +901 -0
- data/vendor/rcheevos/src/rapi/rc_api_user.c +483 -0
- data/vendor/rcheevos/src/rc_client.c +6941 -0
- data/vendor/rcheevos/src/rc_client_external.c +281 -0
- data/vendor/rcheevos/src/rc_client_external.h +177 -0
- data/vendor/rcheevos/src/rc_client_external_versions.h +171 -0
- data/vendor/rcheevos/src/rc_client_internal.h +409 -0
- data/vendor/rcheevos/src/rc_client_raintegration.c +566 -0
- data/vendor/rcheevos/src/rc_client_raintegration_internal.h +61 -0
- data/vendor/rcheevos/src/rc_client_types.natvis +396 -0
- data/vendor/rcheevos/src/rc_compat.c +251 -0
- data/vendor/rcheevos/src/rc_compat.h +121 -0
- data/vendor/rcheevos/src/rc_libretro.c +915 -0
- data/vendor/rcheevos/src/rc_libretro.h +98 -0
- data/vendor/rcheevos/src/rc_util.c +199 -0
- data/vendor/rcheevos/src/rc_version.c +11 -0
- data/vendor/rcheevos/src/rc_version.h +32 -0
- data/vendor/rcheevos/src/rcheevos/alloc.c +312 -0
- data/vendor/rcheevos/src/rcheevos/condition.c +754 -0
- data/vendor/rcheevos/src/rcheevos/condset.c +777 -0
- data/vendor/rcheevos/src/rcheevos/consoleinfo.c +1215 -0
- data/vendor/rcheevos/src/rcheevos/format.c +330 -0
- data/vendor/rcheevos/src/rcheevos/lboard.c +287 -0
- data/vendor/rcheevos/src/rcheevos/memref.c +805 -0
- data/vendor/rcheevos/src/rcheevos/operand.c +607 -0
- data/vendor/rcheevos/src/rcheevos/rc_internal.h +390 -0
- data/vendor/rcheevos/src/rcheevos/rc_runtime_types.natvis +541 -0
- data/vendor/rcheevos/src/rcheevos/rc_validate.c +1406 -0
- data/vendor/rcheevos/src/rcheevos/rc_validate.h +18 -0
- data/vendor/rcheevos/src/rcheevos/richpresence.c +922 -0
- data/vendor/rcheevos/src/rcheevos/runtime.c +852 -0
- data/vendor/rcheevos/src/rcheevos/runtime_progress.c +1073 -0
- data/vendor/rcheevos/src/rcheevos/trigger.c +344 -0
- data/vendor/rcheevos/src/rcheevos/value.c +935 -0
- data/vendor/rcheevos/src/rhash/aes.c +480 -0
- data/vendor/rcheevos/src/rhash/aes.h +49 -0
- data/vendor/rcheevos/src/rhash/cdreader.c +838 -0
- data/vendor/rcheevos/src/rhash/hash.c +1402 -0
- data/vendor/rcheevos/src/rhash/hash_disc.c +1340 -0
- data/vendor/rcheevos/src/rhash/hash_encrypted.c +566 -0
- data/vendor/rcheevos/src/rhash/hash_rom.c +426 -0
- data/vendor/rcheevos/src/rhash/hash_zip.c +460 -0
- data/vendor/rcheevos/src/rhash/md5.c +382 -0
- data/vendor/rcheevos/src/rhash/md5.h +91 -0
- data/vendor/rcheevos/src/rhash/rc_hash_internal.h +116 -0
- data/vendor/rcheevos/test/libretro.h +205 -0
- data/vendor/rcheevos/test/rapi/test_rc_api_common.c +941 -0
- data/vendor/rcheevos/test/rapi/test_rc_api_editor.c +931 -0
- data/vendor/rcheevos/test/rapi/test_rc_api_info.c +545 -0
- data/vendor/rcheevos/test/rapi/test_rc_api_runtime.c +2213 -0
- data/vendor/rcheevos/test/rapi/test_rc_api_user.c +998 -0
- data/vendor/rcheevos/test/rcheevos/mock_memory.h +32 -0
- data/vendor/rcheevos/test/rcheevos/test_condition.c +570 -0
- data/vendor/rcheevos/test/rcheevos/test_condset.c +5170 -0
- data/vendor/rcheevos/test/rcheevos/test_consoleinfo.c +203 -0
- data/vendor/rcheevos/test/rcheevos/test_format.c +112 -0
- data/vendor/rcheevos/test/rcheevos/test_lboard.c +746 -0
- data/vendor/rcheevos/test/rcheevos/test_memref.c +520 -0
- data/vendor/rcheevos/test/rcheevos/test_operand.c +692 -0
- data/vendor/rcheevos/test/rcheevos/test_rc_validate.c +502 -0
- data/vendor/rcheevos/test/rcheevos/test_richpresence.c +1564 -0
- data/vendor/rcheevos/test/rcheevos/test_runtime.c +1667 -0
- data/vendor/rcheevos/test/rcheevos/test_runtime_progress.c +1821 -0
- data/vendor/rcheevos/test/rcheevos/test_timing.c +166 -0
- data/vendor/rcheevos/test/rcheevos/test_trigger.c +2521 -0
- data/vendor/rcheevos/test/rcheevos/test_value.c +870 -0
- data/vendor/rcheevos/test/rcheevos-test.sln +46 -0
- data/vendor/rcheevos/test/rcheevos-test.vcxproj +239 -0
- data/vendor/rcheevos/test/rcheevos-test.vcxproj.filters +335 -0
- data/vendor/rcheevos/test/rhash/data.c +657 -0
- data/vendor/rcheevos/test/rhash/data.h +32 -0
- data/vendor/rcheevos/test/rhash/mock_filereader.c +236 -0
- data/vendor/rcheevos/test/rhash/mock_filereader.h +31 -0
- data/vendor/rcheevos/test/rhash/test_cdreader.c +920 -0
- data/vendor/rcheevos/test/rhash/test_hash.c +310 -0
- data/vendor/rcheevos/test/rhash/test_hash_disc.c +1450 -0
- data/vendor/rcheevos/test/rhash/test_hash_rom.c +899 -0
- data/vendor/rcheevos/test/rhash/test_hash_zip.c +551 -0
- data/vendor/rcheevos/test/test.c +113 -0
- data/vendor/rcheevos/test/test_framework.h +205 -0
- data/vendor/rcheevos/test/test_rc_client.c +10509 -0
- data/vendor/rcheevos/test/test_rc_client_external.c +2197 -0
- data/vendor/rcheevos/test/test_rc_client_raintegration.c +441 -0
- data/vendor/rcheevos/test/test_rc_libretro.c +952 -0
- data/vendor/rcheevos/test/test_types.natvis +9 -0
- data/vendor/rcheevos/validator/validator.c +658 -0
- data/vendor/rcheevos/validator/validator.vcxproj +152 -0
- data/vendor/rcheevos/validator/validator.vcxproj.filters +82 -0
- metadata +274 -11
- data/lib/gemba/input_mappings.rb +0 -214
- data/lib/gemba/player.rb +0 -1525
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module rcheevos {
|
|
2
|
+
umbrella header "rcheevos.h"
|
|
3
|
+
|
|
4
|
+
module rapi {
|
|
5
|
+
module rc_api_editor {
|
|
6
|
+
header "rc_api_editor.h"
|
|
7
|
+
export *
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
module rc_api_info {
|
|
11
|
+
header "rc_api_info.h"
|
|
12
|
+
export *
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module rc_api_request {
|
|
16
|
+
header "rc_api_request.h"
|
|
17
|
+
export *
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module rc_api_runtime {
|
|
21
|
+
header "rc_api_runtime.h"
|
|
22
|
+
export *
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module rc_api_user {
|
|
26
|
+
header "rc_api_user.h"
|
|
27
|
+
export *
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export *
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
module rc_client {
|
|
34
|
+
header "rc_client.h"
|
|
35
|
+
export *
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
explicit module rc_client_raintegration {
|
|
39
|
+
header "rc_client_raintegration.h"
|
|
40
|
+
export *
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module rc_consoles {
|
|
44
|
+
header "rc_consoles.h"
|
|
45
|
+
export *
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module rc_error {
|
|
49
|
+
header "rc_error.h"
|
|
50
|
+
export *
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
module rc_runtime {
|
|
54
|
+
header "rc_runtime.h"
|
|
55
|
+
export *
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module rc_runtime_types {
|
|
59
|
+
header "rc_runtime_types.h"
|
|
60
|
+
export *
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
module rc_hash {
|
|
64
|
+
header "rc_hash.h"
|
|
65
|
+
export *
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export *
|
|
69
|
+
module * { export * }
|
|
70
|
+
}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
#ifndef RC_API_EDITOR_H
|
|
2
|
+
#define RC_API_EDITOR_H
|
|
3
|
+
|
|
4
|
+
#include "rc_api_request.h"
|
|
5
|
+
|
|
6
|
+
#include <stdint.h>
|
|
7
|
+
|
|
8
|
+
RC_BEGIN_C_DECLS
|
|
9
|
+
|
|
10
|
+
/* --- Fetch Code Notes --- */
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* API parameters for a fetch code notes request.
|
|
14
|
+
*/
|
|
15
|
+
typedef struct rc_api_fetch_code_notes_request_t {
|
|
16
|
+
/* The unique identifier of the game */
|
|
17
|
+
uint32_t game_id;
|
|
18
|
+
}
|
|
19
|
+
rc_api_fetch_code_notes_request_t;
|
|
20
|
+
|
|
21
|
+
/* A code note definiton */
|
|
22
|
+
typedef struct rc_api_code_note_t {
|
|
23
|
+
/* The address the note is associated to */
|
|
24
|
+
uint32_t address;
|
|
25
|
+
/* The name of the use who last updated the note */
|
|
26
|
+
const char* author;
|
|
27
|
+
/* The contents of the note */
|
|
28
|
+
const char* note;
|
|
29
|
+
} rc_api_code_note_t;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Response data for a fetch code notes request.
|
|
33
|
+
*/
|
|
34
|
+
typedef struct rc_api_fetch_code_notes_response_t {
|
|
35
|
+
/* An array of code notes for the game */
|
|
36
|
+
rc_api_code_note_t* notes;
|
|
37
|
+
/* The number of items in the notes array */
|
|
38
|
+
uint32_t num_notes;
|
|
39
|
+
|
|
40
|
+
/* Common server-provided response information */
|
|
41
|
+
rc_api_response_t response;
|
|
42
|
+
}
|
|
43
|
+
rc_api_fetch_code_notes_response_t;
|
|
44
|
+
|
|
45
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_code_notes_request(rc_api_request_t* request, const rc_api_fetch_code_notes_request_t* api_params);
|
|
46
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_code_notes_request_hosted(rc_api_request_t* request, const rc_api_fetch_code_notes_request_t* api_params, const rc_api_host_t* host);
|
|
47
|
+
/* [deprecated] use rc_api_process_fetch_code_notes_server_response instead */
|
|
48
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_code_notes_response(rc_api_fetch_code_notes_response_t* response, const char* server_response);
|
|
49
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_code_notes_server_response(rc_api_fetch_code_notes_response_t* response, const rc_api_server_response_t* server_response);
|
|
50
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_code_notes_response(rc_api_fetch_code_notes_response_t* response);
|
|
51
|
+
|
|
52
|
+
/* --- Update Code Note --- */
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* API parameters for an update code note request.
|
|
56
|
+
*/
|
|
57
|
+
typedef struct rc_api_update_code_note_request_t {
|
|
58
|
+
/* The username of the developer */
|
|
59
|
+
const char* username;
|
|
60
|
+
/* The API token from the login request */
|
|
61
|
+
const char* api_token;
|
|
62
|
+
/* The unique identifier of the game */
|
|
63
|
+
uint32_t game_id;
|
|
64
|
+
/* The address the note is associated to */
|
|
65
|
+
uint32_t address;
|
|
66
|
+
/* The contents of the note (NULL or empty to delete a note) */
|
|
67
|
+
const char* note;
|
|
68
|
+
}
|
|
69
|
+
rc_api_update_code_note_request_t;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Response data for an update code note request.
|
|
73
|
+
*/
|
|
74
|
+
typedef struct rc_api_update_code_note_response_t {
|
|
75
|
+
/* Common server-provided response information */
|
|
76
|
+
rc_api_response_t response;
|
|
77
|
+
}
|
|
78
|
+
rc_api_update_code_note_response_t;
|
|
79
|
+
|
|
80
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_code_note_request(rc_api_request_t* request, const rc_api_update_code_note_request_t* api_params);
|
|
81
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_code_note_request_hosted(rc_api_request_t* request, const rc_api_update_code_note_request_t* api_params, const rc_api_host_t* host);
|
|
82
|
+
/* [deprecated] use rc_api_process_update_code_note_server_response instead */
|
|
83
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_code_note_response(rc_api_update_code_note_response_t* response, const char* server_response);
|
|
84
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_code_note_server_response(rc_api_update_code_note_response_t* response, const rc_api_server_response_t* server_response);
|
|
85
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_update_code_note_response(rc_api_update_code_note_response_t* response);
|
|
86
|
+
|
|
87
|
+
/* --- Update Achievement --- */
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* API parameters for an update achievement request.
|
|
91
|
+
*/
|
|
92
|
+
typedef struct rc_api_update_achievement_request_t {
|
|
93
|
+
/* The username of the developer */
|
|
94
|
+
const char* username;
|
|
95
|
+
/* The API token from the login request */
|
|
96
|
+
const char* api_token;
|
|
97
|
+
/* The unique identifier of the achievement (0 to create a new achievement) */
|
|
98
|
+
uint32_t achievement_id;
|
|
99
|
+
/* The unique identifier of the game */
|
|
100
|
+
uint32_t game_id;
|
|
101
|
+
/* The name of the achievement */
|
|
102
|
+
const char* title;
|
|
103
|
+
/* The description of the achievement */
|
|
104
|
+
const char* description;
|
|
105
|
+
/* The badge name for the achievement */
|
|
106
|
+
const char* badge;
|
|
107
|
+
/* The serialized trigger for the achievement */
|
|
108
|
+
const char* trigger;
|
|
109
|
+
/* The number of points the achievement is worth */
|
|
110
|
+
uint32_t points;
|
|
111
|
+
/* The category of the achievement */
|
|
112
|
+
uint32_t category;
|
|
113
|
+
/* The type of the achievement */
|
|
114
|
+
uint32_t type;
|
|
115
|
+
}
|
|
116
|
+
rc_api_update_achievement_request_t;
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Response data for an update achievement request.
|
|
120
|
+
*/
|
|
121
|
+
typedef struct rc_api_update_achievement_response_t {
|
|
122
|
+
/* The unique identifier of the achievement */
|
|
123
|
+
uint32_t achievement_id;
|
|
124
|
+
|
|
125
|
+
/* Common server-provided response information */
|
|
126
|
+
rc_api_response_t response;
|
|
127
|
+
}
|
|
128
|
+
rc_api_update_achievement_response_t;
|
|
129
|
+
|
|
130
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_achievement_request(rc_api_request_t* request, const rc_api_update_achievement_request_t* api_params);
|
|
131
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_achievement_request_hosted(rc_api_request_t* request, const rc_api_update_achievement_request_t* api_params, const rc_api_host_t* host);
|
|
132
|
+
/* [deprecated] use rc_api_process_update_achievement_server_response instead */
|
|
133
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_achievement_response(rc_api_update_achievement_response_t* response, const char* server_response);
|
|
134
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_achievement_server_response(rc_api_update_achievement_response_t* response, const rc_api_server_response_t* server_response);
|
|
135
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_update_achievement_response(rc_api_update_achievement_response_t* response);
|
|
136
|
+
|
|
137
|
+
/* --- Update Leaderboard --- */
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* API parameters for an update leaderboard request.
|
|
141
|
+
*/
|
|
142
|
+
typedef struct rc_api_update_leaderboard_request_t {
|
|
143
|
+
/* The username of the developer */
|
|
144
|
+
const char* username;
|
|
145
|
+
/* The API token from the login request */
|
|
146
|
+
const char* api_token;
|
|
147
|
+
/* The unique identifier of the leaderboard (0 to create a new leaderboard) */
|
|
148
|
+
uint32_t leaderboard_id;
|
|
149
|
+
/* The unique identifier of the game */
|
|
150
|
+
uint32_t game_id;
|
|
151
|
+
/* The name of the leaderboard */
|
|
152
|
+
const char* title;
|
|
153
|
+
/* The description of the leaderboard */
|
|
154
|
+
const char* description;
|
|
155
|
+
/* The start trigger for the leaderboard */
|
|
156
|
+
const char* start_trigger;
|
|
157
|
+
/* The submit trigger for the leaderboard */
|
|
158
|
+
const char* submit_trigger;
|
|
159
|
+
/* The cancel trigger for the leaderboard */
|
|
160
|
+
const char* cancel_trigger;
|
|
161
|
+
/* The value definition for the leaderboard */
|
|
162
|
+
const char* value_definition;
|
|
163
|
+
/* The format of leaderboard values */
|
|
164
|
+
const char* format;
|
|
165
|
+
/* Whether or not lower scores are better for the leaderboard */
|
|
166
|
+
uint32_t lower_is_better;
|
|
167
|
+
}
|
|
168
|
+
rc_api_update_leaderboard_request_t;
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Response data for an update leaderboard request.
|
|
172
|
+
*/
|
|
173
|
+
typedef struct rc_api_update_leaderboard_response_t {
|
|
174
|
+
/* The unique identifier of the leaderboard */
|
|
175
|
+
uint32_t leaderboard_id;
|
|
176
|
+
|
|
177
|
+
/* Common server-provided response information */
|
|
178
|
+
rc_api_response_t response;
|
|
179
|
+
}
|
|
180
|
+
rc_api_update_leaderboard_response_t;
|
|
181
|
+
|
|
182
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_leaderboard_request(rc_api_request_t* request, const rc_api_update_leaderboard_request_t* api_params);
|
|
183
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_leaderboard_request_hosted(rc_api_request_t* request, const rc_api_update_leaderboard_request_t* api_params, const rc_api_host_t* host);
|
|
184
|
+
/* [deprecated] use rc_api_process_update_leaderboard_server_response instead */
|
|
185
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_leaderboard_response(rc_api_update_leaderboard_response_t* response, const char* server_response);
|
|
186
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_leaderboard_server_response(rc_api_update_leaderboard_response_t* response, const rc_api_server_response_t* server_response);
|
|
187
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_update_leaderboard_response(rc_api_update_leaderboard_response_t* response);
|
|
188
|
+
|
|
189
|
+
/* --- Update Rich Presence --- */
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* API parameters for an update rich presence request.
|
|
193
|
+
*/
|
|
194
|
+
typedef struct rc_api_update_rich_presence_request_t {
|
|
195
|
+
/* The username of the developer */
|
|
196
|
+
const char* username;
|
|
197
|
+
/* The API token from the login request */
|
|
198
|
+
const char* api_token;
|
|
199
|
+
/* The unique identifier of the game */
|
|
200
|
+
uint32_t game_id;
|
|
201
|
+
/* The script for the rich_presence */
|
|
202
|
+
const char* script;
|
|
203
|
+
}
|
|
204
|
+
rc_api_update_rich_presence_request_t;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Response data for an update rich presence request.
|
|
208
|
+
*/
|
|
209
|
+
typedef struct rc_api_update_rich_presence_response_t {
|
|
210
|
+
/* Common server-provided response information */
|
|
211
|
+
rc_api_response_t response;
|
|
212
|
+
}
|
|
213
|
+
rc_api_update_rich_presence_response_t;
|
|
214
|
+
|
|
215
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_rich_presence_request(rc_api_request_t* request, const rc_api_update_rich_presence_request_t* api_params);
|
|
216
|
+
RC_EXPORT int RC_CCONV rc_api_init_update_rich_presence_request_hosted(rc_api_request_t* request, const rc_api_update_rich_presence_request_t* api_params, const rc_api_host_t* host);
|
|
217
|
+
RC_EXPORT int RC_CCONV rc_api_process_update_rich_presence_server_response(rc_api_update_rich_presence_response_t* response, const rc_api_server_response_t* server_response);
|
|
218
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_update_rich_presence_response(rc_api_update_rich_presence_response_t* response);
|
|
219
|
+
|
|
220
|
+
/* --- Fetch Badge Range --- */
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* API parameters for a fetch badge range request.
|
|
224
|
+
*/
|
|
225
|
+
typedef struct rc_api_fetch_badge_range_request_t {
|
|
226
|
+
/* Unused */
|
|
227
|
+
uint32_t unused;
|
|
228
|
+
}
|
|
229
|
+
rc_api_fetch_badge_range_request_t;
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Response data for a fetch badge range request.
|
|
233
|
+
*/
|
|
234
|
+
typedef struct rc_api_fetch_badge_range_response_t {
|
|
235
|
+
/* The numeric identifier of the first valid badge ID */
|
|
236
|
+
uint32_t first_badge_id;
|
|
237
|
+
/* The numeric identifier of the first unassigned badge ID */
|
|
238
|
+
uint32_t next_badge_id;
|
|
239
|
+
|
|
240
|
+
/* Common server-provided response information */
|
|
241
|
+
rc_api_response_t response;
|
|
242
|
+
}
|
|
243
|
+
rc_api_fetch_badge_range_response_t;
|
|
244
|
+
|
|
245
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_badge_range_request(rc_api_request_t* request, const rc_api_fetch_badge_range_request_t* api_params);
|
|
246
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_badge_range_request_hosted(rc_api_request_t* request, const rc_api_fetch_badge_range_request_t* api_params, const rc_api_host_t* host);
|
|
247
|
+
/* [deprecated] use rc_api_process_fetch_badge_range_server_response instead */
|
|
248
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_badge_range_response(rc_api_fetch_badge_range_response_t* response, const char* server_response);
|
|
249
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_badge_range_server_response(rc_api_fetch_badge_range_response_t* response, const rc_api_server_response_t* server_response);
|
|
250
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_badge_range_response(rc_api_fetch_badge_range_response_t* response);
|
|
251
|
+
|
|
252
|
+
/* --- Add Game Hash --- */
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* API parameters for an add game hash request.
|
|
256
|
+
*/
|
|
257
|
+
typedef struct rc_api_add_game_hash_request_t {
|
|
258
|
+
/* The username of the developer */
|
|
259
|
+
const char* username;
|
|
260
|
+
/* The API token from the login request */
|
|
261
|
+
const char* api_token;
|
|
262
|
+
/* The unique identifier of the game (0 to create a new game entry) */
|
|
263
|
+
uint32_t game_id;
|
|
264
|
+
/* The unique identifier of the console for the game */
|
|
265
|
+
uint32_t console_id;
|
|
266
|
+
/* The title of the game */
|
|
267
|
+
const char* title;
|
|
268
|
+
/* The hash being added */
|
|
269
|
+
const char* hash;
|
|
270
|
+
/* A description of the hash being added (usually the normalized ROM name) */
|
|
271
|
+
const char* hash_description;
|
|
272
|
+
}
|
|
273
|
+
rc_api_add_game_hash_request_t;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Response data for an update code note request.
|
|
277
|
+
*/
|
|
278
|
+
typedef struct rc_api_add_game_hash_response_t {
|
|
279
|
+
/* The unique identifier of the game */
|
|
280
|
+
uint32_t game_id;
|
|
281
|
+
|
|
282
|
+
/* Common server-provided response information */
|
|
283
|
+
rc_api_response_t response;
|
|
284
|
+
}
|
|
285
|
+
rc_api_add_game_hash_response_t;
|
|
286
|
+
|
|
287
|
+
RC_EXPORT int RC_CCONV rc_api_init_add_game_hash_request(rc_api_request_t* request, const rc_api_add_game_hash_request_t* api_params);
|
|
288
|
+
RC_EXPORT int RC_CCONV rc_api_init_add_game_hash_request_hosted(rc_api_request_t* request, const rc_api_add_game_hash_request_t* api_params, const rc_api_host_t* host);
|
|
289
|
+
/* [deprecated] use rc_api_process_add_game_hash_server_response instead */
|
|
290
|
+
RC_EXPORT int RC_CCONV rc_api_process_add_game_hash_response(rc_api_add_game_hash_response_t* response, const char* server_response);
|
|
291
|
+
RC_EXPORT int RC_CCONV rc_api_process_add_game_hash_server_response(rc_api_add_game_hash_response_t* response, const rc_api_server_response_t* server_response);
|
|
292
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_add_game_hash_response(rc_api_add_game_hash_response_t* response);
|
|
293
|
+
|
|
294
|
+
RC_END_C_DECLS
|
|
295
|
+
|
|
296
|
+
#endif /* RC_EDITOR_H */
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
#ifndef RC_API_INFO_H
|
|
2
|
+
#define RC_API_INFO_H
|
|
3
|
+
|
|
4
|
+
#include "rc_api_request.h"
|
|
5
|
+
|
|
6
|
+
#include <stdint.h>
|
|
7
|
+
#include <time.h>
|
|
8
|
+
|
|
9
|
+
RC_BEGIN_C_DECLS
|
|
10
|
+
|
|
11
|
+
/* --- Fetch Achievement Info --- */
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* API parameters for a fetch achievement info request.
|
|
15
|
+
*/
|
|
16
|
+
typedef struct rc_api_fetch_achievement_info_request_t {
|
|
17
|
+
/* The username of the player */
|
|
18
|
+
const char* username;
|
|
19
|
+
/* The API token from the login request */
|
|
20
|
+
const char* api_token;
|
|
21
|
+
/* The unique identifier of the achievement */
|
|
22
|
+
uint32_t achievement_id;
|
|
23
|
+
/* The 1-based index of the first entry to retrieve */
|
|
24
|
+
uint32_t first_entry;
|
|
25
|
+
/* The number of entries to retrieve */
|
|
26
|
+
uint32_t count;
|
|
27
|
+
/* Non-zero to only return unlocks earned by the user's friends */
|
|
28
|
+
uint32_t friends_only;
|
|
29
|
+
}
|
|
30
|
+
rc_api_fetch_achievement_info_request_t;
|
|
31
|
+
|
|
32
|
+
/* An achievement awarded entry */
|
|
33
|
+
typedef struct rc_api_achievement_awarded_entry_t {
|
|
34
|
+
/* The user associated to the entry */
|
|
35
|
+
const char* username;
|
|
36
|
+
/* A URL to the user's avatar image */
|
|
37
|
+
const char* avatar_url;
|
|
38
|
+
/* When the achievement was awarded */
|
|
39
|
+
time_t awarded;
|
|
40
|
+
}
|
|
41
|
+
rc_api_achievement_awarded_entry_t;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Response data for a fetch achievement info request.
|
|
45
|
+
*/
|
|
46
|
+
typedef struct rc_api_fetch_achievement_info_response_t {
|
|
47
|
+
/* The unique identifier of the achievement */
|
|
48
|
+
uint32_t id;
|
|
49
|
+
/* The unique identifier of the game to which the leaderboard is associated */
|
|
50
|
+
uint32_t game_id;
|
|
51
|
+
/* The number of times the achievement has been awarded */
|
|
52
|
+
uint32_t num_awarded;
|
|
53
|
+
/* The number of players that have earned at least one achievement for the game */
|
|
54
|
+
uint32_t num_players;
|
|
55
|
+
|
|
56
|
+
/* An array of recently rewarded entries */
|
|
57
|
+
rc_api_achievement_awarded_entry_t* recently_awarded;
|
|
58
|
+
/* The number of items in the recently_awarded array */
|
|
59
|
+
uint32_t num_recently_awarded;
|
|
60
|
+
|
|
61
|
+
/* Common server-provided response information */
|
|
62
|
+
rc_api_response_t response;
|
|
63
|
+
}
|
|
64
|
+
rc_api_fetch_achievement_info_response_t;
|
|
65
|
+
|
|
66
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_achievement_info_request(rc_api_request_t* request, const rc_api_fetch_achievement_info_request_t* api_params);
|
|
67
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_achievement_info_request_hosted(rc_api_request_t* request, const rc_api_fetch_achievement_info_request_t* api_params, const rc_api_host_t* host);
|
|
68
|
+
/* [deprecated] use rc_api_process_fetch_achievement_info_server_response instead */
|
|
69
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_achievement_info_response(rc_api_fetch_achievement_info_response_t* response, const char* server_response);
|
|
70
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_achievement_info_server_response(rc_api_fetch_achievement_info_response_t* response, const rc_api_server_response_t* server_response);
|
|
71
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_achievement_info_response(rc_api_fetch_achievement_info_response_t* response);
|
|
72
|
+
|
|
73
|
+
/* --- Fetch Leaderboard Info --- */
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* API parameters for a fetch leaderboard info request.
|
|
77
|
+
*/
|
|
78
|
+
typedef struct rc_api_fetch_leaderboard_info_request_t {
|
|
79
|
+
/* The unique identifier of the leaderboard */
|
|
80
|
+
uint32_t leaderboard_id;
|
|
81
|
+
/* The number of entries to retrieve */
|
|
82
|
+
uint32_t count;
|
|
83
|
+
/* The 1-based index of the first entry to retrieve */
|
|
84
|
+
uint32_t first_entry;
|
|
85
|
+
/* The username of the player around whom the entries should be returned */
|
|
86
|
+
const char* username;
|
|
87
|
+
}
|
|
88
|
+
rc_api_fetch_leaderboard_info_request_t;
|
|
89
|
+
|
|
90
|
+
/* A leaderboard info entry */
|
|
91
|
+
typedef struct rc_api_lboard_info_entry_t {
|
|
92
|
+
/* The user associated to the entry */
|
|
93
|
+
const char* username;
|
|
94
|
+
/* A URL to the user's avatar image */
|
|
95
|
+
const char* avatar_url;
|
|
96
|
+
/* The rank of the entry */
|
|
97
|
+
uint32_t rank;
|
|
98
|
+
/* The index of the entry */
|
|
99
|
+
uint32_t index;
|
|
100
|
+
/* The value of the entry */
|
|
101
|
+
int32_t score;
|
|
102
|
+
/* When the entry was submitted */
|
|
103
|
+
time_t submitted;
|
|
104
|
+
}
|
|
105
|
+
rc_api_lboard_info_entry_t;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Response data for a fetch leaderboard info request.
|
|
109
|
+
*/
|
|
110
|
+
typedef struct rc_api_fetch_leaderboard_info_response_t {
|
|
111
|
+
/* The unique identifier of the leaderboard */
|
|
112
|
+
uint32_t id;
|
|
113
|
+
/* The format to pass to rc_format_value to format the leaderboard value */
|
|
114
|
+
int format;
|
|
115
|
+
/* If non-zero, indicates that lower scores appear first */
|
|
116
|
+
uint32_t lower_is_better;
|
|
117
|
+
/* The title of the leaderboard */
|
|
118
|
+
const char* title;
|
|
119
|
+
/* The description of the leaderboard */
|
|
120
|
+
const char* description;
|
|
121
|
+
/* The definition of the leaderboard to be passed to rc_runtime_activate_lboard */
|
|
122
|
+
const char* definition;
|
|
123
|
+
/* The unique identifier of the game to which the leaderboard is associated */
|
|
124
|
+
uint32_t game_id;
|
|
125
|
+
/* The author of the leaderboard */
|
|
126
|
+
const char* author;
|
|
127
|
+
/* When the leaderboard was first uploaded to the server */
|
|
128
|
+
time_t created;
|
|
129
|
+
/* When the leaderboard was last modified on the server */
|
|
130
|
+
time_t updated;
|
|
131
|
+
|
|
132
|
+
/* An array of requested entries */
|
|
133
|
+
rc_api_lboard_info_entry_t* entries;
|
|
134
|
+
/* The number of items in the entries array */
|
|
135
|
+
uint32_t num_entries;
|
|
136
|
+
|
|
137
|
+
/* The total number of entries on the server */
|
|
138
|
+
uint32_t total_entries;
|
|
139
|
+
|
|
140
|
+
/* Common server-provided response information */
|
|
141
|
+
rc_api_response_t response;
|
|
142
|
+
}
|
|
143
|
+
rc_api_fetch_leaderboard_info_response_t;
|
|
144
|
+
|
|
145
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_leaderboard_info_request(rc_api_request_t* request, const rc_api_fetch_leaderboard_info_request_t* api_params);
|
|
146
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_leaderboard_info_request_hosted(rc_api_request_t* request, const rc_api_fetch_leaderboard_info_request_t* api_params, const rc_api_host_t* host);
|
|
147
|
+
/* [deprecated] use rc_api_process_fetch_leaderboard_info_server_response instead */
|
|
148
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_leaderboard_info_response(rc_api_fetch_leaderboard_info_response_t* response, const char* server_response);
|
|
149
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_leaderboard_info_server_response(rc_api_fetch_leaderboard_info_response_t* response, const rc_api_server_response_t* server_response);
|
|
150
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_leaderboard_info_response(rc_api_fetch_leaderboard_info_response_t* response);
|
|
151
|
+
|
|
152
|
+
/* --- Fetch Games List --- */
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* API parameters for a fetch games list request.
|
|
156
|
+
*/
|
|
157
|
+
typedef struct rc_api_fetch_games_list_request_t {
|
|
158
|
+
/* The unique identifier of the console to query */
|
|
159
|
+
uint32_t console_id;
|
|
160
|
+
}
|
|
161
|
+
rc_api_fetch_games_list_request_t;
|
|
162
|
+
|
|
163
|
+
/* A game list entry */
|
|
164
|
+
typedef struct rc_api_game_list_entry_t {
|
|
165
|
+
/* The unique identifier of the game */
|
|
166
|
+
uint32_t id;
|
|
167
|
+
/* The name of the game */
|
|
168
|
+
const char* name;
|
|
169
|
+
}
|
|
170
|
+
rc_api_game_list_entry_t;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Response data for a fetch games list request.
|
|
174
|
+
*/
|
|
175
|
+
typedef struct rc_api_fetch_games_list_response_t {
|
|
176
|
+
/* An array of requested entries */
|
|
177
|
+
rc_api_game_list_entry_t* entries;
|
|
178
|
+
/* The number of items in the entries array */
|
|
179
|
+
uint32_t num_entries;
|
|
180
|
+
|
|
181
|
+
/* Common server-provided response information */
|
|
182
|
+
rc_api_response_t response;
|
|
183
|
+
}
|
|
184
|
+
rc_api_fetch_games_list_response_t;
|
|
185
|
+
|
|
186
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_games_list_request(rc_api_request_t* request, const rc_api_fetch_games_list_request_t* api_params);
|
|
187
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_games_list_request_hosted(rc_api_request_t* request, const rc_api_fetch_games_list_request_t* api_params, const rc_api_host_t* host);
|
|
188
|
+
/* [deprecated] use rc_api_process_fetch_games_list_server_response instead */
|
|
189
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_games_list_response(rc_api_fetch_games_list_response_t* response, const char* server_response);
|
|
190
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_games_list_server_response(rc_api_fetch_games_list_response_t* response, const rc_api_server_response_t* server_response);
|
|
191
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_games_list_response(rc_api_fetch_games_list_response_t* response);
|
|
192
|
+
|
|
193
|
+
/* --- Fetch Game Titles --- */
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* API parameters for a fetch games list request.
|
|
197
|
+
*/
|
|
198
|
+
typedef struct rc_api_fetch_game_titles_request_t {
|
|
199
|
+
/* An array of game ids to fetch titles for */
|
|
200
|
+
const uint32_t* game_ids;
|
|
201
|
+
/* The number of items in the game_ids array */
|
|
202
|
+
uint32_t num_game_ids;
|
|
203
|
+
}
|
|
204
|
+
rc_api_fetch_game_titles_request_t;
|
|
205
|
+
|
|
206
|
+
/* A game title entry */
|
|
207
|
+
typedef struct rc_api_game_title_entry_t {
|
|
208
|
+
/* The unique identifier of the game */
|
|
209
|
+
uint32_t id;
|
|
210
|
+
/* The title of the game */
|
|
211
|
+
const char* title;
|
|
212
|
+
/* The image name for the game badge */
|
|
213
|
+
const char* image_name;
|
|
214
|
+
/* The URL for the game badge image */
|
|
215
|
+
const char* image_url;
|
|
216
|
+
}
|
|
217
|
+
rc_api_game_title_entry_t;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Response data for a fetch games title request.
|
|
221
|
+
*/
|
|
222
|
+
typedef struct rc_api_fetch_game_titles_response_t {
|
|
223
|
+
/* An array of requested entries */
|
|
224
|
+
rc_api_game_title_entry_t* entries;
|
|
225
|
+
/* The number of items in the entries array */
|
|
226
|
+
uint32_t num_entries;
|
|
227
|
+
|
|
228
|
+
/* Common server-provided response information */
|
|
229
|
+
rc_api_response_t response;
|
|
230
|
+
}
|
|
231
|
+
rc_api_fetch_game_titles_response_t;
|
|
232
|
+
|
|
233
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_game_titles_request(rc_api_request_t* request, const rc_api_fetch_game_titles_request_t* api_params);
|
|
234
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_game_titles_request_hosted(rc_api_request_t* request, const rc_api_fetch_game_titles_request_t* api_params, const rc_api_host_t* host);
|
|
235
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_game_titles_server_response(rc_api_fetch_game_titles_response_t* response, const rc_api_server_response_t* server_response);
|
|
236
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_game_titles_response(rc_api_fetch_game_titles_response_t* response);
|
|
237
|
+
|
|
238
|
+
/* --- Fetch Game Hashes --- */
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* API parameters for a fetch games list request.
|
|
242
|
+
*/
|
|
243
|
+
typedef struct rc_api_fetch_hash_library_request_t {
|
|
244
|
+
/**
|
|
245
|
+
* The unique identifier of the console to query.
|
|
246
|
+
* Passing RC_CONSOLE_UNKNOWN will return hashes for all consoles.
|
|
247
|
+
*/
|
|
248
|
+
uint32_t console_id;
|
|
249
|
+
} rc_api_fetch_hash_library_request_t;
|
|
250
|
+
|
|
251
|
+
/* A hash library entry */
|
|
252
|
+
typedef struct rc_api_hash_library_entry_t {
|
|
253
|
+
/* The hash for the game */
|
|
254
|
+
const char* hash;
|
|
255
|
+
/* The unique identifier of the game */
|
|
256
|
+
uint32_t game_id;
|
|
257
|
+
} rc_api_hash_library_entry_t;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Response data for a fetch hash library request.
|
|
261
|
+
*/
|
|
262
|
+
typedef struct rc_api_fetch_hash_library_response_t {
|
|
263
|
+
/* An array of entries, one per game */
|
|
264
|
+
rc_api_hash_library_entry_t* entries;
|
|
265
|
+
/* The number of items in the entries array */
|
|
266
|
+
uint32_t num_entries;
|
|
267
|
+
|
|
268
|
+
/* Common server-provided response information */
|
|
269
|
+
rc_api_response_t response;
|
|
270
|
+
}
|
|
271
|
+
rc_api_fetch_hash_library_response_t;
|
|
272
|
+
|
|
273
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_hash_library_request(rc_api_request_t* request, const rc_api_fetch_hash_library_request_t* api_params);
|
|
274
|
+
RC_EXPORT int RC_CCONV rc_api_init_fetch_hash_library_request_hosted(rc_api_request_t* request, const rc_api_fetch_hash_library_request_t* api_params, const rc_api_host_t* host);
|
|
275
|
+
RC_EXPORT int RC_CCONV rc_api_process_fetch_hash_library_server_response(rc_api_fetch_hash_library_response_t* response, const rc_api_server_response_t* server_response);
|
|
276
|
+
RC_EXPORT void RC_CCONV rc_api_destroy_fetch_hash_library_response(rc_api_fetch_hash_library_response_t* response);
|
|
277
|
+
|
|
278
|
+
RC_END_C_DECLS
|
|
279
|
+
|
|
280
|
+
#endif /* RC_API_INFO_H */
|