diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/physfscheckutils.cpp | 4 | ||||
-rw-r--r-- | src/utils/physfsrwops.h | 86 | ||||
-rw-r--r-- | src/utils/virtfsrwops.cpp (renamed from src/utils/physfsrwops.cpp) | 29 | ||||
-rw-r--r-- | src/utils/virtfsrwops.h | 45 |
4 files changed, 62 insertions, 102 deletions
diff --git a/src/utils/physfscheckutils.cpp b/src/utils/physfscheckutils.cpp index 0dc3033eb..3c0382f0c 100644 --- a/src/utils/physfscheckutils.cpp +++ b/src/utils/physfscheckutils.cpp @@ -27,7 +27,7 @@ #include "utils/stringutils.h" #include "utils/physfsmemoryobject.h" -#include "utils/physfsrwops.h" +#include "utils/virtfsrwops.h" #include <map> @@ -75,7 +75,7 @@ SDL_RWops *FakePHYSFSRWOPS_openRead(const char *restrict const name, const char *restrict const file, const unsigned line) { - return addRWops(PHYSFSRWOPS_openRead(name), name, file, line); + return addRWops(VirtFs::RWopsOpenRead(name), name, file, line); } void FakePhysFSClose(SDL_RWops *const rwops) diff --git a/src/utils/physfsrwops.h b/src/utils/physfsrwops.h deleted file mode 100644 index 98608458c..000000000 --- a/src/utils/physfsrwops.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * This code provides a glue layer between PhysicsFS and Simple Directmedia - * Layer's (SDL) RWops i/o abstraction. - * - * License: this code is public domain. I make no warranty that it is useful, - * correct, harmless, or environmentally safe. - * - * This particular file may be used however you like, including copying it - * verbatim into a closed-source project, exploiting it commercially, and - * removing any trace of my name from the source (although I hope you won't - * do that). I welcome enhancements and corrections to this file, but I do - * not require you to send me patches if you make changes. This code has - * NO WARRANTY. - * - * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. - * Please see LICENSE.txt in the root of the source tree. - * - * SDL falls under the LGPL license. You can get SDL at http://www.libsdl.org/ - * - * This file was written by Ryan C. Gordon. (icculus@icculus.org). - * - * Copyright (C) 2012-2017 The ManaPlus Developers - */ - -#ifndef UTILS_PHYSFSRWOPS_H -#define UTILS_PHYSFSRWOPS_H - -#include "localconsts.h" - -#include <SDL_rwops.h> - -#include "utils/virtfs.h" - -/** - * Open a platform-independent filename for reading, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param fname File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -SDL_RWops *PHYSFSRWOPS_openRead(const char *const fname) A_WARN_UNUSED; - -/** - * Open a platform-independent filename for writing, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param fname File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -SDL_RWops *PHYSFSRWOPS_openWrite(const char *const fname) A_WARN_UNUSED; - -/** - * Open a platform-independent filename for appending, and make it accessible - * via an SDL_RWops structure. The file will be closed in PhysicsFS when the - * RWops is closed. PhysicsFS should be configured to your liking before - * opening files through this method. - * - * @param fname File to open in platform-independent notation. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -SDL_RWops *PHYSFSRWOPS_openAppend(const char *const fname) A_WARN_UNUSED; - -/** - * Make a SDL_RWops from an existing PhysicsFS file handle. You should - * dispose of any references to the handle after successful creation of - * the RWops. The actual PhysicsFS handle will be destroyed when the - * RWops is closed. - * - * @param handle a valid PhysicsFS file handle. - * @return A valid SDL_RWops structure on success, NULL on error. Specifics - * of the error can be gleaned from PHYSFS_getLastError(). - */ -SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *const handle) A_WARN_UNUSED; - -#ifdef DUMP_LEAKED_RESOURCES -void reportRWops(); -#endif // DUMP_LEAKED_RESOURCES - -#endif // UTILS_PHYSFSRWOPS_H diff --git a/src/utils/physfsrwops.cpp b/src/utils/virtfsrwops.cpp index e642f71aa..adcfa2784 100644 --- a/src/utils/physfsrwops.cpp +++ b/src/utils/virtfsrwops.cpp @@ -22,7 +22,7 @@ * Copyright (C) 2012-2017 The ManaPlus Developers */ -#include "utils/physfsrwops.h" +#include "utils/virtfsrwops.h" #include "logger.h" @@ -43,7 +43,8 @@ static int openedRWops = 0; #endif // DUMP_LEAKED_RESOURCES -static PHYSFSINT physfsrwops_seek(SDL_RWops *const rw, const PHYSFSINT offset, +static PHYSFSINT physfsrwops_seek(SDL_RWops *const rw, + const PHYSFSINT offset, const int whence) { if (!rw) @@ -234,13 +235,13 @@ static SDL_RWops *create_rwops(PHYSFS_file *const handle) return retval; } /* create_rwops */ -SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *const handle) +SDL_RWops *VirtFs::MakeRWops(PHYSFS_file *const handle) { SDL_RWops *retval = nullptr; if (!handle) { logger->assertLog("physfsrwops_seek: NULL pointer passed to " - "PHYSFSRWOPS_makeRWops()."); + "RWopsmakeRWops()."); } else { @@ -248,7 +249,7 @@ SDL_RWops *PHYSFSRWOPS_makeRWops(PHYSFS_file *const handle) } return retval; -} /* PHYSFSRWOPS_makeRWops */ +} /* RWopsmakeRWops */ #ifdef __APPLE__ static bool checkFilePath(const char *const fname) @@ -261,9 +262,9 @@ static bool checkFilePath(const char *const fname) } #endif // __APPLE__ -SDL_RWops *PHYSFSRWOPS_openRead(const char *const fname) +SDL_RWops *VirtFs::RWopsOpenRead(const char *const fname) { - BLOCK_START("PHYSFSRWOPS_openRead") + BLOCK_START("RWopsopenRead") #ifdef __APPLE__ if (!checkFilePath(fname)) return nullptr; @@ -274,15 +275,15 @@ SDL_RWops *PHYSFSRWOPS_openRead(const char *const fname) #endif // USE_FUZZER #ifdef USE_PROFILER SDL_RWops *const ret = create_rwops(VirtFs::openRead(fname)); - BLOCK_END("PHYSFSRWOPS_openRead") + BLOCK_END("RWopsopenRead") return ret; #else // USE_PROFILER return create_rwops(VirtFs::openRead(fname)); #endif // USE_PROFILER -} /* PHYSFSRWOPS_openRead */ +} /* RWopsopenRead */ -SDL_RWops *PHYSFSRWOPS_openWrite(const char *const fname) +SDL_RWops *VirtFs::RWopsOpenWrite(const char *const fname) { #ifdef __APPLE__ if (!checkFilePath(fname)) @@ -290,9 +291,9 @@ SDL_RWops *PHYSFSRWOPS_openWrite(const char *const fname) #endif // __APPLE__ return create_rwops(VirtFs::openWrite(fname)); -} /* PHYSFSRWOPS_openWrite */ +} /* RWopsopenWrite */ -SDL_RWops *PHYSFSRWOPS_openAppend(const char *const fname) +SDL_RWops *VirtFs::RWopsOpenAppend(const char *const fname) { #ifdef __APPLE__ if (!checkFilePath(fname)) @@ -300,10 +301,10 @@ SDL_RWops *PHYSFSRWOPS_openAppend(const char *const fname) #endif // __APPLE__ return create_rwops(VirtFs::openAppend(fname)); -} /* PHYSFSRWOPS_openAppend */ +} /* RWopsopenAppend */ #ifdef DUMP_LEAKED_RESOURCES -void reportRWops() +void VirtFs::reportRWops() { if (openedRWops) { diff --git a/src/utils/virtfsrwops.h b/src/utils/virtfsrwops.h new file mode 100644 index 000000000..83aa79996 --- /dev/null +++ b/src/utils/virtfsrwops.h @@ -0,0 +1,45 @@ +/* + * This code provides a glue layer between PhysicsFS and Simple Directmedia + * Layer's (SDL) RWops i/o abstraction. + * + * License: this code is public domain. I make no warranty that it is useful, + * correct, harmless, or environmentally safe. + * + * This particular file may be used however you like, including copying it + * verbatim into a closed-source project, exploiting it commercially, and + * removing any trace of my name from the source (although I hope you won't + * do that). I welcome enhancements and corrections to this file, but I do + * not require you to send me patches if you make changes. This code has + * NO WARRANTY. + * + * Unless otherwise stated, the rest of PhysicsFS falls under the zlib license. + * Please see LICENSE.txt in the root of the source tree. + * + * SDL falls under the LGPL license. You can get SDL at http://www.libsdl.org/ + * + * This file was written by Ryan C. Gordon. (icculus@icculus.org). + * + * Copyright (C) 2012-2017 The ManaPlus Developers + */ + +#ifndef UTILS_PHYSFSRWOPS_H +#define UTILS_PHYSFSRWOPS_H + +#include "localconsts.h" + +#include <SDL_rwops.h> + +#include "utils/virtfs.h" + +namespace VirtFs +{ + SDL_RWops *RWopsOpenRead(const char *const fname) A_WARN_UNUSED; + SDL_RWops *RWopsOpenWrite(const char *const fname) A_WARN_UNUSED; + SDL_RWops *RWopsOpenAppend(const char *const fname) A_WARN_UNUSED; + SDL_RWops *MakeRWops(PHYSFS_file *const handle) A_WARN_UNUSED; +#ifdef DUMP_LEAKED_RESOURCES + void reportRWops(); +#endif // DUMP_LEAKED_RESOURCES +} // namespace VirtFs + +#endif // UTILS_PHYSFSRWOPS_H |