diff --git a/doomsday/engine/portable/include/fs_main.h b/doomsday/engine/portable/include/fs_main.h index 82d73b0245..55933923af 100644 --- a/doomsday/engine/portable/include/fs_main.h +++ b/doomsday/engine/portable/include/fs_main.h @@ -41,9 +41,9 @@ #ifndef LIBDENG_FILESYS_MAIN_H #define LIBDENG_FILESYS_MAIN_H -#include "zipfile.h" -#include "wadfile.h" -#include "lumpfile.h" +#include "abstractfile.h" +#include "dfile.h" +#include "lumpinfo.h" #include "pathdirectory.h" #ifdef __cplusplus diff --git a/doomsday/engine/portable/include/lumpfile.h b/doomsday/engine/portable/include/lumpfile.h index 832f709a0f..2d02ee8552 100644 --- a/doomsday/engine/portable/include/lumpfile.h +++ b/doomsday/engine/portable/include/lumpfile.h @@ -33,21 +33,11 @@ #ifndef LIBDENG_FILESYS_LUMPFILE_H #define LIBDENG_FILESYS_LUMPFILE_H -#include "lumpinfo.h" -#include "abstractfile.h" - #ifdef __cplusplus -extern "C" { -#endif - -struct lumpdirectory_s; -struct pathdirectorynode_s; -#ifdef __cplusplus -} // extern "C" -#endif +#include "abstractfile.h" +#include "lumpinfo.h" -#ifdef __cplusplus namespace de { class LumpDirectory; @@ -170,47 +160,8 @@ class LumpFile : public AbstractFile extern "C" { #endif // __cplusplus -/** - * C wrapper API: - */ - struct lumpfile_s; // The lumpfile instance (opaque) -typedef struct lumpfile_s LumpFile; - -/** - * Constructs a new LumpFile instance which must be destroyed with LumpFile_Delete() - * once it is no longer needed. - * - * @param file Virtual file handle to the underlying file resource. - * @param path Virtual file system path to associate with the resultant LumpFile. - * @param info File info descriptor for the resultant LumpFile. A copy is made. - */ -LumpFile* LumpFile_New(DFile* file, char const* path, LumpInfo const* info); - -/** - * Destroy LumpFile instance @a lump. - */ -void LumpFile_Delete(LumpFile* lump); - -struct pathdirectorynode_s* LumpFile_LumpDirectoryNode(LumpFile* lump, int lumpIdx); - -AutoStr* LumpFile_ComposeLumpPath(LumpFile* lump, int lumpIdx, char delimiter); - -LumpInfo const* LumpFile_LumpInfo(LumpFile* lump, int lumpIdx); - -int LumpFile_LumpCount(LumpFile* lump); - -size_t LumpFile_ReadLump2(LumpFile* lump, int lumpIdx, uint8_t* buffer, boolean tryCache); -size_t LumpFile_ReadLump(LumpFile* lump, int lumpIdx, uint8_t* buffer/*, tryCache = true*/); - -size_t LumpFile_ReadLumpSection2(LumpFile* lump, int lumpIdx, uint8_t* buffer, size_t startOffset, size_t length, boolean tryCache); -size_t LumpFile_ReadLumpSection(LumpFile* lump, int lumpIdx, uint8_t* buffer, size_t startOffset, size_t length/*, tryCache = true*/); - -uint8_t const* LumpFile_CacheLump(LumpFile* lump, int lumpIdx); - -void LumpFile_UnlockLump(LumpFile* lump, int lumpIdx); - -int LumpFile_PublishLumpsToDirectory(LumpFile* lump, struct lumpdirectory_s* directory); +//typedef struct lumpfile_s LumpFile; #ifdef __cplusplus } // extern "C" diff --git a/doomsday/engine/portable/src/dd_games.cpp b/doomsday/engine/portable/src/dd_games.cpp index 616824617b..b3dd7dd0e0 100644 --- a/doomsday/engine/portable/src/dd_games.cpp +++ b/doomsday/engine/portable/src/dd_games.cpp @@ -26,6 +26,7 @@ #include "dd_games.h" #include "abstractresource.h" +#include "zipfile.h" using de::FS; using de::DFile; diff --git a/doomsday/engine/portable/src/lumpfile.cpp b/doomsday/engine/portable/src/lumpfile.cpp index ab6ee3f5f7..48a92e00ed 100644 --- a/doomsday/engine/portable/src/lumpfile.cpp +++ b/doomsday/engine/portable/src/lumpfile.cpp @@ -31,9 +31,7 @@ #include using namespace de; -using de::AbstractFile; using de::DFile; -using de::LumpFile; using de::PathDirectoryNode; LumpFile::LumpFile(DFile& file, char const* path, LumpInfo const& info) @@ -98,113 +96,3 @@ int LumpFile::publishLumpsToDirectory(LumpDirectory* directory) } return 1; } - -/** - * C Wrapper API: - */ - -#define TOINTERNAL(inst) \ - (inst) != 0? reinterpret_cast(inst) : NULL - -#define TOINTERNAL_CONST(inst) \ - (inst) != 0? reinterpret_cast(inst) : NULL - -#define SELF(inst) \ - DENG2_ASSERT(inst); \ - LumpFile* self = TOINTERNAL(inst) - -#define SELF_CONST(inst) \ - DENG2_ASSERT(inst); \ - LumpFile const* self = TOINTERNAL_CONST(inst) - -struct lumpfile_s* LumpFile_New(struct dfile_s* hndl, char const* path, LumpInfo const* info) -{ - if(!info) LegacyCore_FatalError("LumpFile_New: Received invalid LumpInfo (=NULL)."); - try - { - return reinterpret_cast(new LumpFile(*reinterpret_cast(hndl), path, *info)); - } - catch(Error& er) - { - QString msg = QString("LumpFile_New: Failed to instantiate new LumpFile. ") + er.asText(); - LegacyCore_FatalError(msg.toUtf8().constData()); - exit(1); // Unreachable. - } -} - -void LumpFile_Delete(struct lumpfile_s* lump) -{ - if(lump) - { - SELF(lump); - delete self; - } -} - -struct pathdirectorynode_s* LumpFile_LumpDirectoryNode(struct lumpfile_s* lump, int lumpIdx) -{ - SELF(lump); - return reinterpret_cast( self->lumpDirectoryNode(lumpIdx) ); -} - -AutoStr* LumpFile_ComposeLumpPath(struct lumpfile_s* lump, int lumpIdx, char delimiter) -{ - SELF(lump); - return self->composeLumpPath(lumpIdx, delimiter); -} - -LumpInfo const* LumpFile_LumpInfo(struct lumpfile_s* lump, int lumpIdx) -{ - SELF(lump); - return self->lumpInfo(lumpIdx); -} - -int LumpFile_LumpCount(struct lumpfile_s* lump) -{ - SELF(lump); - return self->lumpCount(); -} - -size_t LumpFile_ReadLumpSection2(struct lumpfile_s* lump, int lumpIdx, uint8_t* buffer, - size_t startOffset, size_t length, boolean tryCache) -{ - SELF(lump); - return self->readLump(lumpIdx, buffer, startOffset, length, CPP_BOOL(tryCache)); -} - -size_t LumpFile_ReadLumpSection(struct lumpfile_s* lump, int lumpIdx, uint8_t* buffer, - size_t startOffset, size_t length) -{ - SELF(lump); - return self->readLump(lumpIdx, buffer, startOffset, length); -} - -size_t LumpFile_ReadLump2(struct lumpfile_s* lump, int lumpIdx, uint8_t* buffer, boolean tryCache) -{ - SELF(lump); - return self->readLump(lumpIdx, buffer, CPP_BOOL(tryCache)); -} - -size_t LumpFile_ReadLump(struct lumpfile_s* lump, int lumpIdx, uint8_t* buffer) -{ - SELF(lump); - return self->readLump(lumpIdx, buffer); -} - -uint8_t const* LumpFile_CacheLump(struct lumpfile_s* lump, int lumpIdx) -{ - SELF(lump); - return self->cacheLump(lumpIdx); -} - -void LumpFile_UnlockLump(struct lumpfile_s* lump, int lumpIdx) -{ - SELF(lump); - self->unlockLump(lumpIdx); -} - -int LumpFile_PublishLumpsToDirectory(struct lumpfile_s* lump, struct lumpdirectory_s* directory) -{ - SELF(lump); - return self->publishLumpsToDirectory(reinterpret_cast(directory)); -}