diff --git a/libretro-common/include/streams/interface_stream.h b/libretro-common/include/streams/interface_stream.h index f2518a3f15..9e480beba7 100644 --- a/libretro-common/include/streams/interface_stream.h +++ b/libretro-common/include/streams/interface_stream.h @@ -70,4 +70,6 @@ int intfstream_getc(intfstream_internal_t *intf); int intfstream_seek(intfstream_internal_t *intf, int offset, int whence); +void intfstream_rewind(intfstream_internal_t *intf); + #endif diff --git a/libretro-common/streams/interface_stream.c b/libretro-common/streams/interface_stream.c index 21621af9eb..32f03a1f92 100644 --- a/libretro-common/streams/interface_stream.c +++ b/libretro-common/streams/interface_stream.c @@ -204,3 +204,16 @@ int intfstream_getc(intfstream_internal_t *intf) return 0; } + +void intfstream_rewind(intfstream_internal_t *intf) +{ + switch (intf->type) + { + case INTFSTREAM_FILE: + filestream_rewind(intf->file.fp); + break; + case INTFSTREAM_MEMORY: + memstream_rewind(intf->memory.fp); + break; + } +}