38 |
|
|
39 |
#include <string> |
#include <string> |
40 |
#include <list> |
#include <list> |
41 |
|
#include <set> |
42 |
#include <map> |
#include <map> |
43 |
#include <iostream> |
#include <iostream> |
44 |
|
|
56 |
#include <stdint.h> |
#include <stdint.h> |
57 |
|
|
58 |
#ifdef WIN32 |
#ifdef WIN32 |
|
# include "../win32/libgig_private.h" // like config.h, automatically generated by Dev-C++ |
|
59 |
# include <windows.h> |
# include <windows.h> |
60 |
typedef unsigned int uint; |
typedef unsigned int uint; |
|
typedef unsigned char uint8_t; |
|
|
typedef unsigned short uint16_t; |
|
|
typedef unsigned int uint32_t; |
|
|
# define PACKAGE "libgig" |
|
|
# define VERSION VER_STRING // VER_STRING defined in libgig_private.h |
|
61 |
#endif // WIN32 |
#endif // WIN32 |
62 |
|
|
63 |
#include <stdio.h> |
#include <stdio.h> |
143 |
public: |
public: |
144 |
Chunk(File* pFile, unsigned long StartPos, List* Parent); |
Chunk(File* pFile, unsigned long StartPos, List* Parent); |
145 |
String GetChunkIDString(); |
String GetChunkIDString(); |
146 |
uint32_t GetChunkID() { return ChunkID; }; ///< Chunk ID in unsigned integer representation. |
uint32_t GetChunkID() { return ChunkID; } ///< Chunk ID in unsigned integer representation. |
147 |
List* GetParent() { return pParent; }; ///< Returns pointer to the chunk's parent list chunk. |
List* GetParent() { return pParent; } ///< Returns pointer to the chunk's parent list chunk. |
148 |
unsigned long GetSize() { return CurrentChunkSize; }; ///< Chunk size in bytes (without header, thus the chunk data body) |
unsigned long GetSize() { return CurrentChunkSize; } ///< Chunk size in bytes (without header, thus the chunk data body) |
149 |
unsigned long GetNewSize() { return NewChunkSize; }; ///< New chunk size if it was modified with Resize(). |
unsigned long GetNewSize() { return NewChunkSize; } ///< New chunk size if it was modified with Resize(). |
150 |
unsigned long GetPos() { return ulPos; }; ///< Position within the chunk data body |
unsigned long GetPos() { return ulPos; } ///< Position within the chunk data body |
151 |
unsigned long GetFilePos() { return ulStartPos + ulPos; }; ///< Current, actual offset in file. |
unsigned long GetFilePos() { return ulStartPos + ulPos; } ///< Current, actual offset in file. |
152 |
unsigned long SetPos(unsigned long Where, stream_whence_t Whence = stream_start); |
unsigned long SetPos(unsigned long Where, stream_whence_t Whence = stream_start); |
153 |
unsigned long RemainingBytes(); |
unsigned long RemainingBytes(); |
154 |
stream_state_t GetState(); |
stream_state_t GetState(); |
311 |
friend class List; |
friend class List; |
312 |
private: |
private: |
313 |
stream_mode_t Mode; |
stream_mode_t Mode; |
314 |
ChunkList ResizedChunks; ///< All chunks which have been resized (enlarged / shortened). |
std::set<Chunk*> ResizedChunks; ///< All chunks which have been resized (enlarged / shortened). |
315 |
|
|
316 |
unsigned long GetFileSize(); |
unsigned long GetFileSize(); |
317 |
void ResizeFile(unsigned long ulNewSize); |
void ResizeFile(unsigned long ulNewSize); |
331 |
public: |
public: |
332 |
String Message; |
String Message; |
333 |
|
|
334 |
Exception(String Message) { Exception::Message = Message; }; |
Exception(String Message) { Exception::Message = Message; } |
335 |
void PrintMessage(); |
void PrintMessage(); |
336 |
virtual ~Exception() {}; |
virtual ~Exception() {} |
337 |
}; |
}; |
338 |
|
|
339 |
String libraryName(); |
String libraryName(); |