git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			152 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __acestruc_h
 | 
						|
#define __acestruc_h
 | 
						|
 | 
						|
#include "declare.h"
 | 
						|
#include "portable.h"
 | 
						|
 | 
						|
#define acesign_len           7
 | 
						|
#define bytes_before_acesign  7
 | 
						|
#define acever               10
 | 
						|
 | 
						|
struct tech
 | 
						|
{
 | 
						|
   UCHAR TYPE;
 | 
						|
   UCHAR QUAL;
 | 
						|
   USHORT PARM;
 | 
						|
};
 | 
						|
 | 
						|
typedef struct tacehead
 | 
						|
{
 | 
						|
   USHORT HEAD_CRC;
 | 
						|
   USHORT HEAD_SIZE;
 | 
						|
   UCHAR  HEAD_TYPE;
 | 
						|
   USHORT HEAD_FLAGS;
 | 
						|
   ULONG  ADDSIZE;
 | 
						|
   UCHAR  other[2048];
 | 
						|
 | 
						|
}  thead;
 | 
						|
 | 
						|
typedef struct tacemhead
 | 
						|
{
 | 
						|
   USHORT HEAD_CRC;
 | 
						|
   USHORT HEAD_SIZE;
 | 
						|
   UCHAR  HEAD_TYPE;
 | 
						|
   USHORT HEAD_FLAGS;
 | 
						|
 | 
						|
   UCHAR  ACESIGN[acesign_len];
 | 
						|
   UCHAR  VER_MOD;
 | 
						|
   UCHAR  VER_CR;
 | 
						|
   UCHAR  HOST_CR;
 | 
						|
   UCHAR  VOL_NUM;
 | 
						|
   ULONG  TIME_CR;
 | 
						|
   USHORT RES1;
 | 
						|
   USHORT RES2;
 | 
						|
   ULONG  RES;
 | 
						|
   UCHAR  AV_SIZE;
 | 
						|
   UCHAR  AV[256];
 | 
						|
   USHORT COMM_SIZE;
 | 
						|
   UCHAR  COMM[2048];
 | 
						|
 | 
						|
}  tmhead;
 | 
						|
 | 
						|
#ifndef PATH_MAX
 | 
						|
  #define PATH_MAX   512
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct tacefhead
 | 
						|
{
 | 
						|
   USHORT HEAD_CRC;
 | 
						|
   USHORT HEAD_SIZE;
 | 
						|
   UCHAR  HEAD_TYPE;
 | 
						|
   USHORT HEAD_FLAGS;
 | 
						|
 | 
						|
   ULONG  PSIZE;
 | 
						|
   ULONG  SIZE;
 | 
						|
   ULONG  FTIME;
 | 
						|
   ULONG  ATTR;
 | 
						|
   ULONG  CRC32;
 | 
						|
   struct tech TECH;
 | 
						|
   USHORT RESERVED;
 | 
						|
   USHORT FNAME_SIZE;
 | 
						|
   UCHAR  FNAME[PATH_MAX];
 | 
						|
   USHORT COMM_SIZE;
 | 
						|
   UCHAR  COMM[2048];
 | 
						|
 | 
						|
}  tfhead;
 | 
						|
 | 
						|
#define mhead    (*t_mhead)
 | 
						|
#define fhead    (*t_fhead)
 | 
						|
#define rhead    (*t_rhead)
 | 
						|
#define tmpmhead (*t_tmpmhead)
 | 
						|
#define tmpfhead (*t_tmpfhead)
 | 
						|
#define tmprhead (*t_tmprhead)
 | 
						|
 | 
						|
#define mhead_size h_mhead_size(mhead)
 | 
						|
#define fhead_size h_fhead_size(fhead)
 | 
						|
#define rhead_size ((INT)&rhead.REC_CRC-(INT)&head.HEAD_TYPE+sizeof(rhead.REC_CRC))
 | 
						|
 | 
						|
#define h_mhead_size(phead) ((INT)mhead.AV-(INT)&head.HEAD_TYPE+        \
 | 
						|
                    (phead).AV_SIZE+                                    \
 | 
						|
                    ((phead).HEAD_FLAGS&ACE_COMM?                       \
 | 
						|
                      sizeof((phead).COMM_SIZE)+H_MCOMM_SIZE(phead):0))
 | 
						|
 | 
						|
 | 
						|
#define h_fhead_size(phead) ((INT)fhead.FNAME-(INT)&head.HEAD_TYPE+     \
 | 
						|
                    (phead).FNAME_SIZE+                                 \
 | 
						|
                    ((phead).HEAD_FLAGS&ACE_COMM?                       \
 | 
						|
                      sizeof((phead).COMM_SIZE)+H_FCOMM_SIZE(phead):0))
 | 
						|
 | 
						|
 | 
						|
//main-comment-definitions
 | 
						|
#define H_MCOMM_SIZE(head) (BUF2WORD((UCHAR*)&(head).AV+(head).AV_SIZE))
 | 
						|
#define MCOMM_SIZE         H_MCOMM_SIZE(mhead)
 | 
						|
#define H_MCOMM(head)      ((UCHAR*)&(head).AV+(head).AV_SIZE+sizeof((head).COMM_SIZE))
 | 
						|
#define MCOMM              H_MCOMM(mhead)
 | 
						|
 | 
						|
 | 
						|
//file-comment-definitions
 | 
						|
#define H_FCOMM_SIZE(head) (BUF2WORD((UCHAR*)&(head).FNAME+(head).FNAME_SIZE))
 | 
						|
#define FCOMM_SIZE         H_FCOMM_SIZE(fhead)
 | 
						|
#define H_FCOMM(head)      ((UCHAR*)&(head).FNAME+(head).FNAME_SIZE+sizeof((head).COMM_SIZE))
 | 
						|
#define FCOMM              H_FCOMM(fhead)
 | 
						|
 | 
						|
//
 | 
						|
#define calc_head_crc getcrc16(CRC_MASK, (CHAR*)&head.HEAD_TYPE, head.HEAD_SIZE)
 | 
						|
#define GET_ADDSIZE   ((head.HEAD_FLAGS & ACE_ADDSIZE) ? head.ADDSIZE : 0)
 | 
						|
 | 
						|
//archive-header-flags
 | 
						|
#define ACE_LIM256   1024
 | 
						|
#define ACE_MULT_VOL 2048
 | 
						|
#define ACE_AV       4096
 | 
						|
#define ACE_RECOV    8192
 | 
						|
#define ACE_LOCK    16384
 | 
						|
#define ACE_SOLID   32768
 | 
						|
 | 
						|
//file-header-flags
 | 
						|
#define ACE_ADDSIZE  1
 | 
						|
#define ACE_PASSW    16384
 | 
						|
#define ACE_SP_BEF   4096
 | 
						|
#define ACE_SP_AFTER 8192
 | 
						|
#define ACE_COMM     2
 | 
						|
 | 
						|
//block types
 | 
						|
#define MAIN_BLK 0
 | 
						|
#define FILE_BLK 1
 | 
						|
#define REC_BLK  2
 | 
						|
 | 
						|
//known compression types
 | 
						|
#define TYPE_STORE 0
 | 
						|
#define TYPE_LZW1  1
 | 
						|
 | 
						|
//structure for archive handling
 | 
						|
struct tadat
 | 
						|
{
 | 
						|
   INT   sol,
 | 
						|
         vol,
 | 
						|
         vol_num;
 | 
						|
   ULONG time_cr;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
#endif /* __acestruc_h */
 |