| /*!**************************************************************************** | |
| @file PVRTResourceFile.h | |
| @copyright Copyright (c) Imagination Technologies Limited. | |
| @brief Simple resource file wrapper | |
| ******************************************************************************/ | |
| #ifndef _PVRTRESOURCEFILE_H_ | |
| #define _PVRTRESOURCEFILE_H_ | |
| #include <stdlib.h> | |
| #include "PVRTString.h" | |
| typedef void* (*PFNLoadFileFunc)(const char*, char** pData, size_t &size); | |
| typedef bool (*PFNReleaseFileFunc)(void* handle); | |
| /*!*************************************************************************** | |
| @class CPVRTResourceFile | |
| @brief Simple resource file wrapper | |
| *****************************************************************************/ | |
| class CPVRTResourceFile | |
| { | |
| public: | |
| /*!*************************************************************************** | |
| @fn SetReadPath | |
| @param[in] pszReadPath The path where you would like to read from | |
| @brief Sets the read path | |
| *****************************************************************************/ | |
| static void SetReadPath(const char* pszReadPath); | |
| /*!*************************************************************************** | |
| @fn GetReadPath | |
| @return The currently set read path | |
| @brief Returns the currently set read path | |
| *****************************************************************************/ | |
| static CPVRTString GetReadPath(); | |
| /*!*************************************************************************** | |
| @fn SetLoadReleaseFunctions | |
| @param[in] pLoadFileFunc Function to use for opening a file | |
| @param[in] pReleaseFileFunc Function to release any data allocated by the load function | |
| @brief This function is used to override the CPVRTResource file loading functions. If | |
| you pass NULL in as the load function CPVRTResource will use the default functions. | |
| *****************************************************************************/ | |
| static void SetLoadReleaseFunctions(void* pLoadFileFunc, void* pReleaseFileFunc); | |
| /*!*************************************************************************** | |
| @brief CPVRTResourceFile constructor | |
| @param[in] pszFilename Name of the file you would like to open | |
| *****************************************************************************/ | |
| CPVRTResourceFile(const char* pszFilename); | |
| /*!*************************************************************************** | |
| @brief CPVRTResourceFile constructor | |
| @param[in] pData A pointer to the data you would like to use | |
| @param[in] i32Size The size of the data | |
| *****************************************************************************/ | |
| CPVRTResourceFile(const char* pData, size_t i32Size); | |
| /*!*************************************************************************** | |
| @fn ~CPVRTResourceFile | |
| @brief Destructor | |
| *****************************************************************************/ | |
| virtual ~CPVRTResourceFile(); | |
| /*!*************************************************************************** | |
| @fn IsOpen | |
| @return true if the file is open | |
| @brief Is the file open | |
| *****************************************************************************/ | |
| bool IsOpen() const; | |
| /*!*************************************************************************** | |
| @fn IsMemoryFile | |
| @return true if the file was opened from memory | |
| @brief Was the file opened from memory | |
| *****************************************************************************/ | |
| bool IsMemoryFile() const; | |
| /*!*************************************************************************** | |
| @fn Size | |
| @return The size of the opened file | |
| @brief Returns the size of the opened file | |
| *****************************************************************************/ | |
| size_t Size() const; | |
| /*!*************************************************************************** | |
| @fn DataPtr | |
| @return A pointer to the file data | |
| @brief Returns a pointer to the file data. If the data is expected | |
| to be a string don't assume that it is null-terminated. | |
| *****************************************************************************/ | |
| const void* DataPtr() const; | |
| /*!*************************************************************************** | |
| @fn Close | |
| @brief Closes the file | |
| *****************************************************************************/ | |
| void Close(); | |
| protected: | |
| bool m_bOpen; | |
| bool m_bMemoryFile; | |
| size_t m_Size; | |
| const char* m_pData; | |
| void *m_Handle; | |
| static CPVRTString s_ReadPath; | |
| static PFNLoadFileFunc s_pLoadFileFunc; | |
| static PFNReleaseFileFunc s_pReleaseFileFunc; | |
| }; | |
| #endif // _PVRTRESOURCEFILE_H_ | |
| /***************************************************************************** | |
| End of file (PVRTResourceFile.h) | |
| *****************************************************************************/ | |