www.pudn.com > scanner_4a.zip > SAMPLE.H


// ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
// ³File Name  : SAMPLE.H                          ³ 
// ³Description: Header file for SAMPLE.C          ³ 
// ³Compiler   : Microsoft C/C++                   ³ 
// ³Author     : Daohong Kan, Tsinghua Unis. Group ³ 
// ³MODIFIED BY: Sean JI, Tsinghua Unisplendour    ³ 
// ³Date       : Jan-23-1996                       ³ 
// ³Version    : 1.0                               ³ 
// ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 
// Definition of SPI(Scanner Programming Interface) Parameter Block Structure 
// and Error Codes 
typedef unsigned char BYTE; 
typedef unsigned int  WORD; 
 
// These parameters are used in front of the PDB by all SPI function 
struct CommonParam 
    { 
    WORD  func_code;     // WR: Driver function call 
    WORD  error_code;    // RD: Returned error code 
    WORD  category;      // Reserved 
    }; 
 
// The PDB structure for GetSPIInfo function 
struct SPI_Info 
    { 
    struct CommonParam   Comm;   // Common Parameters 
    WORD   SPI_major_ver;        // RD: SPI major version number 
    WORD   SPI_minor_ver;        // RD: SPI minor version number 
    WORD   Drv_major_ver;        // RD: Driver major version number 
    WORD   Drv_minor_ver;        // RD: Driver minor version number 
    WORD   OS_id;                // RD: Operating system ID: 01H MS-DOS, 
				 // RD: 02H MS Windows, 04H OS/2, 08H Unix 
    WORD   resvd_SPIInfo;        // Reserved 
    char   company_id[80];       // RD: Company identification 
    }; 
 
// The PDB structure for GetDevInfo function 
struct Dev_Info 
    { 
    struct CommonParam Comm;    // Common Parameters 
    WORD   BUF_SEG;             // RD: Memory base address 
    WORD   BUF_space;           // RD: Memory buffer size 
    char   attention[96];       // RD: Description message: 
				//     BYTE 0-56 reserved: 
				//     BYTE 36-42:Vendor ID 
				//     BYTE 44-45:Model ID 
				//     BYTE 57: bit6=1  1pass scanner 
				//     BYTE 58-62 reserved 
				//     BYTE 63: bit2=1  ADF installed 
				//              bit3=1  ADF & paper ready 
				//              bit6=0  Flatbed scanner 
				//                   1  SlideKit installed 
				//     BYTE 64-95 reserved 
    char   card_id[20];         // RD: Interface card model 
    }; 
 
// The PDB structure for SetParameters function 
struct SetDevParam 
    { 
    struct CommonParam   Comm;    // Common Parameters 
    WORD   length_unit;           // reserved 
    WORD   paper_length;          // reserved 
    WORD   frame_unit;            // WR: 0->inch, 1->pixel 
    WORD   frame[4];              // WR: Scanning frame coordinates: 
				  // left-top(x1, y1)->(frame[0], frame[1]) 
				  // right-bottom(x2, y2)->(frame[2], frame[3]) 
    WORD   background_f_code;     // WR: 'T'->single bit mode 
				  //     'H'->half tone 
				  // otherwise multi-bit mode 
    WORD   background_unit;       // reserved, set to 0 
    WORD   background_win_no;     // reserved, set to 0 
    WORD   background[16];        // reserved, set to 0 
    WORD   contrast;              // WR: [-127, +127] for 1pass scanner 
    WORD   brightness;            // WR: [-127, +127] for 1pass scanner 
    WORD   model;                 // WR:  600 for UNISCAN 4A 
				  //      800 for UNISCAN 4B 
				  //     1200 for UNISCAN 4C 
    WORD   resolution;            // WR: [72,  600] for UNISCAN 4A 
				  //     [72,  800] for UNISCAN 4B 
				  //     [72, 1200] for UNISCAN 4C 
    WORD   velocity;              // WR: [0, 4], fast->slow 
    WORD   filter;                // WR: 0->gray or B/W, 1->color 
    WORD   grain_built_in;        // WR: 0->select one built in code 
    WORD   grain;                 // WR: [00, 0bH] if grain_built_in=0 
				  //     else 2, 3, 4, 5, 6, 8 
				  //     grain is only for half tone 
    BYTE   grain_code[64];        // WR: reserved if grain_built_in=0 
    WORD   gamma;                 // WR: Gamma correction, for color image 
				  // 0-20H: select on built in gamma table 
				  // 27H : select user defined gamma table 
    WORD   gammasize;             // WR: 
    BYTE   gammacode[256];        // WR: User defined gamma table 
    WORD   shadow;                // reserved 
    WORD   hilight;               // reserved 
    WORD   scansource;            // WR: bit0=0 from flatbed scanner 
				  //         =1 from ADF 
				  //     bit1=0 backtracking disabled 
				  //         =1 backtracking enabled 
				  //     bit2=0 from flatbed scanner 
				  //         =1 from transparency 
				  //     bit7=0 don't care bit1 
				  //          1 bit1 is effective 
 
    WORD   contrast_r;            // WR: for red color plane 
    WORD   brightness_r;          //     can be ignored 
    WORD   gamma_r; 
    WORD   gammasize_r; 
    BYTE   gammacode_r[256]; 
    WORD   shadow_r; 
    WORD   hilight_r; 
 
    WORD   contrast_g;            // WR: for green color plane 
    WORD   brightness_g;          //     can be ignored 
    WORD   gamma_g; 
    WORD   gammasize_g; 
    BYTE   gammacode_g[256]; 
    WORD   shadow_g; 
    WORD   hilight_g; 
 
    WORD   contrast_b;            // WR: for blue color plane 
    WORD   brightness_b;          //     can be ignored 
    WORD   gamma_b; 
    WORD   gammasize_b; 
    BYTE   gammacode_b[256]; 
    WORD   shadow_b; 
    WORD   hilight_b; 
 
    WORD   LD_DPI;                // RD: reserved, can be ignored 
    BYTE   R_LD;                  // RD: 
    BYTE   G_LD;                  // RD: 
    BYTE   B_LD;                  // RD: 
    }; 
 
// The PDB structure for GetImageStatus function 
struct GetImageStatus 
    { 
    struct CommonParam   Comm;    // Common Parameters 
    WORD   line_width;            // RD: width in bytes of one scan line 
    WORD   line_no;               // RD: count of total scan lines remained 
    }; 
 
// The PDB structure for StartScan function 
struct ScanParam 
    { 
    struct CommonParam   Comm;    // Common Parameters 
    WORD   scan_control;          // WR: 0 for UNISCAN faltbed scanner 
    WORD   scan_bytes;            // WR: width in bytes desired to get 
    WORD   scan_lines;            // WR: scan lines desired to get 
    WORD   txf_lines;             // RD: image lines transfered 
    WORD   processed_lines;       // reserved, set 0 
    WORD   current_buf;           // reserved, set 0 
    WORD   current_line;          // reserved, set 0 
    WORD   scan_status;           // reserved, set 0 
    WORD   number_of_buf;         // WR: buffer number in buffer list 
    long   buf_list_ptr;          // WR: image buffer list pointer 
    }; 
 
// Buffer List Entry Format 
struct PB_buffer_list_def 
    { 
    long   buf_size;              // WR: each buffer size 
    WORD   buf_line;              // WR: each buffer image lines 
    long   buf_address;           // WR: buffer address 
    WORD   ems_handler;           // reserved 
    WORD   ems_page;              // reserved 
    }; 
 
typedef struct PB_buffer_list_def   PB_buffer_list; 
 
extern int SCNOpen(void); 
extern int SCNCall(char far *); 
extern int SCNClose(void); 
int SCN_INIT(); 
int SCN_SETPARAM(int); 
int SCN_START(); 
int SCN_ABORT(); 
int show_image();