-
Notifications
You must be signed in to change notification settings - Fork 44
rc_client_begin_identify_and_change_media
Switches the loaded media for the active game.
rc_client_async_handle_t* rc_client_begin_identify_and_change_media(
rc_client_t* client,
const char* file_path,
const uint8_t* data,
size_t data_size,
rc_client_callback_t callback,
void* callback_userdata
);
client
The rc_client_t
to manage the game.
file_path
The path to the file to be hashed. If providing data
, this must still be set so the filename extension can be used to help select the appropriate hashing algorithm for the data.
data
Pointer to the data to be hashed (usually an in-memory copy of the game file). If NULL, the file specified by the path parameter will be used.
data_size
The number of bytes pointed to by the data
parameter. Ignored if data
is NULL.
callback
Function to call when the media change process completes.
callback_userdata
Additional information to pass to the callback
function.
Pointer to an rc_client_async_handle_t
that can be passed to rc_client_abort_async to cancel the change media request. The rc_client_async_handle_t
is invalid after callback
has been called.
void (*rc_client_callback_t)(
int result,
const char* error_message,
rc_client_t* client
);
result
RC_OK on success, or an error code indicating the failure.
result | problem |
---|---|
RC_OK | Game was successfully loaded. |
RC_NO_GAME_LOADED | An active game is required. |
RC_HARDCORE_DISABLED | The new media could not be identified, so hardcore was disabled. |
RC_ABORTED | The process was canceled before it finished (rc_client_unload_game was called, or another game started loading). |
RC_INVALID_STATE | Generic failure. See error_message for details. |
RC_INVALID_JSON | Server response could not be processed. |
RC_MISSING_VALUE | Server response was not complete. |
RC_API_FAILURE | Error occurred on the server. See error_message for details. |
error_message
NULL on success, or a message related to a non-successful result.
client
The rc_client_t
that was handling the load game attempt.
If a hash cannot be generated for the new media, it is assumed to not be able to affect the loaded game (i.e. an audio CD for a rhythm game). If the hash does resolve to a known hash, it will be allowed as either a valid media for the loaded game, or something that won't affect the loaded game. If the hash does not resolve to a known hash, hardcore will be disabled and RC_HARDCORE_DISABLED will be passed to the callback.
Minimum version: 11.2.0 (renamed from rc_client_begin_change_media_from_hash
in 12.0.0)
rc_client
- rc_client_abort_async
- rc_client_create
- rc_client_destroy
- rc_client_enable_logging
- rc_client_get_encore_mode_enabled
- rc_client_get_hardcore_enabled
- rc_client_get_spectator_mode_enabled
- rc_client_get_unofficial_enabled
- rc_client_get_user_agent_clause
- rc_client_get_userdata
- rc_client_set_allow_background_memory_reads
- rc_client_set_encore_mode_enabled
- rc_client_set_hardcore_enabled
- rc_client_set_hash_callbacks
- rc_client_set_host
- rc_client_set_spectator_mode_enabled
- rc_client_set_unofficial_enabled
- rc_client_set_userdata
- rc_client_begin_login_with_password
- rc_client_begin_login_with_token
- rc_client_get_user_info
- rc_client_get_user_game_summary
- rc_client_logout
- rc_client_user_get_image_url
- rc_client_achievement_get_image_url
- rc_client_begin_change_media
- rc_client_begin_fetch_leaderboard_entries
- rc_client_begin_fetch_leaderboard_entries_around_user
- rc_client_begin_identify_and_change_media
- rc_client_begin_identify_and_load_game
- rc_client_begin_load_game
- rc_client_create_achievement_list
- rc_client_create_leaderboard_list
- rc_client_destroy_achievement_list
- rc_client_destroy_leaderboard_entry_list
- rc_client_destroy_leaderboard_list
- rc_client_game_get_image_url
- rc_client_get_achievement_info
- rc_client_get_game_info
- rc_client_get_leaderboard_info
- rc_client_get_load_game_state
- rc_client_get_rich_presence_message
- rc_client_has_achievements
- rc_client_has_leaderboards
- rc_client_has_rich_presence
- rc_client_is_game_loaded
- rc_client_leaderboard_entry_get_user_image_url
- rc_client_unload_game
- rc_client_can_pause
- rc_client_deserialize_progress
- rc_client_do_frame
- rc_client_idle
- rc_client_is_processing_required
- rc_client_progress_size
- rc_client_reset
- rc_client_serialize_progress
- rc_client_set_event_handler
- rc_client_set_read_memory_function
- rc_client_begin_load_raintegration
- rc_client_raintegration_activate_menu_item
- rc_client_raintegration_get_achievement_state
- rc_client_raintegration_get_menu
- rc_client_raintegration_has_modifications
- rc_client_raintegration_rebuild_submenu
- rc_client_raintegration_set_console_id
- rc_client_raintegration_set_event_handler
- rc_client_raintegration_set_get_game_name_function
- rc_client_raintegration_set_write_memory_function
- rc_client_raintegration_update_main_window_handle
- rc_client_raintegration_update_menu_item
- rc_client_unload_raintegration
rc_runtime
- rc_runtime_activate_achievement
- rc_runtime_activate_lboard
- rc_runtime_activate_richpresence
- rc_runtime_deactivate_achievement
- rc_runtime_deactivate_lboard
- rc_runtime_deserialize_progress
- rc_runtime_destroy
- rc_runtime_do_frame
- rc_runtime_format_achievement_measured
- rc_runtime_format_lboard_value
- rc_runtime_get_achievement
- rc_runtime_get_achievement_measured
- rc_runtime_get_lboard
- rc_runtime_get_richpresence
- rc_runtime_init
- rc_runtime_invalidate_address
- rc_runtime_progress_size
- rc_runtime_reset
- rc_runtime_serialize_progress
- rc_runtime_validate_addresses
rapi
- rc_api_destroy_fetch_all_user_progress_response
- rc_api_destroy_fetch_followed_users_response
- rc_api_destroy_fetch_user_unlocks_response
- rc_api_destroy_login_response
- rc_api_destroy_start_session_response
- rc_api_init_fetch_all_user_progress_request
- rc_api_init_fetch_followed_users_request
- rc_api_init_fetch_user_unlocks_request
- rc_api_init_login_request
- rc_api_init_start_session_request
- rc_api_process_fetch_all_user_progress_server_response
- rc_api_process_fetch_followed_users_server_response
- rc_api_process_fetch_user_unlocks_response
- rc_api_process_login_response
- rc_api_process_start_session_response
- rc_api_destroy_award_achievement_response
- rc_api_destroy_fetch_game_data_response
- rc_api_destroy_fetch_game_sets_response
- rc_api_destroy_ping_response
- rc_api_destroy_resolve_hash_response
- rc_api_destroy_submit_lboard_entry_response
- rc_api_init_award_achievement_request
- rc_api_init_fetch_game_data_request
- rc_api_init_fetch_game_sets_request
- rc_api_init_fetch_image_request
- rc_api_init_ping_request
- rc_api_init_resolve_hash_request
- rc_api_init_submit_lboard_entry_request
- rc_api_process_award_achievement_response
- rc_api_process_fetch_game_data_response
- rc_api_process_fetch_game_sets_server_response
- rc_api_process_ping_response
- rc_api_process_resolve_hash_response
- rc_api_process_submit_lboard_entry_response
- rc_api_destroy_fetch_achievement_info_response
- rc_api_destroy_fetch_game_titles_response
- rc_api_destroy_fetch_games_list_response
- rc_api_destroy_fetch_hash_library_response
- rc_api_destroy_fetch_leaderboard_info_response
- rc_api_init_fetch_achievement_info_request
- rc_api_init_fetch_game_titles_request
- rc_api_init_fetch_games_list_request
- rc_api_init_fetch_hash_library_request
- rc_api_init_fetch_leaderboard_info_request
- rc_api_process_fetch_achievement_info_response
- rc_api_process_fetch_game_titles_server_response
- rc_api_process_fetch_games_list_response
- rc_api_process_fetch_hash_library_response
- rc_api_process_fetch_leaderboard_info_response