From 5bd0480de0b03bc3212ba08ff882b014ff3d2fbd Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 30 Jan 2024 19:21:12 +0100 Subject: [PATCH] add reset blank pages --- src/kds_s2000w_handler.c | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 7e6f797..1534cc2 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -91,6 +91,26 @@ int _color_change_to_color_bw() return 0; } +int _change_skip_blank_pages_off() +{ + json_object* value_object = json_object_object_get(config, "OutputType"); + const char* output_type = json_object_get_string(value_object); + value_object = NULL; + value_object = json_object_object_get(config, "ScanSide"); + const char* scan_side = json_object_get_string(value_object); + value_object = NULL; + + if (strcmp(scan_side, "Duplex") == 0 + && strcmp(output_type, "SinglePageColorPDFPlus2TIFs") == 0) { + value_object = json_object_object_get(config, "SkipBlankPages"); + json_object_set_int(value_object, 0); + value_object = NULL; + return 1; + } + + return 0; +} + current_state* kds_s2000w_handler_open() { state = malloc(sizeof(current_state)); @@ -277,11 +297,17 @@ void kds_s2000w_handler_set_option(int option, void* value, int* info) case 3: value_object = json_object_object_get(config, "ScanSide"); _write_string_value_to_json(value_object, value); + value_object = NULL; + + // BUG: change blank page off response 405 invalid settings + if (_change_skip_blank_pages_off()) + *info = RELOAD_OPTIONS; + break; case 4: value_object = json_object_object_get(config, "ColorMode"); _write_string_value_to_json(value_object, value); - const char* current_value = (const char*) value; + value_object = NULL; if (_change_output_type_to_images()) *info = RELOAD_OPTIONS; @@ -290,6 +316,11 @@ void kds_s2000w_handler_set_option(int option, void* value, int* info) case 5: value_object = json_object_object_get(config, "SkipBlankPages"); _write_int_value_to_json(value_object, value); + value_object = NULL; + + if (_change_skip_blank_pages_off()) + *info = RELOAD_OPTIONS; + break; case 6: value_object = json_object_object_get(config, "AutoStart"); @@ -308,9 +339,10 @@ void kds_s2000w_handler_set_option(int option, void* value, int* info) _write_string_value_to_json(value_object, value); value_object = NULL; - value_object = json_object_object_get(config, "ColorMode"); - const char* color_mode = json_object_get_string(value_object); - if (_color_change_to_color_bw(color_mode)) + if (_color_change_to_color_bw()) + *info = RELOAD_OPTIONS; + + if (_change_skip_blank_pages_off()) *info = RELOAD_OPTIONS; break; -- 2.39.5