diff --git a/backend_kodak605.c b/backend_kodak605.c index 2736574..7fb4033 100644 --- a/backend_kodak605.c +++ b/backend_kodak605.c @@ -702,7 +702,7 @@ static int kodak605_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_USER, optarg); break; case 'C': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_USER, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_USER, optarg); break; case 'e': j = sinfonia_geterrorlog(&ctx->dev); @@ -717,7 +717,7 @@ static int kodak605_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); break; case 'L': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_CURRENT, optarg); break; case 'm': kodak605_dump_mediainfo(ctx->media); @@ -775,7 +775,7 @@ static const char *kodak605_prefixes[] = { /* Exported */ struct dyesub_backend kodak605_backend = { .name = "Kodak 605/70xx", - .version = "0.48" " (lib " LIBSINFONIA_VER ")", + .version = "0.49" " (lib " LIBSINFONIA_VER ")", .uri_prefixes = kodak605_prefixes, .cmdline_usage = kodak605_cmdline, .cmdline_arg = kodak605_cmdline_arg, diff --git a/backend_shinkos6145.c b/backend_shinkos6145.c index e7ad154..0162eac 100644 --- a/backend_shinkos6145.c +++ b/backend_shinkos6145.c @@ -896,7 +896,7 @@ int shinkos6145_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_USER, optarg); break; case 'C': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_USER, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_USER, optarg); break; case 'e': j = sinfonia_geterrorlog(&ctx->dev); @@ -931,7 +931,7 @@ int shinkos6145_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); break; case 'L': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_CURRENT, optarg); break; case 'm': dump_mediainfo(&ctx->media); @@ -1521,7 +1521,7 @@ static const char *shinkos6145_prefixes[] = { struct dyesub_backend shinkos6145_backend = { .name = "Shinko/Sinfonia CHC-S6145/CS2/S2245/S3", - .version = "0.41" " (lib " LIBSINFONIA_VER ")", + .version = "0.42" " (lib " LIBSINFONIA_VER ")", .uri_prefixes = shinkos6145_prefixes, .cmdline_usage = shinkos6145_cmdline, .cmdline_arg = shinkos6145_cmdline_arg, diff --git a/backend_shinkos6245.c b/backend_shinkos6245.c index bd31329..56e95d6 100644 --- a/backend_shinkos6245.c +++ b/backend_shinkos6245.c @@ -826,7 +826,7 @@ int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_USER, optarg); break; case 'C': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_USER, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_USER, optarg); break; case 'e': if (ctx->dev.type == P_KODAK_8810) { @@ -865,7 +865,7 @@ int shinkos6245_cmdline_arg(void *vctx, int argc, char **argv) j = sinfonia_gettonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); break; case 'L': - j = sinfonia_settonecurve(&ctx->dev, TONECURVE_CURRENT, optarg); + j = sinfonia_settonecurve(&ctx->dev, UPDATE_TARGET_TONE_CURRENT, optarg); break; case 'm': dump_mediainfo(&ctx->media); @@ -1257,7 +1257,7 @@ static const char *shinkos6245_prefixes[] = { struct dyesub_backend shinkos6245_backend = { .name = "Sinfonia CHC-S6245 / Kodak 8810", - .version = "0.26" " (lib " LIBSINFONIA_VER ")", + .version = "0.27" " (lib " LIBSINFONIA_VER ")", .uri_prefixes = shinkos6245_prefixes, .cmdline_usage = shinkos6245_cmdline, .cmdline_arg = shinkos6245_cmdline_arg, diff --git a/backend_sinfonia.c b/backend_sinfonia.c index b6e1f00..8488cf9 100644 --- a/backend_sinfonia.c +++ b/backend_sinfonia.c @@ -660,7 +660,7 @@ int sinfonia_settonecurve(struct sinfonia_usbdev *usbh, int target, char *fname) struct sinfonia_status_hdr resp; int ret, num = 0; - INFO("Set %s Tone Curve from '%s'\n", sinfonia_update_targets(target), fname); + INFO("Set %s from '%s'\n", sinfonia_update_targets(target), fname); uint16_t *data = malloc(TONE_CURVE_SIZE * sizeof(uint16_t)); if (!data) { @@ -780,10 +780,16 @@ int sinfonia_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint const char *sinfonia_update_targets (uint8_t v) { switch (v) { - case UPDATE_TARGET_USER: - return "User"; - case UPDATE_TARGET_CURRENT: - return "Current"; + case UPDATE_TARGET_TONE_USER: + return "User Tone Curve"; + case UPDATE_TARGET_TONE_CURRENT: + return "Current Tone Curve"; + case UPDATE_TARGET_LAM_USER: + return "User Lamination Data"; + case UPDATE_TARGET_LAM_CUR: + return "Current Lamination Data"; + case UPDATE_TARGET_LAM_DEF: + return "Default Lamination Data"; default: return "Unknown"; } diff --git a/backend_sinfonia.h b/backend_sinfonia.h index 5f69998..5dc6c7a 100644 --- a/backend_sinfonia.h +++ b/backend_sinfonia.h @@ -27,7 +27,7 @@ * */ -#define LIBSINFONIA_VER "0.10" +#define LIBSINFONIA_VER "0.11" #define SINFONIA_HDR1_LEN 0x10 #define SINFONIA_HDR2_LEN 0x64 @@ -102,12 +102,11 @@ int sinfonia_query_serno(struct libusb_device_handle *dev, uint8_t endp_up, uint const char *sinfonia_bank_statuses(uint8_t v); -#define UPDATE_TARGET_USER 0x03 -#define UPDATE_TARGET_CURRENT 0x04 -#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 +#define UPDATE_TARGET_TONE_USER 0x03 +#define UPDATE_TARGET_TONE_CURRENT 0x04 +#define UPDATE_TARGET_LAM_USER 0x10 +#define UPDATE_TARGET_LAM_DEF 0x11 +#define UPDATE_TARGET_LAM_CUR 0x12 /* Update is three channels, Y, M, C; each is 256 entries of 11-bit data padded to 16-bits. @@ -313,11 +312,11 @@ struct sinfonia_readtone_resp { struct sinfonia_update_cmd { struct sinfonia_cmd_hdr hdr; - uint8_t target; - uint8_t curve_id; - uint8_t reset; // ?? + uint8_t target; // UPDATE_TARGET_TONE_* + uint8_t curve_id; // 00 for lamination, 01 for tone? + uint8_t reset; // ?? uint8_t reserved[3]; - uint32_t size; + uint32_t size; // TONE_CURVE_SIZE or lamination data that is rows*cols bytes } __attribute__((packed)); struct sinfonia_getserial_resp {