kodak8810: Enhancements:
* Support disabling control panel * Additional commands identified * Cutter list support [theoretical]
This commit is contained in:
parent
0229d9ae6e
commit
9f32458aec
3
README
3
README
|
@ -725,6 +725,7 @@
|
|||
|
||||
Valid commands:
|
||||
|
||||
-b [ 0 | 1 ] Disable or Enable the printer control panel [4]
|
||||
-c filename Query User tone curve from flash [1]
|
||||
-C filename Store User tone curve in flash [1]
|
||||
-e Query Error log
|
||||
|
@ -743,6 +744,8 @@
|
|||
|
||||
* Work-in-progress, has not been tested on an actual printer yet.
|
||||
|
||||
[4] Kodak 8810 only
|
||||
|
||||
[1] Format of curvedata file:
|
||||
|
||||
256 entries each of Yellow, Magenta, Cyan mappings:
|
||||
|
|
|
@ -785,6 +785,7 @@ static void dump_mediainfo(struct sinfonia_6x45_mediainfo_resp *resp)
|
|||
|
||||
static void shinkos6245_cmdline(void)
|
||||
{
|
||||
DEBUG("\t\t[ -b 0|1 ] # Disable/Enable control panel\n");
|
||||
DEBUG("\t\t[ -c filename ] # Get user/NV tone curve\n");
|
||||
DEBUG("\t\t[ -C filename ] # Set user/NV tone curve\n");
|
||||
DEBUG("\t\t[ -e ] # Query error log\n");
|
||||
|
@ -808,9 +809,19 @@ int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv)
|
|||
if (!ctx)
|
||||
return -1;
|
||||
|
||||
while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "c:C:eFik:l:L:mrR:sX:")) >= 0) {
|
||||
while ((i = getopt(argc, argv, GETOPT_LIST_GLOBAL "b:c:C:eFik:l:L:mrR:sX:")) >= 0) {
|
||||
switch(i) {
|
||||
GETOPT_PROCESS_GLOBAL
|
||||
case 'b':
|
||||
if (ctx->dev.type != P_KODAK_8810)
|
||||
return -1;
|
||||
else if (optarg[0] == '1')
|
||||
j = sinfonia_button_set(&ctx->dev, BUTTON_ENABLED);
|
||||
else if (optarg[0] == '0')
|
||||
j = sinfonia_button_set(&ctx->dev, BUTTON_DISABLED);
|
||||
else
|
||||
return -1;
|
||||
break;
|
||||
case 'c':
|
||||
j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_USER, optarg);
|
||||
break;
|
||||
|
@ -1010,6 +1021,7 @@ static int shinkos6245_main_loop(void *vctx, const void *vjob) {
|
|||
break;
|
||||
}
|
||||
// XXX what about mcut |= PRINT_METHOD_DISABLE_ERR;
|
||||
// XXX set up CUTLIST for EK8810!
|
||||
|
||||
#if 0 /* Doesn't work on EK8810. Not sure about S6245 */
|
||||
int i;
|
||||
|
@ -1245,7 +1257,7 @@ static const char *shinkos6245_prefixes[] = {
|
|||
|
||||
struct dyesub_backend shinkos6245_backend = {
|
||||
.name = "Sinfonia CHC-S6245 / Kodak 8810",
|
||||
.version = "0.25" " (lib " LIBSINFONIA_VER ")",
|
||||
.version = "0.26" " (lib " LIBSINFONIA_VER ")",
|
||||
.uri_prefixes = shinkos6245_prefixes,
|
||||
.cmdline_usage = shinkos6245_cmdline,
|
||||
.cmdline_arg = shinkos6245_cmdline_arg,
|
||||
|
|
|
@ -1047,14 +1047,14 @@ const char *sinfonia_cmd_names(uint16_t v) {
|
|||
return "Button Enable";
|
||||
case SINFONIA_CMD_SETPARAM:
|
||||
return "Set Parameter";
|
||||
// case SINFONIA_CMD_UNKNOWN48:
|
||||
// return "UKNOWN 4008"; // XXX
|
||||
case SINFONIA_CMD_SETLAMSTR:
|
||||
return "Set Lamination String";
|
||||
case SINFONIA_CMD_COMMPPA:
|
||||
return "Communication PPA";
|
||||
// case SINFONIA_CMD_SETCUTLIST:
|
||||
return "Communication PPA / Set Cut List";
|
||||
case SINFONIA_CMD_SETPPAPARM:
|
||||
return "Set PPA Parameter";
|
||||
// case SINFONIA_CMD_WAKEUPSTBY::
|
||||
return "Set PPA Parameter / Set Wakeup Standby";
|
||||
case SINFONIA_CMD_BACKPRINT:
|
||||
return "Set Backprint String";
|
||||
case SINFONIA_CMD_UNKNOWN4C:
|
||||
|
|
|
@ -104,7 +104,10 @@ const char *sinfonia_bank_statuses(uint8_t v);
|
|||
|
||||
#define UPDATE_TARGET_USER 0x03
|
||||
#define UPDATE_TARGET_CURRENT 0x04
|
||||
// XXX 0x10, 0x11 , lens 0x22e3e0 and 0x447c68/. LAMINATE patterns?
|
||||
#define UPDATE_TARGET_LAM1 0x10
|
||||
#define UPDATE_TARGET_LAM2 0x11
|
||||
// XXX 0x10 (len 0x22e3e0), 0x11 (len 0x447c68 on EK701x)
|
||||
// XXX 0x10, len 0x884100 on EK8810
|
||||
|
||||
/* Update is three channels, Y, M, C;
|
||||
each is 256 entries of 11-bit data padded to 16-bits.
|
||||
|
@ -381,6 +384,12 @@ struct kodak701x_backprint {
|
|||
uint8_t text[42]; //
|
||||
} __attribute__((packed));
|
||||
|
||||
struct kodak8810_cutlist {
|
||||
struct sinfonia_cmd_hdr hdr;
|
||||
uint8_t entries; /* max 24 */
|
||||
uint16_t cut[36]; /* LE, each one is presumably a line number. */
|
||||
} __attribute__((packed));
|
||||
|
||||
#define CODE_4x6 0x00
|
||||
#define CODE_3_5x5 0x01
|
||||
#define CODE_5x7 0x03
|
||||
|
@ -456,10 +465,11 @@ const char *sinfonia_status_str(uint8_t v);
|
|||
#define SINFONIA_CMD_BUTTON 0x4006 // 2145?
|
||||
#define SINFONIA_CMD_SETPARAM 0x4007 // !2145
|
||||
|
||||
#define SINFONIA_CMD_UNKNOWN48 0x4008 // EK8810, panorama status? (len 28)
|
||||
#define SINFONIA_CMD_SETLAMSTR 0x4008 // EK70xx
|
||||
#define SINFONIA_CMD_SETLAMSTR 0x4008 // EK70xx, EK8810? (len 28)
|
||||
#define SINFONIA_CMD_COMMPPA 0x4009 // EK70xx
|
||||
#define SINFONIA_CMD_SETCUTLIST 0x4009 // EK8810 (len 73, count + 36 entries, 16bit LE)
|
||||
#define SINFONIA_CMD_SETPPAPARM 0x400A // EK70xx
|
||||
#define SINFONIA_CMD_WAKEUPSDBY 0x400A // EK8810 (len 1)
|
||||
#define SINFONIA_CMD_BACKPRINT 0x400B // EK701x only! (len 50)
|
||||
#define SINFONIA_CMD_UNKNOWN4C 0x400C // EK8810, panorama setup?
|
||||
|
||||
|
@ -475,7 +485,7 @@ const char *sinfonia_status_str(uint8_t v);
|
|||
#define SINFONIA_CMD_MAINTPERM 0x8002 // EK70xx
|
||||
#define SINFONIA_CMD_GETUNIQUE 0x8003 // 2145
|
||||
|
||||
#define SINFONIA_CMD_SELFDIAG 0xC001
|
||||
#define SINFONIA_CMD_SELFDIAG 0xC001 // (len 3)
|
||||
#define SINFONIA_CMD_DIAGRES 0xC002
|
||||
#define SINFONIA_CMD_FWINFO 0xC003
|
||||
#define SINFONIA_CMD_UPDATE 0xC004
|
||||
|
|
Loading…
Reference in New Issue