Do not play audio when rewinding, sound is borked even when shuffling.
This commit is contained in:
parent
351e098da1
commit
849e9aa734
|
@ -148,6 +148,7 @@ struct global
|
||||||
|
|
||||||
state_manager_t *state_manager;
|
state_manager_t *state_manager;
|
||||||
void *state_buf;
|
void *state_buf;
|
||||||
|
bool frame_is_reverse;
|
||||||
bool rewind_enable;
|
bool rewind_enable;
|
||||||
|
|
||||||
#ifdef HAVE_FFMPEG
|
#ifdef HAVE_FFMPEG
|
||||||
|
|
8
ssnes.c
8
ssnes.c
|
@ -169,6 +169,10 @@ static void audio_sample(uint16_t left, uint16_t right)
|
||||||
|
|
||||||
if (g_extern.audio_data.data_ptr >= g_extern.audio_data.chunk_size)
|
if (g_extern.audio_data.data_ptr >= g_extern.audio_data.chunk_size)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (g_extern.frame_is_reverse) // Disable fucked up audio when rewinding...
|
||||||
|
memset(g_extern.audio_data.data, 0, g_extern.audio_data.chunk_size * sizeof(float));
|
||||||
|
|
||||||
SRC_DATA src_data;
|
SRC_DATA src_data;
|
||||||
|
|
||||||
src_data.data_in = g_extern.audio_data.data;
|
src_data.data_in = g_extern.audio_data.data;
|
||||||
|
@ -792,6 +796,7 @@ static void check_input_rate(void)
|
||||||
|
|
||||||
static void check_rewind(void)
|
static void check_rewind(void)
|
||||||
{
|
{
|
||||||
|
g_extern.frame_is_reverse = false;
|
||||||
if (!g_extern.state_manager)
|
if (!g_extern.state_manager)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -799,7 +804,10 @@ static void check_rewind(void)
|
||||||
{
|
{
|
||||||
void *buf;
|
void *buf;
|
||||||
if (state_manager_pop(g_extern.state_manager, &buf))
|
if (state_manager_pop(g_extern.state_manager, &buf))
|
||||||
|
{
|
||||||
snes_unserialize(buf, snes_serialize_size());
|
snes_unserialize(buf, snes_serialize_size());
|
||||||
|
g_extern.frame_is_reverse = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue