s6245: Fix incorrect definition of print command, and set print method properly based on printjob type.
This commit is contained in:
parent
3d8375d7c6
commit
381e38365f
5
README
5
README
|
@ -51,6 +51,7 @@
|
||||||
Shinko CHC-S6245 (aka Sinfonia CE1)
|
Shinko CHC-S6245 (aka Sinfonia CE1)
|
||||||
Shinko CHC-S6145 (aka Sinfonia CS2)
|
Shinko CHC-S6145 (aka Sinfonia CS2)
|
||||||
Shinko CHC-S6145-5A (aka Sinfonia CS2-c)
|
Shinko CHC-S6145-5A (aka Sinfonia CS2-c)
|
||||||
|
Kodak 8810
|
||||||
Ciaat Brava 21 (Rebadged S6145)
|
Ciaat Brava 21 (Rebadged S6145)
|
||||||
|
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
|
@ -412,6 +413,10 @@
|
||||||
|
|
||||||
Shinko CHC-S6245 (aka "Sinfonia CE1")
|
Shinko CHC-S6245 (aka "Sinfonia CE1")
|
||||||
|
|
||||||
|
Unsupported printers (Unknown VID/PID):
|
||||||
|
|
||||||
|
Kodak 8810
|
||||||
|
|
||||||
Valid commands:
|
Valid commands:
|
||||||
|
|
||||||
-c filename Query User tone curve from flash [1]
|
-c filename Query User tone curve from flash [1]
|
||||||
|
|
|
@ -182,7 +182,7 @@ struct s6245_print_cmd {
|
||||||
uint16_t count;
|
uint16_t count;
|
||||||
uint16_t columns;
|
uint16_t columns;
|
||||||
uint16_t rows;
|
uint16_t rows;
|
||||||
uint8_t reserved[2];
|
uint8_t reserved[8]; // columns and rows repeated, then nulls
|
||||||
uint8_t mode;
|
uint8_t mode;
|
||||||
uint8_t method;
|
uint8_t method;
|
||||||
uint8_t reserved2;
|
uint8_t reserved2;
|
||||||
|
@ -1583,12 +1583,30 @@ static int shinkos6245_main_loop(void *vctx, int copies) {
|
||||||
uint8_t rdbuf2[READBACK_LEN];
|
uint8_t rdbuf2[READBACK_LEN];
|
||||||
|
|
||||||
int i, last_state = -1, state = S_IDLE;
|
int i, last_state = -1, state = S_IDLE;
|
||||||
|
uint8_t mcut;
|
||||||
|
|
||||||
struct s6245_cmd_hdr *cmd = (struct s6245_cmd_hdr *) cmdbuf;;
|
struct s6245_cmd_hdr *cmd = (struct s6245_cmd_hdr *) cmdbuf;;
|
||||||
struct s6245_print_cmd *print = (struct s6245_print_cmd *) cmdbuf;
|
struct s6245_print_cmd *print = (struct s6245_print_cmd *) cmdbuf;
|
||||||
struct s6245_status_resp *sts = (struct s6245_status_resp *) rdbuf;
|
struct s6245_status_resp *sts = (struct s6245_status_resp *) rdbuf;
|
||||||
struct s6245_mediainfo_resp *media = (struct s6245_mediainfo_resp *) rdbuf;
|
struct s6245_mediainfo_resp *media = (struct s6245_mediainfo_resp *) rdbuf;
|
||||||
|
|
||||||
|
/* Cap copies */
|
||||||
|
if (copies > 120)
|
||||||
|
copies = 120;
|
||||||
|
|
||||||
|
/* Set up mcut */
|
||||||
|
switch (le32_to_cpu(ctx->hdr.media)) {
|
||||||
|
case MEDIA_8x4_2:
|
||||||
|
case MEDIA_8x5_2:
|
||||||
|
case MEDIA_8x6_2:
|
||||||
|
mcut = PRINT_METHOD_COMBO_2;
|
||||||
|
case MEDIA_8x4_3:
|
||||||
|
mcut = PRINT_METHOD_COMBO_3;
|
||||||
|
default:
|
||||||
|
mcut = PRINT_METHOD_STD;
|
||||||
|
}
|
||||||
|
// XXX what about mcut |= PRINT_METHOD_DISABLE_ERR;
|
||||||
|
|
||||||
/* Send Media Query */
|
/* Send Media Query */
|
||||||
memset(cmdbuf, 0, CMDBUF_LEN);
|
memset(cmdbuf, 0, CMDBUF_LEN);
|
||||||
cmd->cmd = cpu_to_le16(S6245_CMD_MEDIAINFO);
|
cmd->cmd = cpu_to_le16(S6245_CMD_MEDIAINFO);
|
||||||
|
@ -1706,10 +1724,7 @@ top:
|
||||||
print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
|
print->columns = cpu_to_le16(le32_to_cpu(ctx->hdr.columns));
|
||||||
print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
|
print->rows = cpu_to_le16(le32_to_cpu(ctx->hdr.rows));
|
||||||
print->mode = le32_to_cpu(ctx->hdr.oc_mode);
|
print->mode = le32_to_cpu(ctx->hdr.oc_mode);
|
||||||
// print->method = le32_to_cpu(ctx->hdr.method);
|
print->method = mcut;
|
||||||
// XXX multicut -- 8x4*2, 8x4*3, 8x6*2, 8x5*2 ??
|
|
||||||
// or does the "method" automatically double up the normal
|
|
||||||
// sizes?
|
|
||||||
|
|
||||||
if ((ret = s6245_do_cmd(ctx,
|
if ((ret = s6245_do_cmd(ctx,
|
||||||
cmdbuf, sizeof(*print),
|
cmdbuf, sizeof(*print),
|
||||||
|
@ -1809,7 +1824,7 @@ static int shinkos6245_query_serno(struct libusb_device_handle *dev, uint8_t end
|
||||||
|
|
||||||
struct dyesub_backend shinkos6245_backend = {
|
struct dyesub_backend shinkos6245_backend = {
|
||||||
.name = "Shinko/Sinfonia CHC-S6245",
|
.name = "Shinko/Sinfonia CHC-S6245",
|
||||||
.version = "0.03WIP",
|
.version = "0.04WIP",
|
||||||
.uri_prefix = "shinkos6245",
|
.uri_prefix = "shinkos6245",
|
||||||
.cmdline_usage = shinkos6245_cmdline,
|
.cmdline_usage = shinkos6245_cmdline,
|
||||||
.cmdline_arg = shinkos6245_cmdline_arg,
|
.cmdline_arg = shinkos6245_cmdline_arg,
|
||||||
|
|
Loading…
Reference in New Issue