shinko: Some minor cleanups.
My goal here is to eventually unify these backends.
This commit is contained in:
parent
2f91bf6504
commit
ed8e2f18b1
|
@ -65,7 +65,7 @@ struct s2145_printjob_hdr {
|
|||
uint32_t unk6;
|
||||
|
||||
uint32_t method;
|
||||
uint32_t mode;
|
||||
uint32_t oc_mode;
|
||||
uint32_t unk7;
|
||||
uint32_t unk8;
|
||||
|
||||
|
@ -986,8 +986,8 @@ static void dump_mediainfo(struct s2145_mediainfo_resp *resp)
|
|||
for (i = 0 ; i < resp->count ; i++) {
|
||||
INFO(" %02d: C 0x%02x (%s), %04ux%04u, M 0x%02x (%s), P 0x%02x (%s)\n", i,
|
||||
resp->items[i].code, print_sizes(resp->items[i].code),
|
||||
le16_to_cpu(resp->items[i].columns),
|
||||
le16_to_cpu(resp->items[i].rows),
|
||||
resp->items[i].columns,
|
||||
resp->items[i].rows,
|
||||
resp->items[i].media_type, media_types(resp->items[i].media_type),
|
||||
resp->items[i].print_type, print_methods(resp->items[i].print_type));
|
||||
}
|
||||
|
@ -1386,7 +1386,6 @@ static int shinkos2145_attach(void *vctx, struct libusb_device_handle *dev, int
|
|||
uint8_t endp_up, uint8_t endp_down, uint8_t jobid)
|
||||
{
|
||||
struct shinkos2145_ctx *ctx = vctx;
|
||||
int i;
|
||||
|
||||
ctx->dev = dev;
|
||||
ctx->endp_up = endp_up;
|
||||
|
@ -1404,6 +1403,7 @@ static int shinkos2145_attach(void *vctx, struct libusb_device_handle *dev, int
|
|||
struct s2145_cmd_hdr cmd;
|
||||
struct s2145_mediainfo_resp *resp = (struct s2145_mediainfo_resp *) rdbuf;
|
||||
int num = 0;
|
||||
int i;
|
||||
|
||||
cmd.cmd = cpu_to_le16(S2145_CMD_MEDIAINFO);
|
||||
cmd.len = cpu_to_le16(0);
|
||||
|
@ -1417,6 +1417,12 @@ static int shinkos2145_attach(void *vctx, struct libusb_device_handle *dev, int
|
|||
}
|
||||
memcpy(&ctx->media, resp, sizeof(ctx->media));
|
||||
|
||||
/* Byteswap media descriptor.. */
|
||||
for (i = 0 ; i < ctx->media.count ; i++) {
|
||||
ctx->media.items[i].columns = le16_to_cpu(ctx->media.items[i].columns);
|
||||
ctx->media.items[i].rows = le16_to_cpu(ctx->media.items[i].rows);
|
||||
}
|
||||
|
||||
/* Figure out the media type... */
|
||||
for (i = 0 ; i < ctx->media.count ; i++) {
|
||||
if (print_counts(ctx->media.items[i].code) < media_prints) {
|
||||
|
@ -1465,7 +1471,8 @@ static void shinkos2145_teardown(void *vctx) {
|
|||
#define SINFONIA_HDR_LEN (SINFONIA_HDR1_LEN + SINFONIA_HDR2_LEN)
|
||||
#define SINFONIA_DPI 300
|
||||
|
||||
int sinfonia_read_parse(int data_fd, uint32_t model, void *vhdr, uint8_t **data, int *datalen)
|
||||
int sinfonia_read_parse(int data_fd, uint32_t model, void *vhdr,
|
||||
uint8_t **data, int *datalen)
|
||||
{
|
||||
uint32_t *hdr = vhdr;
|
||||
int ret, i;
|
||||
|
@ -1550,6 +1557,14 @@ int sinfonia_read_parse(int data_fd, uint32_t model, void *vhdr, uint8_t **data,
|
|||
return CUPS_BACKEND_CANCEL;
|
||||
}
|
||||
|
||||
/* Fill in what's left */
|
||||
// *copies =
|
||||
// *oc_mode =
|
||||
// *media =
|
||||
// *method =
|
||||
// *cols =
|
||||
// *rows =
|
||||
|
||||
return CUPS_BACKEND_OK;
|
||||
}
|
||||
|
||||
|
@ -1603,8 +1618,8 @@ static int shinkos2145_main_loop(void *vctx, const void *vjob) {
|
|||
/* Validate print sizes */
|
||||
for (i = 0; i < ctx->media.count ; i++) {
|
||||
/* Look for matching media */
|
||||
if (le16_to_cpu(ctx->media.items[i].columns) == cpu_to_le16(job->hdr.columns) &&
|
||||
le16_to_cpu(ctx->media.items[i].rows) == cpu_to_le16(job->hdr.rows) &&
|
||||
if (ctx->media.items[i].columns == job->hdr.columns &&
|
||||
ctx->media.items[i].rows == job->hdr.rows &&
|
||||
ctx->media.items[i].print_type == job->hdr.method)
|
||||
break;
|
||||
}
|
||||
|
@ -1689,7 +1704,7 @@ top:
|
|||
print->columns = cpu_to_le16(job->hdr.columns);
|
||||
print->rows = cpu_to_le16(job->hdr.rows);
|
||||
print->media = job->hdr.media;
|
||||
print->mode = job->hdr.mode;
|
||||
print->mode = job->hdr.oc_mode;
|
||||
print->method = job->hdr.method;
|
||||
|
||||
if ((ret = s2145_do_cmd(ctx,
|
||||
|
@ -1838,7 +1853,7 @@ static const char *shinkos2145_prefixes[] = {
|
|||
|
||||
struct dyesub_backend shinkos2145_backend = {
|
||||
.name = "Shinko/Sinfonia CHC-S2145/S2",
|
||||
.version = "0.57",
|
||||
.version = "0.58",
|
||||
.uri_prefixes = shinkos2145_prefixes,
|
||||
.cmdline_usage = shinkos2145_cmdline,
|
||||
.cmdline_arg = shinkos2145_cmdline_arg,
|
||||
|
|
|
@ -99,7 +99,7 @@ enum {
|
|||
struct s6145_printjob_hdr {
|
||||
uint32_t len1; /* Fixed at 0x10 */
|
||||
uint32_t model; /* Equal to the printer model (eg '6245' or '1245' decimal) */
|
||||
uint32_t media_w; /* 0x02 for 5", 0x03 for 6" */
|
||||
uint32_t media_w; /* 0x02 for 5", 0x03 for 6" <-- IGNORED by backend. */
|
||||
uint32_t unk3; /* Fixed at 0x01 */
|
||||
|
||||
uint32_t len2; /* Fixed at 0x64 */
|
||||
|
@ -108,7 +108,7 @@ struct s6145_printjob_hdr {
|
|||
uint32_t unk6;
|
||||
|
||||
uint32_t method; /* 0x00 normal, 0x02 4x6*2, 0x04 2x6*2, 0x05 6x6+2x6 */
|
||||
uint32_t qual; /* 0x00 default, 0x01 std */
|
||||
uint32_t qual; /* 0x00 default, 0x01 std <-- IGNORED by backend */
|
||||
uint32_t oc_mode; /* 0x00 default, 0x01 off, 0x02 glossy, 0x03 matte */
|
||||
uint32_t unk8;
|
||||
|
||||
|
@ -1366,8 +1366,8 @@ static void dump_mediainfo(struct s6145_mediainfo_resp *resp)
|
|||
for (i = 0 ; i < resp->count ; i++) {
|
||||
INFO(" %02d: C 0x%02x (%s), %04ux%04u, P 0x%02x (%s)\n", i,
|
||||
resp->items[i].media_code, print_sizes(resp->items[i].media_code),
|
||||
le16_to_cpu(resp->items[i].columns),
|
||||
le16_to_cpu(resp->items[i].rows),
|
||||
resp->items[i].columns,
|
||||
resp->items[i].rows,
|
||||
resp->items[i].print_method, print_methods(resp->items[i].print_method));
|
||||
}
|
||||
}
|
||||
|
@ -1938,6 +1938,13 @@ static int shinkos6145_attach(void *vctx, struct libusb_device_handle *dev, int
|
|||
return CUPS_BACKEND_FAILED;
|
||||
}
|
||||
memcpy(&ctx->media, resp, sizeof(*resp));
|
||||
|
||||
/* Byteswap media descriptor.. */
|
||||
int i;
|
||||
for (i = 0 ; i < ctx->media.count ; i++) {
|
||||
ctx->media.items[i].columns = le16_to_cpu(ctx->media.items[i].columns);
|
||||
ctx->media.items[i].rows = le16_to_cpu(ctx->media.items[i].rows);
|
||||
}
|
||||
} else {
|
||||
int media_code = RIBBON_6x8;
|
||||
if (getenv("MEDIA_CODE"))
|
||||
|
@ -2184,8 +2191,8 @@ static int shinkos6145_main_loop(void *vctx, const void *vjob) {
|
|||
/* Validate print sizes */
|
||||
for (i = 0; i < media->count ; i++) {
|
||||
/* Look for matching media */
|
||||
if (le16_to_cpu(media->items[i].columns) == job->hdr.columns &&
|
||||
le16_to_cpu(media->items[i].rows) == job->hdr.rows &&
|
||||
if (media->items[i].columns == job->hdr.columns &&
|
||||
media->items[i].rows == job->hdr.rows &&
|
||||
media->items[i].print_method == job->hdr.method &&
|
||||
media->items[i].media_code == job->hdr.media)
|
||||
break;
|
||||
|
@ -2487,7 +2494,7 @@ static const char *shinkos6145_prefixes[] = {
|
|||
|
||||
struct dyesub_backend shinkos6145_backend = {
|
||||
.name = "Shinko/Sinfonia CHC-S6145/CS2",
|
||||
.version = "0.32",
|
||||
.version = "0.33",
|
||||
.uri_prefixes = shinkos6145_prefixes,
|
||||
.cmdline_usage = shinkos6145_cmdline,
|
||||
.cmdline_arg = shinkos6145_cmdline_arg,
|
||||
|
|
|
@ -1128,8 +1128,8 @@ static void dump_mediainfo(struct s6245_mediainfo_resp *resp)
|
|||
for (i = 0 ; i < resp->count ; i++) {
|
||||
INFO(" %02d: C 0x%02x (%s), %04ux%04u, P 0x%02x (%s)\n", i,
|
||||
resp->items[i].media_code, print_sizes(resp->items[i].media_code),
|
||||
le16_to_cpu(resp->items[i].columns),
|
||||
le16_to_cpu(resp->items[i].rows),
|
||||
resp->items[i].columns,
|
||||
resp->items[i].rows,
|
||||
resp->items[i].print_method, print_methods(resp->items[i].print_method));
|
||||
}
|
||||
}
|
||||
|
@ -1494,6 +1494,14 @@ static int shinkos6245_attach(void *vctx, struct libusb_device_handle *dev, int
|
|||
ERROR("Failed to execute %s command\n", cmd_names(cmd.cmd));
|
||||
return CUPS_BACKEND_FAILED;
|
||||
}
|
||||
|
||||
/* Byteswap media descriptor.. */
|
||||
int i;
|
||||
for (i = 0 ; i < ctx->media.count ; i++) {
|
||||
ctx->media.items[i].columns = le16_to_cpu(ctx->media.items[i].columns);
|
||||
ctx->media.items[i].rows = le16_to_cpu(ctx->media.items[i].rows);
|
||||
}
|
||||
|
||||
} else {
|
||||
int media_code = 0x12;
|
||||
if (getenv("MEDIA_CODE"))
|
||||
|
@ -1607,8 +1615,8 @@ static int shinkos6245_main_loop(void *vctx, const void *vjob) {
|
|||
/* Validate print sizes */
|
||||
for (i = 0; i < ctx->media.count ; i++) {
|
||||
/* Look for matching media */
|
||||
if (le16_to_cpu(ctx->media.items[i].columns) == cpu_to_le16(job->hdr.columns) &&
|
||||
le16_to_cpu(ctx->media.items[i].rows) == cpu_to_le16(job->hdr.rows))
|
||||
if (ctx->media.items[i].columns == job->hdr.columns &&
|
||||
ctx->media.items[i].rows == job->hdr.rows)
|
||||
break;
|
||||
}
|
||||
if (i == ctx->media.count) {
|
||||
|
@ -1860,7 +1868,7 @@ static const char *shinkos6245_prefixes[] = {
|
|||
|
||||
struct dyesub_backend shinkos6245_backend = {
|
||||
.name = "Shinko/Sinfonia CHC-S6245",
|
||||
.version = "0.16WIP",
|
||||
.version = "0.17WIP",
|
||||
.uri_prefixes = shinkos6245_prefixes,
|
||||
.cmdline_usage = shinkos6245_cmdline,
|
||||
.cmdline_arg = shinkos6245_cmdline_arg,
|
||||
|
|
Loading…
Reference in a new issue