magicolor: Add Epson AcuLaser CX16NF support

This multi-function printer is identical to Konica Minolta magicolor 1690MF

Signed-off-by: Jonathan Sciarrabba <sciarrabba.j00@gmail.com>
merge-requests/869/head
Jonathan Sciarrabba 2025-04-12 21:37:15 +02:00
rodzic a9ad50fe56
commit 0d60a1c99a
2 zmienionych plików z 20 dodań i 2 usunięć

Wyświetl plik

@ -106,6 +106,7 @@ static struct MagicolorCmd magicolor_cmd[] = {
{"mc1690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03}, {"mc1690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
{"mc4690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03}, {"mc4690mf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
{"es2323am", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03}, {"es2323am", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
{"alcx16nf", CMD, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, NET, 0x00, 0x01, 0x02, 0x03},
}; };
static SANE_Int magicolor_default_resolutions[] = {150, 300, 600}; static SANE_Int magicolor_default_resolutions[] = {150, 300, 600};
@ -152,6 +153,18 @@ static struct MagicolorCap magicolor_cap[] = {
{0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
}, },
/* Epson AcuLaser CX16NF, USB ID 0x04b8:0868 */
{
0x0868, "alcx16nf", "AcuLaser CX16NF", ".1.3.6.1.4.1.18334.1.1.1.1.1.23.1.1",
-1, 0x85,
600, {150, 600, 0}, magicolor_default_resolutions, 3, /* 600 dpi max, 3 resolutions */
8, magicolor_default_depths, /* color depth 8 default, 1 and 8 possible */
{1, 9, 0}, /* brightness ranges (TODO!) */
{0, SANE_FIX(0x13f8 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x1b9c * MM_PER_INCH / 600), 0}, /* FBF x/y ranges (TODO!) */
SANE_TRUE, SANE_FALSE, /* non-duplex ADF, x/y ranges (TODO!) */
{0, SANE_FIX(0x1390 * MM_PER_INCH / 600), 0}, {0, SANE_FIX(0x20dc * MM_PER_INCH / 600), 0},
},
}; };
static int MC_SNMP_Timeout = 2500; static int MC_SNMP_Timeout = 2500;
@ -404,10 +417,12 @@ sanei_magicolor_net_close(struct Magicolor_Scanner *s)
****************************************************************************/ ****************************************************************************/
#define SANE_MAGICOLOR_VENDOR_ID (0x132b) #define SANE_MAGICOLOR_VENDOR_ID (0x132b)
#define SANE_EPSON_VENDOR_ID (0x04b8)
SANE_Word sanei_magicolor_usb_product_ids[] = { SANE_Word sanei_magicolor_usb_product_ids[] = {
0x2089, /* magicolor 1690MF */ 0x2089, /* magicolor 1690MF */
0x2079, /* magicolor 4690MF */ 0x2079, /* magicolor 4690MF */
0x0868, /* epson AL CX16NF */
0 /* last entry - this is used for devices that are specified 0 /* last entry - this is used for devices that are specified
in the config file as "usb <vendor> <product>" */ in the config file as "usb <vendor> <product>" */
}; };
@ -1720,7 +1735,7 @@ detect_usb(struct Magicolor_Scanner *s)
} }
/* check the vendor ID to see if we are dealing with an MAGICOLOR device */ /* check the vendor ID to see if we are dealing with an MAGICOLOR device */
if (vendor != SANE_MAGICOLOR_VENDOR_ID) { if (vendor != SANE_MAGICOLOR_VENDOR_ID && vendor != SANE_EPSON_VENDOR_ID) {
/* this is not a supported vendor ID */ /* this is not a supported vendor ID */
DBG(1, "not an Magicolor device at %s (vendor id=0x%x)\n", DBG(1, "not an Magicolor device at %s (vendor id=0x%x)\n",
s->hw->sane.name, vendor); s->hw->sane.name, vendor);
@ -2215,7 +2230,7 @@ attach_one_config(SANEI_Config __sane_unused__ *config, const char *line,
int numIds = sanei_magicolor_getNumberOfUSBProductIds(); int numIds = sanei_magicolor_getNumberOfUSBProductIds();
if (vendor != SANE_MAGICOLOR_VENDOR_ID) if (vendor != SANE_MAGICOLOR_VENDOR_ID && vendor != SANE_EPSON_VENDOR_ID)
return SANE_STATUS_INVAL; /* this is not a KONICA MINOLTA device */ return SANE_STATUS_INVAL; /* this is not a KONICA MINOLTA device */
sanei_magicolor_usb_product_ids[numIds - 1] = product; sanei_magicolor_usb_product_ids[numIds - 1] = product;

Wyświetl plik

@ -39,3 +39,6 @@ usb
### e.g.: ### e.g.:
# usb 0x132b 0x2098 # usb 0x132b 0x2098
# Epson AcuLaser CX16NF
usb 0x04b8 0x0868