mirror of
https://github.com/libretro/RetroArch
synced 2025-01-26 18:35:22 +00:00
Add replace/add image interfaces.
This commit is contained in:
parent
272ef70895
commit
b4a3ce79bb
20
libretro.h
20
libretro.h
@ -435,7 +435,7 @@ struct retro_keyboard_callback
|
||||
retro_keyboard_event_t callback;
|
||||
};
|
||||
|
||||
// Callback for RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE.
|
||||
// Callbacks for RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE.
|
||||
// Should be set for implementations which can swap out multiple disk images in runtime.
|
||||
// If the implementation can do this automatically, it should strive to do so.
|
||||
// However, there are cases where the user must manually do so.
|
||||
@ -443,9 +443,10 @@ struct retro_keyboard_callback
|
||||
// Overview: To swap a disk image, eject the disk image with set_eject_state(true).
|
||||
// Set the disk index with set_image_index(index). Insert the disk again with set_eject_state(false).
|
||||
|
||||
// If ejected is true, "ejects" the virtual disk tray. When ejected, the disk image index can be set.
|
||||
// If ejected is true, "ejects" the virtual disk tray.
|
||||
// When ejected, the disk image index can be set.
|
||||
typedef bool (*retro_set_eject_state_t)(bool ejected);
|
||||
// Gets current eject state. The initial state is not ejected.
|
||||
// Gets current eject state. The initial state is 'not ejected'.
|
||||
typedef bool (*retro_get_eject_state_t)(void);
|
||||
// Gets current disk index. First disk is index 0.
|
||||
// If return value is >= get_num_images(), no disk is currently inserted.
|
||||
@ -455,6 +456,16 @@ typedef unsigned (*retro_get_image_index_t)(void);
|
||||
typedef bool (*retro_set_image_index_t)(unsigned index);
|
||||
// Gets total number of images which are available to use.
|
||||
typedef unsigned (*retro_get_num_images_t)(void);
|
||||
//
|
||||
// Replaces the disk image associated with index.
|
||||
// Arguments to pass in info have same requirements as retro_load_game().
|
||||
// Virtual disk tray must be ejected when calling this.
|
||||
struct retro_game_info;
|
||||
typedef bool (*retro_replace_image_index_t)(unsigned index, const struct retro_game_info *info);
|
||||
// Adds a new valid index (get_num_images()) to the internal disk list.
|
||||
// This will increment subsequent return values from get_num_images() by 1.
|
||||
// This image index cannot be used until a disk image has been set with replace_image_index.
|
||||
typedef bool (*retro_add_image_index_t)(void);
|
||||
|
||||
struct retro_disk_control_callback
|
||||
{
|
||||
@ -464,6 +475,9 @@ struct retro_disk_control_callback
|
||||
retro_get_image_index_t get_image_index;
|
||||
retro_set_image_index_t set_image_index;
|
||||
retro_get_num_images_t get_num_images;
|
||||
|
||||
retro_replace_image_index_t replace_image_index;
|
||||
retro_add_image_index_t add_image_index;
|
||||
};
|
||||
|
||||
enum retro_pixel_format
|
||||
|
Loading…
x
Reference in New Issue
Block a user