kopia lustrzana https://gitlab.com/sane-project/backends
2400 dpi for LiDE 110/210
rodzic
922a22e308
commit
4da932ad57
|
@ -4897,8 +4897,74 @@ genesys_fill_segmented_buffer (Genesys_Device * dev, uint8_t *work_buffer_dst, s
|
|||
}
|
||||
else if(dev->segnb==4)
|
||||
{
|
||||
DBG (DBG_error, "%s: %d is an unimplemented segment number ....\n",__FUNCTION__,dev->segnb);
|
||||
return SANE_STATUS_INVAL;
|
||||
if(depth==8)
|
||||
{
|
||||
while (dev->cur < dev->len && count < size)
|
||||
{
|
||||
work_buffer_dst[count + 0] = dev->oe_buffer.buffer[dev->cur + dev->skip + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 1] = dev->oe_buffer.buffer[dev->cur + dev->skip + 2*dev->dist + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 2] = dev->oe_buffer.buffer[dev->cur + dev->skip + 1*dev->dist + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 3] = dev->oe_buffer.buffer[dev->cur + dev->skip + 3*dev->dist + dev->oe_buffer.pos];
|
||||
/* update counter and pointer */
|
||||
count += 4;
|
||||
dev->cur+=1;
|
||||
}
|
||||
}
|
||||
else if(depth==16)
|
||||
{
|
||||
while (dev->cur < dev->len && count < size)
|
||||
{
|
||||
work_buffer_dst[count + 0] = dev->oe_buffer.buffer[dev->cur + dev->skip + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 1] = dev->oe_buffer.buffer[dev->cur + dev->skip + dev->oe_buffer.pos+1];
|
||||
work_buffer_dst[count + 2] = dev->oe_buffer.buffer[dev->cur + dev->skip + 2*dev->dist + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 3] = dev->oe_buffer.buffer[dev->cur + dev->skip + 2*dev->dist + dev->oe_buffer.pos+1];
|
||||
work_buffer_dst[count + 4] = dev->oe_buffer.buffer[dev->cur + dev->skip + 1*dev->dist + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 5] = dev->oe_buffer.buffer[dev->cur + dev->skip + 1*dev->dist + dev->oe_buffer.pos+1];
|
||||
work_buffer_dst[count + 6] = dev->oe_buffer.buffer[dev->cur + dev->skip + 3*dev->dist + dev->oe_buffer.pos];
|
||||
work_buffer_dst[count + 7] = dev->oe_buffer.buffer[dev->cur + dev->skip + 3*dev->dist + dev->oe_buffer.pos+1];
|
||||
|
||||
/* update counter and pointer */
|
||||
count += 8;
|
||||
dev->cur+=2;
|
||||
}
|
||||
} else { /* lineart case */
|
||||
while (dev->cur < dev->len && count < size)
|
||||
{
|
||||
/* get values to merge */
|
||||
odd = dev->oe_buffer.buffer[dev->cur + dev->skip + dev->oe_buffer.pos];
|
||||
even = dev->oe_buffer.buffer[dev->cur + dev->skip + dev->dist + dev->oe_buffer.pos];
|
||||
|
||||
/* interleave bits .... */
|
||||
merged=0;
|
||||
for(i=7;i>=0;i--)
|
||||
{
|
||||
mask=1<<i;
|
||||
if(odd & mask)
|
||||
{
|
||||
merged |= 1;
|
||||
}
|
||||
merged<<=1;
|
||||
if(even & mask)
|
||||
{
|
||||
merged |= 1;
|
||||
}
|
||||
|
||||
/* don't shift on last bit */
|
||||
if(i>0)
|
||||
{
|
||||
merged<<=1;
|
||||
}
|
||||
}
|
||||
|
||||
/* store result */
|
||||
work_buffer_dst[count] = merged >> 8;
|
||||
work_buffer_dst[count+1] = merged & 255;
|
||||
|
||||
/* update counter and pointer */
|
||||
count += 2;
|
||||
dev->cur++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1310,8 +1310,8 @@ static Genesys_Model canon_lide_110_model = {
|
|||
GENESYS_GL124,
|
||||
NULL,
|
||||
|
||||
{1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible x-resolutions */
|
||||
{1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible y-resolutions */
|
||||
{2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible x-resolutions */
|
||||
{2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible y-resolutions */
|
||||
{16, 8, 0}, /* possible depths in gray mode */
|
||||
{16, 8, 0}, /* possible depths in color mode */
|
||||
|
||||
|
@ -1362,8 +1362,8 @@ static Genesys_Model canon_lide_210_model = {
|
|||
GENESYS_GL124,
|
||||
NULL,
|
||||
|
||||
{1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible x-resolutions */
|
||||
{1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible y-resolutions */
|
||||
{2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible x-resolutions */
|
||||
{2400, 1200, 600, /* 400,*/ 300, 150, 100, 75, 0}, /* possible y-resolutions */
|
||||
{16, 8, 0}, /* possible depths in gray mode */
|
||||
{16, 8, 0}, /* possible depths in color mode */
|
||||
|
||||
|
|
|
@ -2842,12 +2842,42 @@ gl124_send_shading_data (Genesys_Device * dev, uint8_t * data, int size)
|
|||
src=data+x+strpixel+i*length;
|
||||
|
||||
/* iterate over all the segments */
|
||||
for(s=0;s<(uint32_t)dev->segnb;s++)
|
||||
switch(dev->segnb)
|
||||
{
|
||||
ptr[0+pixels*s]=src[0+segcnt*s];
|
||||
ptr[1+pixels*s]=src[1+segcnt*s];
|
||||
ptr[2+pixels*s]=src[2+segcnt*s];
|
||||
ptr[3+pixels*s]=src[3+segcnt*s];
|
||||
case 1:
|
||||
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];
|
||||
break;
|
||||
case 2:
|
||||
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*1];
|
||||
ptr[1+pixels*1]=src[1+segcnt*1];
|
||||
ptr[2+pixels*1]=src[2+segcnt*1];
|
||||
ptr[3+pixels*1]=src[3+segcnt*1];
|
||||
break;
|
||||
case 4:
|
||||
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*1];
|
||||
ptr[1+pixels*2]=src[1+segcnt*1];
|
||||
ptr[2+pixels*2]=src[2+segcnt*1];
|
||||
ptr[3+pixels*2]=src[3+segcnt*1];
|
||||
ptr[0+pixels*3]=src[0+segcnt*3];
|
||||
ptr[1+pixels*3]=src[1+segcnt*3];
|
||||
ptr[2+pixels*3]=src[2+segcnt*3];
|
||||
ptr[3+pixels*3]=src[3+segcnt*3];
|
||||
break;
|
||||
}
|
||||
|
||||
/* next shading coefficients */
|
||||
|
|
|
@ -672,7 +672,7 @@ static Motor_Profile motors[]={
|
|||
{MOTOR_CANONLIDE110, 5359, 0, lide110_alt},
|
||||
{MOTOR_CANONLIDE110, 5360, 1, lide110_alt},
|
||||
{MOTOR_CANONLIDE110, 10528, 1, lide110_slow},
|
||||
{MOTOR_CANONLIDE110, 20864, 1, lide110_max},
|
||||
{MOTOR_CANONLIDE110, 20864, 3, lide110_max},
|
||||
};
|
||||
/* *INDENT-ON* */
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue