?? faxhead.hpp
字號(hào):
#ifndef __FAXHEADER_HPP__
#define __FAXHEADER_HPP__
#define FAX_ADDR 0xff // value for address byte
#define FAX_CTL 0xC0 // value for control field
#define FAX_CTL_FF 0xC8 // control field + final frame
#define FAX_FCF_DIS 0x01 // digital ID signal
#define FAX_FCF_CSI 0x02 // called subscriber ID
#define FAX_FCF_NSF 0x04 // non-standard facilities
#define FAX_FCF_DCS 0xC1 // digital command signal
#define FAX_FCF_TSI 0xC2 // transmitting subscriber ID
#define FAX_FCF_CFR 0x21 // confirmation to receive
#define FAX_FCF_FTT 0x22 // failure to train
#define FAX_FCF_EOM 0xF1 // end of message
#define FAX_FCF_MPS 0xF2 // multipage signal
#define FAX_FCF_EOP 0xF4 // end of procedure
#define FAX_FCF_MCF 0x31 // message confirmation
#define FAX_FCF_DCN 0xDF // disconnect
#define FINAL 8 // final frame
#define NON_FINAL 0 // non-final frame
#define TRANSMIT 0 // connect in send mode
#define RECEIVE 1 // connect in receive mode
#define FAX_T14400 0x200 // 9600 transmit
#define FAX_T9600 0x100 // 9600 transmit
#define FAX_T7200 0x80 // 7200 transmit
#define FAX_T4800 0x40 // 4800 transmit
#define FAX_T2400 0x20 // 2400 transmit
#define FAX_R14400 0x10 // 9600 transmit
#define FAX_R9600 0x08 // 9600 receive
#define FAX_R7200 0x04 // 7200 receive
#define FAX_R4800 0x02 // 4800 receive
#define FAX_R2400 0x01 // 2400 receive
#if defined(__WATCOMC__) || defined(_MSC_VER)
typedef char BIG_PTR;
#else
typedef huge char BIG_PTR;
#endif
#include <string.h>
#include <ntype.hpp>
#define PAGE_WIDTH 1728
#define PAGE_HIGH 2304
//1440;//1143;
/*
#define FAXFILE_MAXPAGE 127
class FaxFile_Header{
public:
char FaxID[8];
BYTE Version;
long page_count;
BYTE rese;
short fine;
FaxFile_Header();
};
inline FaxFile_Header::FaxFile_Header()
{
memcpy(FaxID,"BIT FAX",8);
Version =0;
rese =0;
page_count=0;
fine =1;
}
class FaxPage_Header{
public:
WORD page_width;
WORD page_high;
long data_len;
long off_len;
long fine;
FaxPage_Header();
};
inline FaxPage_Header::FaxPage_Header()
{
page_width=PAGE_WIDTH;
page_high =PAGE_HIGH;
data_len=0;
off_len =2048;
fine=1;
}
*/
const WORD HeaderWord1=0xBEAC;
const WORD HeaderWord2=0xAECA;
const char HeaderTitle[]="ELITE TECH. ";
class FaxHeader{
public:
char TitleWord1[2];
char Title[12];
char TitleWord2[2];
char fine[2]; //0x01
char page_count[2];
char page_number[2]; //0x01
char sReserved1[10];
char data_len[4];
char off_len[4];
char sReserved2[24];
FaxHeader();
};
inline FaxHeader::FaxHeader()
{
memset(this,0,sizeof(FaxHeader));
*(WORD *)TitleWord1=HeaderWord1;
memcpy(Title,HeaderTitle,12);
*(WORD *)TitleWord2=HeaderWord2;
*(WORD *)fine=0x01;
*(WORD *)page_number=0;
}
class Read_FaxPage{
public:
BIG_PTR *pagebuffer;
long width;
long high;
};
const BUF_SIZE =4096; // buffer size
class fax_convert{
#if !defined(SERVER_NLM)&& !defined(_MSC_VER)
int f_handle; // G3 file handle
#else
FILE *f_handle; // G3 file handle
#endif
short f_pgcnt, f_write_flag; // write_out bit buffer flag
char *f_buffer,*f_ptr,*FileName;
size_t write_buff_count;
long f_page; // current G3 page size
short scanj,scani,scantype;
void write_flush();
void write_buf_char(char val);
void set_buff_str(char val,size_t len);
void set_bits(char *s,short n,short l); // length of bits
WORD get_bit(BYTE *s,short n) ; // starting bit nbr (0 based)
WORD get_bits(BYTE *s,short n,short l); // length of bits
char *reverse_scan(char *p,char c,short len); // length of search
short f_get_next_byte(void);
short f_get_byte(void);
short f_get_bit(void);
short f_search(short type, short l,short a); // accumulator
short f_get_code(short type,short *len); // length in bits
short f_get_pels(short type,short *len); // length in bits
void f_get_eol(void);
void f_write_out(short bits,short len); // ..and number of bits
void f_encode(short cnt,short type); // ..and bit color
short f_scan_out(char *p,short i,short type); // type to search
short rb,out_w,get_bit_w,get_bit_c; // bit count
WORD page_high;
public:
BOOL m_bRead;
FaxHeader header;
fax_convert(char *FaxFileName);
~fax_convert();
BOOL check();
void write_line(char *p);
void write_PageStart();
void write_PageEnd();
short read_g3page(Read_FaxPage *rd,long n,
short( *sc)(short, FuncStat *),void **out=0);
//------------user ----------------
short txt_toFaxFile(char *sourceFile,DWORD memorysize,char **data,
WORD fontwidth,WORD fonthigh,short status,
short( *sc)(short, FuncStat *),void **out=0);
#if !defined(SERVER_NLM)
short bmp_toFaxFile(int sourceFile,long width,long high,char format,
short( *sc)(short, FuncStat *),void **out=0);
#else
short bmp_toFaxFile(FILE *sourceFile,long width,long high,char format,
short( *sc)(short, FuncStat *),void **out=0);
#endif
};
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -