#include <sane/saneopts.h>
#include "kds_s2000w_option_descriptors.h"
-#define PROFILE_FULL_MAX_OPTION_COUNT 48
-#define PROFILE_230802_V1_0_36_MAX_OPTION_COUNT 26
-#define PROFILE_MIN_MAX_OPTION_COUNT 12
-
+typedef option_descriptor_t* (*descriptor_fn)();
typedef struct {
option_descriptor_t** descriptors;
size_t size;
******************************************************************************/
SANE_Status _kds_s2000w_option_descriptors_init_min_profile()
{
- kds_s2000w_option_descriptors->size = PROFILE_MIN_MAX_OPTION_COUNT;
+ descriptor_fn fn[] = {
+ _kds_s2000w_option_descriptor_num_options,
+ _kds_s2000w_option_descriptor_standard_group,
+ _kds_s2000w_option_descriptor_color_mode,
+ _kds_s2000w_option_descriptor_dpi,
+ _kds_s2000w_option_descriptor_scanside,
+ _kds_s2000w_option_descriptor_boldness_color_group,
+ _kds_s2000w_option_descriptor_color_drop,
+ _kds_s2000w_option_descriptor_config_reset,
+ _kds_s2000w_option_descriptor_image_processing_group,
+ _kds_s2000w_option_descriptor_skip_blank_pages,
+ _kds_s2000w_option_descriptor_feeder_group,
+ _kds_s2000w_option_descriptor_autostart
+ };
+
+ kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);;
kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
if (kds_s2000w_option_descriptors->descriptors == NULL) {
free(kds_s2000w_option_descriptors);
return SANE_STATUS_NO_MEM;
}
- kds_s2000w_option_descriptors->descriptors[0] = _kds_s2000w_option_descriptor_num_options();;
- kds_s2000w_option_descriptors->descriptors[1] = _kds_s2000w_option_descriptor_standard_group();
- kds_s2000w_option_descriptors->descriptors[2] = _kds_s2000w_option_descriptor_color_mode();
- kds_s2000w_option_descriptors->descriptors[3] = _kds_s2000w_option_descriptor_dpi();
- kds_s2000w_option_descriptors->descriptors[4] = _kds_s2000w_option_descriptor_scanside();
- kds_s2000w_option_descriptors->descriptors[5] = _kds_s2000w_option_descriptor_boldness_color_group();
- kds_s2000w_option_descriptors->descriptors[6] = _kds_s2000w_option_descriptor_color_drop();
- kds_s2000w_option_descriptors->descriptors[7] = _kds_s2000w_option_descriptor_config_reset();
- kds_s2000w_option_descriptors->descriptors[8] = _kds_s2000w_option_descriptor_image_processing_group();
- kds_s2000w_option_descriptors->descriptors[9] = _kds_s2000w_option_descriptor_skip_blank_pages();
- kds_s2000w_option_descriptors->descriptors[10] = _kds_s2000w_option_descriptor_feeder_group();
- kds_s2000w_option_descriptors->descriptors[11] = _kds_s2000w_option_descriptor_autostart();
+
+ for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
+ kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
+ }
return _kds_s2000w_option_descriptor_validate();
}
SANE_Status _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile()
{
- kds_s2000w_option_descriptors->size = PROFILE_230802_V1_0_36_MAX_OPTION_COUNT;
+ descriptor_fn fn[] = {
+ _kds_s2000w_option_descriptor_num_options,
+ _kds_s2000w_option_descriptor_standard_group,
+ _kds_s2000w_option_descriptor_scan_source,
+ _kds_s2000w_option_descriptor_color_mode,
+ _kds_s2000w_option_descriptor_dpi,
+ _kds_s2000w_option_descriptor_scanside,
+ _kds_s2000w_option_descriptor_boldness_smoothing_group,
+ _kds_s2000w_option_descriptor_foreground_boldness_mode,
+ _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness,
+ _kds_s2000w_option_descriptor_background_smoothing_mode,
+ _kds_s2000w_option_descriptor_background_smoothing_aggressiveness,
+ _kds_s2000w_option_descriptor_boldness_color_group,
+ _kds_s2000w_option_descriptor_color_drop,
+ _kds_s2000w_option_descriptor_color_drop_out_aggressiveness,
+ _kds_s2000w_option_descriptor_color_auto_brightness_mode,
+ _kds_s2000w_option_descriptor_color_balance_mode,
+ _kds_s2000w_option_descriptor_color_balance_agressiveness,
+ _kds_s2000w_option_descriptor_color_balance_red,
+ _kds_s2000w_option_descriptor_color_balance_green,
+ _kds_s2000w_option_descriptor_color_balance_blue,
+ _kds_s2000w_option_descriptor_binarization_contrast,
+ _kds_s2000w_option_descriptor_config_reset,
+ _kds_s2000w_option_descriptor_image_processing_group,
+ _kds_s2000w_option_descriptor_skip_blank_pages,
+ _kds_s2000w_option_descriptor_feeder_group,
+ _kds_s2000w_option_descriptor_autostart
+ };
+
+ kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);
kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
if (kds_s2000w_option_descriptors->descriptors == NULL) {
free(kds_s2000w_option_descriptors);
return SANE_STATUS_NO_MEM;
}
- kds_s2000w_option_descriptors->descriptors[0] = _kds_s2000w_option_descriptor_num_options();
- kds_s2000w_option_descriptors->descriptors[1] = _kds_s2000w_option_descriptor_standard_group();
- kds_s2000w_option_descriptors->descriptors[2] = _kds_s2000w_option_descriptor_scan_source();
- kds_s2000w_option_descriptors->descriptors[3] = _kds_s2000w_option_descriptor_color_mode();
- kds_s2000w_option_descriptors->descriptors[4] = _kds_s2000w_option_descriptor_dpi();
- kds_s2000w_option_descriptors->descriptors[5] = _kds_s2000w_option_descriptor_scanside();
- kds_s2000w_option_descriptors->descriptors[6] = _kds_s2000w_option_descriptor_boldness_smoothing_group();
- kds_s2000w_option_descriptors->descriptors[7] = _kds_s2000w_option_descriptor_foreground_boldness_mode();
- kds_s2000w_option_descriptors->descriptors[8] = _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[9] = _kds_s2000w_option_descriptor_background_smoothing_mode();
- kds_s2000w_option_descriptors->descriptors[10] = _kds_s2000w_option_descriptor_background_smoothing_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[11] = _kds_s2000w_option_descriptor_boldness_color_group();
- kds_s2000w_option_descriptors->descriptors[12] = _kds_s2000w_option_descriptor_color_drop();
- kds_s2000w_option_descriptors->descriptors[13] = _kds_s2000w_option_descriptor_color_drop_out_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[14] = _kds_s2000w_option_descriptor_color_auto_brightness_mode();
- kds_s2000w_option_descriptors->descriptors[15] = _kds_s2000w_option_descriptor_color_balance_mode();
- kds_s2000w_option_descriptors->descriptors[16] = _kds_s2000w_option_descriptor_color_balance_agressiveness();
- kds_s2000w_option_descriptors->descriptors[17] = _kds_s2000w_option_descriptor_color_balance_red();
- kds_s2000w_option_descriptors->descriptors[18] = _kds_s2000w_option_descriptor_color_balance_green();
- kds_s2000w_option_descriptors->descriptors[19] = _kds_s2000w_option_descriptor_color_balance_blue();
- kds_s2000w_option_descriptors->descriptors[20] = _kds_s2000w_option_descriptor_binarization_contrast();
- kds_s2000w_option_descriptors->descriptors[21] = _kds_s2000w_option_descriptor_config_reset();
- kds_s2000w_option_descriptors->descriptors[22] = _kds_s2000w_option_descriptor_image_processing_group();
- kds_s2000w_option_descriptors->descriptors[23] = _kds_s2000w_option_descriptor_skip_blank_pages();
- kds_s2000w_option_descriptors->descriptors[24] = _kds_s2000w_option_descriptor_feeder_group();
- kds_s2000w_option_descriptors->descriptors[25] = _kds_s2000w_option_descriptor_autostart();
+ for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
+ kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
+ }
+
return _kds_s2000w_option_descriptor_validate();
}
SANE_Status _kds_s2000w_option_descriptors_init_full_profile()
{
- kds_s2000w_option_descriptors->size = PROFILE_FULL_MAX_OPTION_COUNT;
+ descriptor_fn fn[] = {
+ _kds_s2000w_option_descriptor_num_options,
+ _kds_s2000w_option_descriptor_standard_group,
+ _kds_s2000w_option_descriptor_scan_source,
+ _kds_s2000w_option_descriptor_color_mode,
+ _kds_s2000w_option_descriptor_dpi,
+ _kds_s2000w_option_descriptor_scanside,
+ _kds_s2000w_option_descriptor_geometry_group,
+ _kds_s2000w_option_descriptor_cropping_mode,
+ _kds_s2000w_option_descriptor_cropping_image,
+ _kds_s2000w_option_descriptor_image_offset_x,
+ _kds_s2000w_option_descriptor_image_offset_y,
+ _kds_s2000w_option_descriptor_image_width,
+ _kds_s2000w_option_descriptor_image_height,
+ _kds_s2000w_option_descriptor_boldness_smoothing_group,
+ _kds_s2000w_option_descriptor_foreground_boldness_mode,
+ _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness,
+ _kds_s2000w_option_descriptor_background_smoothing_mode,
+ _kds_s2000w_option_descriptor_background_smoothing_aggressiveness,
+ _kds_s2000w_option_descriptor_boldness_color_group,
+ _kds_s2000w_option_descriptor_color_drop,
+ _kds_s2000w_option_descriptor_color_drop_out_aggressiveness,
+ _kds_s2000w_option_descriptor_color_auto_brightness_mode,
+ _kds_s2000w_option_descriptor_color_brightness,
+ _kds_s2000w_option_descriptor_color_contrast,
+ _kds_s2000w_option_descriptor_color_balance_mode,
+ _kds_s2000w_option_descriptor_color_balance_agressiveness,
+ _kds_s2000w_option_descriptor_color_balance_red,
+ _kds_s2000w_option_descriptor_color_balance_green,
+ _kds_s2000w_option_descriptor_color_balance_blue,
+ _kds_s2000w_option_descriptor_color_sharpen,
+ _kds_s2000w_option_descriptor_binarization_contrast,
+ _kds_s2000w_option_descriptor_config_reset,
+ _kds_s2000w_option_descriptor_image_processing_group,
+ _kds_s2000w_option_descriptor_skip_blank_pages,
+ _kds_s2000w_option_descriptor_skip_blank_page_content,
+ _kds_s2000w_option_descriptor_hole_fill,
+ _kds_s2000w_option_descriptor_post_scan_rotation,
+ _kds_s2000w_option_descriptor_edge_fill,
+ _kds_s2000w_option_descriptor_image_border,
+ _kds_s2000w_option_descriptor_jpeg_quality,
+ _kds_s2000w_option_descriptor_feeder_group,
+ _kds_s2000w_option_descriptor_autostart,
+ _kds_s2000w_option_descriptor_max_document_length,
+ _kds_s2000w_option_descriptor_transport_handling,
+ _kds_s2000w_option_descriptor_multifeed_sensitivity,
+ _kds_s2000w_option_descriptor_multifeed_response,
+ _kds_s2000w_option_descriptor_document_feeder_timeout,
+ _kds_s2000w_option_descriptor_document_feeder_timeout_response
+ };
+
+ kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);
kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
if (kds_s2000w_option_descriptors->descriptors == NULL) {
free(kds_s2000w_option_descriptors);
return SANE_STATUS_NO_MEM;
}
- kds_s2000w_option_descriptors->descriptors[0] = _kds_s2000w_option_descriptor_num_options();
- kds_s2000w_option_descriptors->descriptors[1] = _kds_s2000w_option_descriptor_standard_group();
- kds_s2000w_option_descriptors->descriptors[2] = _kds_s2000w_option_descriptor_scan_source();
- kds_s2000w_option_descriptors->descriptors[3] = _kds_s2000w_option_descriptor_color_mode();
- kds_s2000w_option_descriptors->descriptors[4] = _kds_s2000w_option_descriptor_dpi();
- kds_s2000w_option_descriptors->descriptors[5] = _kds_s2000w_option_descriptor_scanside();
- kds_s2000w_option_descriptors->descriptors[6] = _kds_s2000w_option_descriptor_geometry_group();
- kds_s2000w_option_descriptors->descriptors[7] = _kds_s2000w_option_descriptor_cropping_mode();
- kds_s2000w_option_descriptors->descriptors[8] = _kds_s2000w_option_descriptor_cropping_image();
- kds_s2000w_option_descriptors->descriptors[9] = _kds_s2000w_option_descriptor_image_offset_x();
- kds_s2000w_option_descriptors->descriptors[10] = _kds_s2000w_option_descriptor_image_offset_y();
- kds_s2000w_option_descriptors->descriptors[11] = _kds_s2000w_option_descriptor_image_width();
- kds_s2000w_option_descriptors->descriptors[12] = _kds_s2000w_option_descriptor_image_height();
- kds_s2000w_option_descriptors->descriptors[13] = _kds_s2000w_option_descriptor_boldness_smoothing_group();
- kds_s2000w_option_descriptors->descriptors[14] = _kds_s2000w_option_descriptor_foreground_boldness_mode();
- kds_s2000w_option_descriptors->descriptors[15] = _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[16] = _kds_s2000w_option_descriptor_background_smoothing_mode();
- kds_s2000w_option_descriptors->descriptors[17] = _kds_s2000w_option_descriptor_background_smoothing_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[18] = _kds_s2000w_option_descriptor_boldness_color_group();
- kds_s2000w_option_descriptors->descriptors[19] = _kds_s2000w_option_descriptor_color_drop();
- kds_s2000w_option_descriptors->descriptors[20] = _kds_s2000w_option_descriptor_color_drop_out_aggressiveness();
- kds_s2000w_option_descriptors->descriptors[21] = _kds_s2000w_option_descriptor_color_auto_brightness_mode();
- kds_s2000w_option_descriptors->descriptors[22] = _kds_s2000w_option_descriptor_color_brightness();
- kds_s2000w_option_descriptors->descriptors[23] = _kds_s2000w_option_descriptor_color_contrast();
- kds_s2000w_option_descriptors->descriptors[24] = _kds_s2000w_option_descriptor_color_balance_mode();
- kds_s2000w_option_descriptors->descriptors[25] = _kds_s2000w_option_descriptor_color_balance_agressiveness();
- kds_s2000w_option_descriptors->descriptors[26] = _kds_s2000w_option_descriptor_color_balance_red();
- kds_s2000w_option_descriptors->descriptors[27] = _kds_s2000w_option_descriptor_color_balance_green();
- kds_s2000w_option_descriptors->descriptors[28] = _kds_s2000w_option_descriptor_color_balance_blue();
- kds_s2000w_option_descriptors->descriptors[29] = _kds_s2000w_option_descriptor_color_sharpen();
- kds_s2000w_option_descriptors->descriptors[30] = _kds_s2000w_option_descriptor_binarization_contrast();
- kds_s2000w_option_descriptors->descriptors[31] = _kds_s2000w_option_descriptor_config_reset();
- kds_s2000w_option_descriptors->descriptors[32] = _kds_s2000w_option_descriptor_image_processing_group();
- kds_s2000w_option_descriptors->descriptors[33] = _kds_s2000w_option_descriptor_skip_blank_pages();
- kds_s2000w_option_descriptors->descriptors[34] = _kds_s2000w_option_descriptor_skip_blank_page_content();
- kds_s2000w_option_descriptors->descriptors[35] = _kds_s2000w_option_descriptor_hole_fill();
- kds_s2000w_option_descriptors->descriptors[36] = _kds_s2000w_option_descriptor_post_scan_rotation();
- kds_s2000w_option_descriptors->descriptors[37] = _kds_s2000w_option_descriptor_edge_fill();
- kds_s2000w_option_descriptors->descriptors[38] = _kds_s2000w_option_descriptor_image_border();
- kds_s2000w_option_descriptors->descriptors[39] = _kds_s2000w_option_descriptor_jpeg_quality();
- kds_s2000w_option_descriptors->descriptors[40] = _kds_s2000w_option_descriptor_feeder_group();
- kds_s2000w_option_descriptors->descriptors[41] = _kds_s2000w_option_descriptor_autostart();
- kds_s2000w_option_descriptors->descriptors[42] = _kds_s2000w_option_descriptor_max_document_length();
- kds_s2000w_option_descriptors->descriptors[43] = _kds_s2000w_option_descriptor_transport_handling();
- kds_s2000w_option_descriptors->descriptors[44] = _kds_s2000w_option_descriptor_multifeed_sensitivity();
- kds_s2000w_option_descriptors->descriptors[45] = _kds_s2000w_option_descriptor_multifeed_response();
- kds_s2000w_option_descriptors->descriptors[46] = _kds_s2000w_option_descriptor_document_feeder_timeout();
- kds_s2000w_option_descriptors->descriptors[47] = _kds_s2000w_option_descriptor_document_feeder_timeout_response();
+ for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
+ kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
+ }
return _kds_s2000w_option_descriptor_validate();
}