mirror of
https://github.com/libretro/RetroArch
synced 2025-02-09 18:40:31 +00:00
Is this it? :D
This commit is contained in:
parent
f24653768f
commit
60b0afce95
19
movie.c
19
movie.c
@ -96,7 +96,9 @@ struct bsv_movie
|
|||||||
|
|
||||||
bool playback;
|
bool playback;
|
||||||
unsigned min_file_pos;
|
unsigned min_file_pos;
|
||||||
|
|
||||||
bool first_rewind;
|
bool first_rewind;
|
||||||
|
bool did_rewind;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define BSV_MAGIC 0x42535631
|
#define BSV_MAGIC 0x42535631
|
||||||
@ -269,24 +271,33 @@ error:
|
|||||||
|
|
||||||
void bsv_movie_set_frame_start(bsv_movie_t *handle)
|
void bsv_movie_set_frame_start(bsv_movie_t *handle)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Starting frame: %u, Pos: %ld\n", (unsigned)handle->frame_ptr, ftell(handle->file));
|
//fprintf(stderr, "Starting frame: %u, Pos: %ld\n", (unsigned)handle->frame_ptr, ftell(handle->file));
|
||||||
handle->frame_pos[handle->frame_ptr] = ftell(handle->file);
|
handle->frame_pos[handle->frame_ptr] = ftell(handle->file);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void bsv_movie_set_frame_end(bsv_movie_t *handle)
|
void bsv_movie_set_frame_end(bsv_movie_t *handle)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Frame++\n");
|
//fprintf(stderr, "Frame++\n");
|
||||||
handle->frame_ptr = (handle->frame_ptr + 1) & handle->frame_mask;
|
handle->frame_ptr = (handle->frame_ptr + 1) & handle->frame_mask;
|
||||||
|
|
||||||
|
handle->first_rewind = !handle->did_rewind;
|
||||||
|
handle->did_rewind = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void bsv_movie_frame_rewind(bsv_movie_t *handle)
|
void bsv_movie_frame_rewind(bsv_movie_t *handle)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Frame--\n");
|
//fprintf(stderr, "Frame--\n");
|
||||||
|
|
||||||
|
handle->did_rewind = true;
|
||||||
if (handle->frame_ptr <= 1)
|
if (handle->frame_ptr <= 1)
|
||||||
|
{
|
||||||
handle->frame_ptr = 0;
|
handle->frame_ptr = 0;
|
||||||
|
fseek(handle->file, handle->min_file_pos, SEEK_SET);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
handle->frame_ptr = (handle->frame_ptr - 2) & handle->frame_mask;
|
handle->frame_ptr = (handle->frame_ptr - (handle->first_rewind ? 1 : 2)) & handle->frame_mask;
|
||||||
fseek(handle->file, handle->frame_pos[handle->frame_ptr], SEEK_SET);
|
fseek(handle->file, handle->frame_pos[handle->frame_ptr], SEEK_SET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
rewind.c
10
rewind.c
@ -78,11 +78,11 @@ void state_manager_free(state_manager_t *state)
|
|||||||
bool state_manager_pop(state_manager_t *state, void **data)
|
bool state_manager_pop(state_manager_t *state, void **data)
|
||||||
{
|
{
|
||||||
*data = state->tmp_state;
|
*data = state->tmp_state;
|
||||||
//if (state->first_pop)
|
if (state->first_pop)
|
||||||
//{
|
{
|
||||||
// state->first_pop = false;
|
state->first_pop = false;
|
||||||
// return true;
|
return true;
|
||||||
//}
|
}
|
||||||
|
|
||||||
if (state->top_ptr == 0)
|
if (state->top_ptr == 0)
|
||||||
state->top_ptr = state->buf_size - 1;
|
state->top_ptr = state->buf_size - 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user