diff options
author | Chris Xiong <chirs241097@gmail.com> | 2015-10-06 21:28:40 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2015-10-06 21:28:40 +0800 |
commit | 038b31f0158a0018dbf2eceb71026cc4e665faa9 (patch) | |
tree | a373ddab7bc162e477e28a780b0d729660ff8634 /include/smdatapack.hpp | |
parent | a8077292d5d9118866f7358c11a90c855e1b1b02 (diff) | |
download | SMELT-038b31f0158a0018dbf2eceb71026cc4e665faa9.tar.xz |
Add the SMELT files...
Please, do not laugh too loudly.
Diffstat (limited to 'include/smdatapack.hpp')
-rw-r--r-- | include/smdatapack.hpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/smdatapack.hpp b/include/smdatapack.hpp new file mode 100644 index 0000000..2689eb3 --- /dev/null +++ b/include/smdatapack.hpp @@ -0,0 +1,56 @@ +// -*- C++ -*- +/* + * Simple MultimEdia LiTerator(SMELT) + * by Chris Xiong 2015 + * DaTaPack format support header + * + * WARNING: This library is in development and interfaces would be very + * unstable. + * + */ +#ifndef SMDTP_H +#define SMDTP_H +#include "smelt.hpp" +#include <cstdlib> +#include <zlib.h> +#include <string> +#include <map> +class smFileInfo +{ +public: + char *path,*data; + DWORD size,offset,crc; +}; +class smDtpFileR +{ +private: + int fcnt; + gzFile file; + std::map<std::string,smFileInfo> m; + + bool enmemory; + DWORD msize; + const char *cp,*bp; +public: + bool openDtp(const char* path); + bool openDtpFromMemory(const char* ptr,DWORD size); + void closeDtp(); + char* getFirstFile(); + char* getLastFile(); + char* getNextFile(const char* path); + char* getPrevFile(const char* path); + char* getFilePtr(const char* path); + void releaseFilePtr(const char* path); + DWORD getFileSize(const char* path); +}; +class smDtpFileW +{ +private: + smFileInfo files[256]; + int fcnt; +public: + smDtpFileW(); + bool addFile(const char* path,const char* realpath); + bool writeDtp(const char* path); +}; +#endif |