kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Add 4800dpi support for Canon LiDE 210.
Based on USB logs from Windows driver.merge-requests/213/head^2
rodzic
dd78511072
commit
74f2af604b
|
@ -1229,6 +1229,40 @@ void CommandSetGl124::send_shading_data(Genesys_Device* dev, const Genesys_Senso
|
|||
ptr[2+pixels*3]=src[2+segcnt*3];
|
||||
ptr[3+pixels*3]=src[3+segcnt*3];
|
||||
break;
|
||||
case 8:
|
||||
ptr[0+pixels*0]=src[0+segcnt*0];
|
||||
ptr[1+pixels*0]=src[1+segcnt*0];
|
||||
ptr[2+pixels*0]=src[2+segcnt*0];
|
||||
ptr[3+pixels*0]=src[3+segcnt*0];
|
||||
ptr[0+pixels*1]=src[0+segcnt*2];
|
||||
ptr[1+pixels*1]=src[1+segcnt*2];
|
||||
ptr[2+pixels*1]=src[2+segcnt*2];
|
||||
ptr[3+pixels*1]=src[3+segcnt*2];
|
||||
ptr[0+pixels*2]=src[0+segcnt*4];
|
||||
ptr[1+pixels*2]=src[1+segcnt*4];
|
||||
ptr[2+pixels*2]=src[2+segcnt*4];
|
||||
ptr[3+pixels*2]=src[3+segcnt*4];
|
||||
ptr[0+pixels*3]=src[0+segcnt*6];
|
||||
ptr[1+pixels*3]=src[1+segcnt*6];
|
||||
ptr[2+pixels*3]=src[2+segcnt*6];
|
||||
ptr[3+pixels*3]=src[3+segcnt*6];
|
||||
ptr[0+pixels*4]=src[0+segcnt*1];
|
||||
ptr[1+pixels*4]=src[1+segcnt*1];
|
||||
ptr[2+pixels*4]=src[2+segcnt*1];
|
||||
ptr[3+pixels*4]=src[3+segcnt*1];
|
||||
ptr[0+pixels*5]=src[0+segcnt*3];
|
||||
ptr[1+pixels*5]=src[1+segcnt*3];
|
||||
ptr[2+pixels*5]=src[2+segcnt*3];
|
||||
ptr[3+pixels*5]=src[3+segcnt*3];
|
||||
ptr[0+pixels*6]=src[0+segcnt*5];
|
||||
ptr[1+pixels*6]=src[1+segcnt*5];
|
||||
ptr[2+pixels*6]=src[2+segcnt*5];
|
||||
ptr[3+pixels*6]=src[3+segcnt*5];
|
||||
ptr[0+pixels*7]=src[0+segcnt*7];
|
||||
ptr[1+pixels*7]=src[1+segcnt*7];
|
||||
ptr[2+pixels*7]=src[2+segcnt*7];
|
||||
ptr[3+pixels*7]=src[3+segcnt*7];
|
||||
break;
|
||||
}
|
||||
|
||||
/* next shading coefficient */
|
||||
|
|
|
@ -789,16 +789,15 @@ void genesys_init_usb_device_tables()
|
|||
model.resolutions = {
|
||||
{
|
||||
{ ScanMethod::FLATBED },
|
||||
// BUG: 4800 resolution crashes
|
||||
{ /*4800,*/ 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75 },
|
||||
{ /*4800,*/ 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75 },
|
||||
{ 4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75 },
|
||||
{ 4800, 2400, 1200, 600, /* 400,*/ 300, 150, 100, 75 },
|
||||
}
|
||||
};
|
||||
|
||||
model.bpp_gray_values = { 8, 16 };
|
||||
model.bpp_color_values = { 8, 16 };
|
||||
|
||||
model.x_offset = 2.2;
|
||||
model.x_offset = 2.1;
|
||||
model.y_offset = 8.7;
|
||||
model.x_size = 216.70;
|
||||
model.y_size = 297.5;
|
||||
|
|
|
@ -400,6 +400,8 @@ void genesys_init_motor_tables()
|
|||
StepType::HALF, 10528});
|
||||
motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 4),
|
||||
StepType::QUARTER, 20864});
|
||||
motor.profiles.push_back({MotorSlope::create_from_steps(62496, 10432, 4),
|
||||
StepType::EIGHTH, 41536});
|
||||
s_motors->push_back(std::move(motor));
|
||||
|
||||
|
||||
|
|
|
@ -2675,7 +2675,7 @@ void genesys_init_sensor_tables()
|
|||
|
||||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = SensorId::CIS_CANON_LIDE_210; // gl124
|
||||
sensor.optical_res = 2400;
|
||||
sensor.optical_res = 4800;
|
||||
sensor.ccd_size_divisor = 2;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 16;
|
||||
|
@ -2701,7 +2701,7 @@ void genesys_init_sensor_tables()
|
|||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75 }, 600, 150, 300, 2768, { 388, 574, 393 }, Ratio{1, 4}, 4,
|
||||
{ { 75 }, 600, 150, 300, 2768, { 388, 574, 393 }, Ratio{1, 8}, 4,
|
||||
std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2720,7 +2720,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 100 }, 600, 200, 300, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3,
|
||||
{ { 100 }, 600, 200, 300, 2768, { 388, 574, 393 }, Ratio{1, 8}, 3,
|
||||
std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2739,7 +2739,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 150 }, 600, 300, 300, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2,
|
||||
{ { 150 }, 600, 300, 300, 2768, { 388, 574, 393 }, Ratio{1, 8}, 2,
|
||||
std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2758,7 +2758,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 300 }, 600, 600, 300, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1,
|
||||
{ { 300 }, 600, 600, 300, 2768, { 388, 574, 393 }, Ratio{1, 8}, 1,
|
||||
std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2777,7 +2777,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 600, 600, 600, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1,
|
||||
{ { 600 }, 600, 600, 600, 5360, { 388, 574, 393 }, Ratio{1, 8}, 1,
|
||||
std::vector<unsigned>{}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2796,7 +2796,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 1200 }, 1200, 1200, 1200, 10528, { 388, 574, 393 }, Ratio{1, 4}, 1, {0, 1}, {
|
||||
{ { 1200 }, 1200, 1200, 1200, 10528, { 388, 574, 393 }, Ratio{1, 8}, 1, {0, 1}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x08 },
|
||||
|
@ -2814,7 +2814,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
},
|
||||
},
|
||||
{ { 2400 }, 2400, 2400, 2400, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, 1,
|
||||
{ { 2400 }, 2400, 2400, 2400, 20864, { 6839, 8401, 6859 }, Ratio{1, 8}, 1,
|
||||
{0, 2, 1, 3}, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
|
@ -2832,6 +2832,25 @@ void genesys_init_sensor_tables()
|
|||
{ 0x96, 0x00 }, { 0x97, 0xa3 },
|
||||
{ 0x98, 0x24 },
|
||||
},
|
||||
},
|
||||
{ { 4800 }, 4800, 4800, 4800, 41536, { 9735, 14661, 11345 }, Ratio{1, 8}, 1,
|
||||
{ 0, 2, 4, 6, 1, 3, 5, 7 }, {
|
||||
// { 0x16, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, { 0x19, 0x01 },
|
||||
{ 0x1a, 0x30 }, { 0x1b, 0x00 }, { 0x1c, 0x02 }, { 0x1d, 0x01 }, { 0x20, 0x04 },
|
||||
{ 0x52, 0x00 }, { 0x53, 0x02 }, { 0x54, 0x04 }, { 0x55, 0x06 },
|
||||
{ 0x56, 0x04 }, { 0x57, 0x04 }, { 0x58, 0x04 }, { 0x59, 0x04 },
|
||||
{ 0x5a, 0x1a }, { 0x5b, 0x00 }, { 0x5c, 0xc0 },
|
||||
{ 0x61, 0x20 },
|
||||
// { 0x70, 0x00 }, // FIXME: check if default value is different
|
||||
{ 0x74, 0x00 }, { 0x75, 0x00 }, { 0x76, 0x1e },
|
||||
{ 0x77, 0x00 }, { 0x78, 0x00 }, { 0x79, 0x9f },
|
||||
{ 0x7a, 0x00 }, { 0x7b, 0x00 }, { 0x7c, 0x55 },
|
||||
{ 0x88, 0x12 }, { 0x89, 0x47 },
|
||||
{ 0x93, 0x00 }, { 0x94, 0x14 }, { 0x95, 0x30 },
|
||||
{ 0x96, 0x00 }, { 0x97, 0xa5 },
|
||||
{ 0x98, 0x28 },
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue