From: Bastian Dehn Date: Fri, 27 Mar 2026 14:53:16 +0000 (+0100) Subject: change set sub option abort not found X-Git-Tag: v1.1.25^2~3^2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=1266650f934b3840e56bd17d25cb0f0d9e9a07da;p=sane-kds-s2000w-net.git change set sub option abort not found --- diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index 228859f..16c541c 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -288,10 +288,17 @@ void _kds_s2000w_handler_opts_set_valid_coord_y(option_descriptor_t* descriptor, void _kds_s2000w_handler_opts_set_enable_cropping_image(json_object* config) { json_object* cropping_mode = json_object_object_get(config, CROPPING_MODE); - const char* cropping_mode_value = json_object_get_string(cropping_mode); + if (cropping_mode == NULL) + return; json_object* cropping_image = json_object_object_get(config, CROPPING_IMAGE); + if (cropping_image == NULL) + return; + + const char* cropping_mode_value = json_object_get_string(cropping_mode); SANE_Option_Descriptor* cropping_image_descriptor = kds_s2000w_option_descriptors_get_by_config_name(CROPPING_IMAGE); + if (cropping_image_descriptor == NULL) + return; if (strcmp(cropping_mode_value, "Automatic") == 0) { _kds_s2000w_handler_opts_write_value_to_json(cropping_image, cropping_image_descriptor->type, "EntireDocument"); @@ -310,14 +317,22 @@ void _kds_s2000w_handler_opts_set_enable_cropping_image(json_object* config) void _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(json_object* config) { - json_object* cropping_image = json_object_object_get(config, CROPPING_IMAGE);; - const char* cropping_image_value = json_object_get_string(cropping_image); + json_object* cropping_image = json_object_object_get(config, CROPPING_IMAGE); + if (cropping_image == NULL) + return; + const char* cropping_image_value = json_object_get_string(cropping_image); SANE_Option_Descriptor* image_offset_x = kds_s2000w_option_descriptors_get_by_config_name(IMAGE_OFFSET_X); SANE_Option_Descriptor* image_offset_y = kds_s2000w_option_descriptors_get_by_config_name(IMAGE_OFFSET_Y); SANE_Option_Descriptor* image_width = kds_s2000w_option_descriptors_get_by_config_name(IMAGE_WIDTH); SANE_Option_Descriptor* image_height = kds_s2000w_option_descriptors_get_by_config_name(IMAGE_HEIGHT); + if (image_offset_x == NULL + || image_offset_y == NULL + || image_width == NULL + || image_height == NULL) + return; + if (strcmp(cropping_image_value, "PartialDocument") == 0) { image_offset_x->cap |= SANE_CAP_SOFT_SELECT; image_offset_y->cap |= SANE_CAP_SOFT_SELECT; @@ -334,13 +349,20 @@ void _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(json_object* void _kds_s2000w_handler_opts_set_enable_color_balance(json_object* config) { - json_object* color_balance_mode = json_object_object_get(config, COLOR_BALANCE_MODE);; - const char* color_balance_mode_value = json_object_get_string(color_balance_mode); + json_object* color_balance_mode = json_object_object_get(config, COLOR_BALANCE_MODE); + if (color_balance_mode == NULL) + return; + const char* color_balance_mode_value = json_object_get_string(color_balance_mode); SANE_Option_Descriptor* color_balance_red = kds_s2000w_option_descriptors_get_by_config_name(COLOR_BALANCE_RED); SANE_Option_Descriptor* color_balance_green = kds_s2000w_option_descriptors_get_by_config_name(COLOR_BALANCE_GREEN); SANE_Option_Descriptor* color_balance_blue = kds_s2000w_option_descriptors_get_by_config_name(COLOR_BALANCE_BLUE); + if (color_balance_red == NULL + || color_balance_green == NULL + || color_balance_blue == NULL) + return; + if (strcmp(color_balance_mode_value, "Manual") == 0) { color_balance_red->cap |= SANE_CAP_SOFT_SELECT; color_balance_green->cap |= SANE_CAP_SOFT_SELECT; @@ -355,10 +377,14 @@ void _kds_s2000w_handler_opts_set_enable_color_balance(json_object* config) void _kds_s2000w_handler_opts_set_enable_color_aggressiveness(json_object* config) { - json_object* color_balance_mode = json_object_object_get(config, COLOR_BALANCE_MODE);; - const char* color_balance_mode_value = json_object_get_string(color_balance_mode); + json_object* color_balance_mode = json_object_object_get(config, COLOR_BALANCE_MODE); + if (color_balance_mode == NULL) + return; + const char* color_balance_mode_value = json_object_get_string(color_balance_mode); SANE_Option_Descriptor* color_balance_aggressivness = kds_s2000w_option_descriptors_get_by_config_name(COLOR_BALANCE_AGGRESSIVENESS); + if (color_balance_aggressivness == NULL) + return; if (strcmp(color_balance_mode_value, "AutomaticAdvanced") == 0) { color_balance_aggressivness->cap |= SANE_CAP_SOFT_SELECT; @@ -370,10 +396,14 @@ void _kds_s2000w_handler_opts_set_enable_color_aggressiveness(json_object* confi void _kds_s2000w_handler_opts_set_enable_color_brightness(json_object* config) { - json_object* color_auto_brightness_mode = json_object_object_get(config, COLOR_AUTO_BRIGHTNESS_MODE);; - const char* color_auto_brightness_mode_value = json_object_get_string(color_auto_brightness_mode); + json_object* color_auto_brightness_mode = json_object_object_get(config, COLOR_AUTO_BRIGHTNESS_MODE); + if (color_auto_brightness_mode == NULL) + return; + const char* color_auto_brightness_mode_value = json_object_get_string(color_auto_brightness_mode); SANE_Option_Descriptor* color_brightness = kds_s2000w_option_descriptors_get_by_config_name(COLOR_BRIGHTNESS); + if (color_brightness == NULL) + return; if (strcmp(color_auto_brightness_mode_value, "Manual") == 0) { color_brightness->cap |= SANE_CAP_SOFT_SELECT; @@ -385,25 +415,33 @@ void _kds_s2000w_handler_opts_set_enable_color_brightness(json_object* config) void _kds_s2000w_handler_opts_set_enable_color_contrast(json_object* config) { - json_object* color_auto_brightness_mode = json_object_object_get(config, COLOR_AUTO_BRIGHTNESS_MODE);; - const char* color_auto_brightness_mode_value = json_object_get_string(color_auto_brightness_mode); + json_object* color_auto_brightness_mode = json_object_object_get(config, COLOR_AUTO_BRIGHTNESS_MODE); + if (color_auto_brightness_mode == NULL) + return; - SANE_Option_Descriptor* color_constrast = kds_s2000w_option_descriptors_get_by_config_name(COLOR_CONTRAST); + const char* color_auto_brightness_mode_value = json_object_get_string(color_auto_brightness_mode); + SANE_Option_Descriptor* color_contrast = kds_s2000w_option_descriptors_get_by_config_name(COLOR_CONTRAST); + if (color_contrast == NULL) + return; if (strcmp(color_auto_brightness_mode_value, "Manual") == 0) { - color_constrast->cap |= SANE_CAP_SOFT_SELECT; + color_contrast->cap |= SANE_CAP_SOFT_SELECT; return; } - color_constrast->cap &= ~SANE_CAP_SOFT_SELECT; + color_contrast->cap &= ~SANE_CAP_SOFT_SELECT; } void _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(json_object* config) { - json_object* foreground_boldness_mode = json_object_object_get(config, FOREGROUND_BOLDNESS_MODE);; - const char* foreground_boldness_mode_value = json_object_get_string(foreground_boldness_mode); + json_object* foreground_boldness_mode = json_object_object_get(config, FOREGROUND_BOLDNESS_MODE); + if (foreground_boldness_mode == NULL) + return; + const char* foreground_boldness_mode_value = json_object_get_string(foreground_boldness_mode); SANE_Option_Descriptor* foreground_boldness_aggressiveness = kds_s2000w_option_descriptors_get_by_config_name(FOREGROUND_BOLDNESS_AGGRESSIVENESS); + if (foreground_boldness_aggressiveness == NULL) + return; if (strcmp(foreground_boldness_mode_value, "AutomaticAdvanced") == 0) { foreground_boldness_aggressiveness->cap |= SANE_CAP_SOFT_SELECT; @@ -415,10 +453,14 @@ void _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(json_object* co void _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(json_object* config) { - json_object* background_smoothing_mode = json_object_object_get(config, BACKGROUND_SMOOTHING_MODE);; - const char* background_smoothing_mode_value = json_object_get_string(background_smoothing_mode); + json_object* background_smoothing_mode = json_object_object_get(config, BACKGROUND_SMOOTHING_MODE); + if (background_smoothing_mode == NULL) + return; + const char* background_smoothing_mode_value = json_object_get_string(background_smoothing_mode); SANE_Option_Descriptor* background_smoothing_aggressiveness = kds_s2000w_option_descriptors_get_by_config_name(BACKGROUND_SMOOTHING_AGGRESSIVENESS); + if (background_smoothing_aggressiveness == NULL) + return; if (strcmp(background_smoothing_mode_value, "AutomaticAdvanced") == 0) { background_smoothing_aggressiveness->cap |= SANE_CAP_SOFT_SELECT; @@ -430,10 +472,14 @@ void _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(json_object* c void _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(json_object* config) { - json_object* color_drop_out = json_object_object_get(config, COLOR_DROP_OUT);; - const char* color_drop_out_value = json_object_get_string(color_drop_out); + json_object* color_drop_out = json_object_object_get(config, COLOR_DROP_OUT); + if (color_drop_out == NULL) + return; + const char* color_drop_out_value = json_object_get_string(color_drop_out); SANE_Option_Descriptor* color_drop_out_aggressiveness = kds_s2000w_option_descriptors_get_by_config_name(COLOR_DROP_OUT_AGGRESSIVENESS); + if (color_drop_out_aggressiveness == NULL) + return; if (strcmp(color_drop_out_value, "Predominant") == 0 || strcmp(color_drop_out_value, "Multiple") == 0) { color_drop_out_aggressiveness->cap |= SANE_CAP_SOFT_SELECT; @@ -544,12 +590,10 @@ void _kds_s2000w_handler_opts_set_depends_opts(const handler_t* h, } if (strcmp(config_name, RESET) == 0) { - if (h->profile == PROFILE_FULL) { - _kds_s2000w_handler_opts_set_enable_cropping_image(config); - _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config); - _kds_s2000w_handler_opts_set_enable_color_brightness(config); - _kds_s2000w_handler_opts_set_enable_color_contrast(config); - } + _kds_s2000w_handler_opts_set_enable_cropping_image(config); + _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config); + _kds_s2000w_handler_opts_set_enable_color_brightness(config); + _kds_s2000w_handler_opts_set_enable_color_contrast(config); _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config); _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config); _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config); @@ -755,8 +799,7 @@ int32_t kds_s2000w_handler_opts_set_option(handler_t* h, uint32_t option, void* _kds_s2000w_handler_opts_reset(descriptor, h); - if (h->profile > PROFILE_MIN) - _kds_s2000w_handler_opts_set_depends_opts(h, descriptor->config_name, h->scanner_config); + _kds_s2000w_handler_opts_set_depends_opts(h, descriptor->config_name, h->scanner_config); if (!_kds_s2000w_opts_validate(descriptor->descriptor, value)) return INVAL;