aboutsummaryrefslogtreecommitdiff
path: root/include/smdatapack.hpp
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-06 21:28:40 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-06 21:28:40 +0800
commit038b31f0158a0018dbf2eceb71026cc4e665faa9 (patch)
treea373ddab7bc162e477e28a780b0d729660ff8634 /include/smdatapack.hpp
parenta8077292d5d9118866f7358c11a90c855e1b1b02 (diff)
downloadSMELT-038b31f0158a0018dbf2eceb71026cc4e665faa9.tar.xz
Add the SMELT files...
Please, do not laugh too loudly.
Diffstat (limited to 'include/smdatapack.hpp')
-rw-r--r--include/smdatapack.hpp56
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