@@ -364,6 +364,22 @@ RC_EXPORT const rc_client_subset_t* RC_CCONV rc_client_get_subset_info(rc_client
364364
365365RC_EXPORT void RC_CCONV rc_client_get_user_subset_summary (const rc_client_t * client , uint32_t subset_id , rc_client_user_game_summary_t * summary );
366366
367+ typedef struct rc_client_subset_list_t {
368+ const rc_client_subset_t * * subsets ;
369+ uint32_t num_subsets ;
370+ } rc_client_subset_list_t ;
371+
372+ /**
373+ * Creates a list of subsets for the currently loaded game.
374+ * Returns an allocated list that must be free'd by calling rc_client_destroy_subset_list.
375+ */
376+ RC_EXPORT rc_client_subset_list_t * RC_CCONV rc_client_create_subset_list (rc_client_t * client );
377+
378+ /**
379+ * Destroys a list allocated by rc_client_create_subset_list_list.
380+ */
381+ RC_EXPORT void RC_CCONV rc_client_destroy_subset_list (rc_client_subset_list_t * list );
382+
367383/*****************************************************************************\
368384| Fetch Game Hashes |
369385\*****************************************************************************/
@@ -398,6 +414,42 @@ RC_EXPORT rc_client_async_handle_t* RC_CCONV rc_client_begin_fetch_hash_library(
398414 */
399415RC_EXPORT void RC_CCONV rc_client_destroy_hash_library (rc_client_hash_library_t * list );
400416
417+ /*****************************************************************************\
418+ | Fetch Game Titles |
419+ \*****************************************************************************/
420+
421+ typedef struct rc_client_game_title_entry_t {
422+ uint32_t game_id ;
423+ const char * title ;
424+ char badge_name [16 ];
425+ const char * badge_url ;
426+ } rc_client_game_title_entry_t ;
427+
428+ typedef struct rc_client_game_title_list_t {
429+ rc_client_game_title_entry_t * entries ;
430+ uint32_t num_entries ;
431+ } rc_client_game_title_list_t ;
432+
433+ /**
434+ * Callback that is fired when a game titles request completes. list may be null if the query failed.
435+ */
436+ typedef void (RC_CCONV * rc_client_fetch_game_titles_callback_t )(int result , const char * error_message ,
437+ rc_client_game_title_list_t * list , rc_client_t * client ,
438+ void * callback_userdata );
439+
440+ /**
441+ * Starts an asynchronous request for titles and badge names for the specified games.
442+ * The caller must provide an array of game IDs and the number of IDs in the array.
443+ */
444+ RC_EXPORT rc_client_async_handle_t * RC_CCONV rc_client_begin_fetch_game_titles (
445+ rc_client_t * client , const uint32_t * game_ids , uint32_t num_game_ids ,
446+ rc_client_fetch_game_titles_callback_t callback , void * callback_userdata );
447+
448+ /**
449+ * Destroys a previously-allocated result from the rc_client_begin_fetch_game_titles() callback.
450+ */
451+ RC_EXPORT void RC_CCONV rc_client_destroy_game_title_list (rc_client_game_title_list_t * list );
452+
401453/*****************************************************************************\
402454| Achievements |
403455\*****************************************************************************/
@@ -503,7 +555,7 @@ enum {
503555RC_EXPORT rc_client_achievement_list_t * RC_CCONV rc_client_create_achievement_list (rc_client_t * client , int category , int grouping );
504556
505557/**
506- * Destroys a list allocated by rc_client_get_achievement_list .
558+ * Destroys a list allocated by rc_client_create_achievement_list .
507559 */
508560RC_EXPORT void RC_CCONV rc_client_destroy_achievement_list (rc_client_achievement_list_t * list );
509561
0 commit comments