diff options
Diffstat (limited to 'backend/canon_dr-cmd.h')
| -rw-r--r-- | backend/canon_dr-cmd.h | 41 | 
1 files changed, 37 insertions, 4 deletions
| diff --git a/backend/canon_dr-cmd.h b/backend/canon_dr-cmd.h index 64e6887..b969c3b 100644 --- a/backend/canon_dr-cmd.h +++ b/backend/canon_dr-cmd.h @@ -67,6 +67,10 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)  }  /* ==================================================================== */ +/* extended status packet */ +#define get_ES_length(b)             getnbyte(b+0x04, 4) + +/* ==================================================================== */  /* SCSI commands */  #define set_SCSI_opcode(out, val)          out[0]=val @@ -203,7 +207,9 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)  /* READ/SEND page codes */  #define SR_datatype_image		0x00  #define SR_datatype_lut                 0x03 +#define SR_datatype_pixelsize  		0x80 /*DR-G1130*/  #define SR_datatype_panel  		0x84 +#define SR_datatype_sensors  		0x8b  #define SR_datatype_counters 		0x8c  #define SR_datatype_endorser            0x90  #define SR_datatype_fineoffset          0x90 @@ -234,6 +240,11 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)  #define get_R_PANEL_enable_led(in)	getbitfield(in+2, 1, 0)  #define get_R_PANEL_counter(in)         getnbyte(in + 0x04, 4) +/*sensors*/ +#define R_SENSORS_len                   0x01 +#define get_R_SENSORS_card(in)	        getbitfield(in, 1, 3) +#define get_R_SENSORS_adf(in)	        getbitfield(in, 1, 0) +  /*counters*/  #define R_COUNTERS_len                 0x80  #define get_R_COUNTERS_scans(in)       getnbyte(in + 0x04, 4) @@ -334,6 +345,7 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)  #define set_SSM_BUFF_async(sb, val)     setbitfield(sb+0x0a, 1, 6, val)  #define set_SSM_BUFF_ald(sb, val)       setbitfield(sb+0x0a, 1, 5, val)  #define set_SSM_BUFF_fb(sb, val)        setbitfield(sb+0x0a, 1, 4, val) +#define set_SSM_BUFF_card(sb, val)      setbitfield(sb+0x0a, 1, 3, val)  /* for DO (0x36) page */  #define SSM_DO_none                     0 @@ -415,18 +427,39 @@ putnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)  #define set_CC3_exp_b_b(sb, val)     putnbyte(sb + 0x20, val, 2)  /* ==================================================================== */ +/* Page codes used by GET/SET SCAN MODE 2 */ +#define SM2_pc_df                       0x00 +#define SM2_pc_ultra                    0x01 +#define SM2_pc_buffer                   0x02 +#define SM2_pc_dropout                  0x06 + +/* ==================================================================== */  /* SET SCAN MODE 2 */  #define SET_SCAN_MODE2_code             0xe5 -#define SET_SCAN_MODE2_len              10 +#define SET_SCAN_MODE2_len              12  #define set_SSM2_page_code(sb, val)     sb[0x02] = val  #define set_SSM2_pay_len(sb, val)       sb[0x08] = val  /* the payload */  #define SSM2_PAY_len                     0x10 -#define set_SSM2_unk(sb, val)           sb[0x02] = val -#define set_SSM2_unk2(sb, val)          sb[0x03] = val -#define set_SSM2_unk3(sb, val)          sb[0x04] = val + +/* for DF (0x00) page */ +#define set_SSM2_DF_thick(sb, val)       setbitfield(sb+3, 1, 2, val) +#define set_SSM2_DF_len(sb, val)         setbitfield(sb+3, 1, 0, val) + +/* for ULTRA (0x01) page */ +#define set_SSM2_ULTRA_top(sb, val)      putnbyte(sb + 0x07, val, 2) +#define set_SSM2_ULTRA_bot(sb, val)      putnbyte(sb + 0x09, val, 2) + +/* for BUFFER (0x02) page */ +#define set_SSM2_BUFF_unk(sb, val)           sb[0x03] = val +#define set_SSM2_BUFF_unk2(sb, val)          sb[0x06] = val +#define set_SSM2_BUFF_sync(sb, val)          sb[0x09] = val + +/* for DROPOUT (0x06) page */ +#define set_SSM2_DO_do(sb, val)              sb[0x09] = val +#define set_SSM2_DO_en(sb, val)              sb[0x0a] = val  /* ==================================================================== */  /* window descriptor macros for SET_WINDOW and GET_WINDOW */ | 
