Add basic input
Signed-off-by: Mahyar Koshkouei <mahyar.koshkouei@gmail.com>
This commit is contained in:
parent
5961f9b08d
commit
a376bc5cb8
|
@ -240,6 +240,7 @@ void retro_reset(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void audio_callback(void)
|
static void audio_callback(void)
|
||||||
{
|
{
|
||||||
static unsigned phase;
|
static unsigned phase;
|
||||||
|
@ -252,9 +253,48 @@ static void audio_callback(void)
|
||||||
|
|
||||||
phase %= 100;
|
phase %= 100;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void retropad_update_input(void)
|
||||||
|
{
|
||||||
|
input_poll_cb();
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_LEFT))
|
||||||
|
mpv_command_string(mpv, "seek -5");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_RIGHT))
|
||||||
|
mpv_command_string(mpv, "seek 5");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_UP))
|
||||||
|
mpv_command_string(mpv, "seek 60");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_DOWN))
|
||||||
|
mpv_command_string(mpv, "seek -60");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_L))
|
||||||
|
mpv_command_string(mpv, "cycle audio");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_R))
|
||||||
|
mpv_command_string(mpv, "cycle sub");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_A))
|
||||||
|
mpv_command_string(mpv, "cycle pause");
|
||||||
|
|
||||||
|
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
|
||||||
|
RETRO_DEVICE_ID_JOYPAD_X))
|
||||||
|
mpv_command_string(mpv, "show-progress");
|
||||||
|
}
|
||||||
|
|
||||||
void retro_run(void)
|
void retro_run(void)
|
||||||
{
|
{
|
||||||
|
retropad_update_input();
|
||||||
/* TODO: Implement an audio callback feature in to libmpv */
|
/* TODO: Implement an audio callback feature in to libmpv */
|
||||||
//audio_callback();
|
//audio_callback();
|
||||||
|
|
||||||
|
@ -283,12 +323,26 @@ bool retro_load_game(const struct retro_game_info *info)
|
||||||
{
|
{
|
||||||
/* Supported on most systems. */
|
/* Supported on most systems. */
|
||||||
enum retro_pixel_format fmt = RETRO_PIXEL_FORMAT_RGB565;
|
enum retro_pixel_format fmt = RETRO_PIXEL_FORMAT_RGB565;
|
||||||
|
struct retro_input_descriptor desc[] = {
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A, "Pause/Play" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X, "Show Progress" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT, "Seek -5 seconds" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP, "Seek +60 seconds" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN, "Seek -60 seconds" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT, "Seek +5 seconds" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L, "Cycle Audio Track" },
|
||||||
|
{ 0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R, "Cycle Subtitle Track" },
|
||||||
|
|
||||||
|
{ 0 },
|
||||||
|
};
|
||||||
|
|
||||||
/* Copy the file path to a global variable as we need it in context_reset()
|
/* Copy the file path to a global variable as we need it in context_reset()
|
||||||
* where mpv is initialised.
|
* where mpv is initialised.
|
||||||
*/
|
*/
|
||||||
filepath = strdup(info->path);
|
filepath = strdup(info->path);
|
||||||
|
|
||||||
|
environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc);
|
||||||
|
|
||||||
if (!environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt))
|
if (!environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "RGB565 is not supported.\n");
|
fprintf(stderr, "RGB565 is not supported.\n");
|
||||||
|
@ -300,6 +354,7 @@ bool retro_load_game(const struct retro_game_info *info)
|
||||||
log_cb(RETRO_LOG_ERROR, "HW Context could not be initialized\n");
|
log_cb(RETRO_LOG_ERROR, "HW Context could not be initialized\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue