diff options
author | twinaphex | 2018-01-17 00:17:17 +0100 |
---|---|---|
committer | twinaphex | 2018-01-17 00:17:17 +0100 |
commit | c21dcf2342c50554f50e2df302287f5efc7ee5c2 (patch) | |
tree | 6f5525cb8b8a67f7575c339c2c063ecd603f3696 /libretro/memstream.c | |
parent | 077f38e2702c4a704259c9026cf584a423d55982 (diff) | |
download | snes9x2002-c21dcf2342c50554f50e2df302287f5efc7ee5c2.tar.gz snes9x2002-c21dcf2342c50554f50e2df302287f5efc7ee5c2.tar.bz2 snes9x2002-c21dcf2342c50554f50e2df302287f5efc7ee5c2.zip |
Update memory stream
Diffstat (limited to 'libretro/memstream.c')
-rw-r--r-- | libretro/memstream.c | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/libretro/memstream.c b/libretro/memstream.c deleted file mode 100644 index 5d624d7..0000000 --- a/libretro/memstream.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. - * - * (c) Copyright 1996 - 2001 Gary Henderson (gary.henderson@ntlworld.com) and - * Jerremy Koot (jkoot@snes9x.com) - * - * Super FX C emulator code - * (c) Copyright 1997 - 1999 Ivar (ivar@snes9x.com) and - * Gary Henderson. - * - * (c) Copyright 2014 - 2016 Daniel De Matteis. (UNDER NO CIRCUMSTANCE - * WILL COMMERCIAL RIGHTS EVER BE APPROPRIATED TO ANY PARTY) - * - * Super FX assembler emulator code (c) Copyright 1998 zsKnight and _Demo_. - * - * DSP1 emulator code (c) Copyright 1998 Ivar, _Demo_ and Gary Henderson. - * C4 asm and some C emulation code (c) Copyright 2000 zsKnight and _Demo_. - * C4 C code (c) Copyright 2001 Gary Henderson (gary.henderson@ntlworld.com). - * - * DOS port code contains the works of other authors. See headers in - * individual files. - * - * Snes9x homepage: http://www.snes9x.com - * - * Permission to use, copy, modify and distribute Snes9x in both binary and - * source form, for non-commercial purposes, is hereby granted without fee, - * providing that this license information and copyright notice appear with - * all copies and any derived work. - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event shall the authors be held liable for any damages - * arising from the use of this software. - * - * Snes9x is freeware for PERSONAL USE only. Commercial users should - * seek permission of the copyright holders first. Commercial use includes - * charging money for Snes9x or software derived from Snes9x. - * - * The copyright holders request that bug fixes and improvements to the code - * should be forwarded to them so everyone can benefit from the modifications - * in future versions. - * - * Super NES and Super Nintendo Entertainment System are trademarks of - * Nintendo Co., Limited and its subsidiary companies. - */ - -#include <string.h> -#include <stdlib.h> -#include <stdio.h> -#include "memstream.h" - -static uint8_t* g_buffer = NULL; -static size_t g_size = 0; - -static size_t last_file_size = 0; - -struct memstream -{ - uint8_t *m_buf; - size_t m_size; - size_t m_ptr; -}; - -void memstream_set_buffer(uint8_t *buffer, size_t size) -{ - g_buffer = buffer; - g_size = size; -} - -size_t memstream_get_last_size() -{ - return last_file_size; -} - -static void memstream_init(memstream_t *stream, uint8_t *buffer, size_t max_size) -{ - stream->m_buf = buffer; - stream->m_size = max_size; - stream->m_ptr = 0; -} - -memstream_t *memstream_open() -{ - memstream_t *stream; - if (!g_buffer || !g_size) - return NULL; - - stream = (memstream_t*)calloc(1, sizeof(*stream)); - memstream_init(stream, g_buffer, g_size); - - g_buffer = NULL; - g_size = 0; - return stream; -} - -void memstream_close(memstream_t *stream) -{ - last_file_size = stream->m_ptr; - free(stream); -} - -size_t memstream_read(memstream_t *stream, void *data, size_t bytes) -{ - size_t avail = stream->m_size - stream->m_ptr; - if (bytes > avail) - bytes = avail; - - memcpy(data, stream->m_buf + stream->m_ptr, bytes); - stream->m_ptr += bytes; - return bytes; -} - -size_t memstream_write(memstream_t *stream, const void *data, size_t bytes) -{ - size_t avail = stream->m_size - stream->m_ptr; - if (bytes > avail) - bytes = avail; - - memcpy(stream->m_buf + stream->m_ptr, data, bytes); - stream->m_ptr += bytes; - return bytes; -} - -int memstream_seek(memstream_t *stream, int offset, int whence) -{ - size_t ptr; - if (whence == SEEK_SET) - ptr = offset; - else if (whence == SEEK_CUR) - ptr = stream->m_ptr + offset; - else if (whence == SEEK_END) - ptr = stream->m_size + offset; - else - return -1; - - if (ptr <= stream->m_size) - { - stream->m_ptr = ptr; - return 0; - } - else - return -1; -} - -size_t memstream_pos(memstream_t *stream) -{ - return stream->m_ptr; -} - -char *memstream_gets(memstream_t *stream, char *buffer, size_t len) -{ - return NULL; -} - -int memstream_getc(memstream_t *stream) -{ - if (stream->m_ptr >= stream->m_size) - return EOF; - else - return stream->m_buf[stream->m_ptr++]; -} |