1 /* Copyright (C) 2010-2020 The RetroArch team 2 * 3 * --------------------------------------------------------------------------------------- 4 * The following license statement only applies to this file (file_stream_transforms.h). 5 * --------------------------------------------------------------------------------------- 6 * 7 * Permission is hereby granted, free of charge, 8 * to any person obtaining a copy of this software and associated documentation files (the "Software"), 9 * to deal in the Software without restriction, including without limitation the rights to 10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 11 * and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 16 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 19 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 23 #ifndef __LIBRETRO_SDK_FILE_STREAM_TRANSFORMS_H 24 #define __LIBRETRO_SDK_FILE_STREAM_TRANSFORMS_H 25 26 #include <stdint.h> 27 #include <string.h> 28 #include <retro_common_api.h> 29 #include <streams/file_stream.h> 30 31 RETRO_BEGIN_DECLS 32 33 #ifndef SKIP_STDIO_REDEFINES 34 35 #define FILE RFILE 36 37 #undef fopen 38 #undef fclose 39 #undef ftell 40 #undef fseek 41 #undef fread 42 #undef fgets 43 #undef fgetc 44 #undef fwrite 45 #undef fputc 46 #undef fflush 47 #undef fprintf 48 #undef ferror 49 #undef feof 50 #undef fscanf 51 52 #define fopen rfopen 53 #define fclose rfclose 54 #define ftell rftell 55 #define fseek rfseek 56 #define fread rfread 57 #define fgets rfgets 58 #define fgetc rfgetc 59 #define fwrite rfwrite 60 #define fputc rfputc 61 #define fflush rfflush 62 #define fprintf rfprintf 63 #define ferror rferror 64 #define feof rfeof 65 #define fscanf rfscanf 66 67 #endif 68 69 RFILE* rfopen(const char *path, const char *mode); 70 71 int rfclose(RFILE* stream); 72 73 int64_t rftell(RFILE* stream); 74 75 int64_t rfseek(RFILE* stream, int64_t offset, int origin); 76 77 int64_t rfread(void* buffer, 78 size_t elem_size, size_t elem_count, RFILE* stream); 79 80 char *rfgets(char *buffer, int maxCount, RFILE* stream); 81 82 int rfgetc(RFILE* stream); 83 84 int64_t rfwrite(void const* buffer, 85 size_t elem_size, size_t elem_count, RFILE* stream); 86 87 int rfputc(int character, RFILE * stream); 88 89 int64_t rfflush(RFILE * stream); 90 91 int rfprintf(RFILE * stream, const char * format, ...); 92 93 int rferror(RFILE* stream); 94 95 int rfeof(RFILE* stream); 96 97 int rfscanf(RFILE * stream, const char * format, ...); 98 99 RETRO_END_DECLS 100 101 #endif 102