SANE_Range constraint_color_balance_green = {-50, 50, 1};
SANE_Range constraint_color_balance_blue = {-50, 50, 1};
SANE_Range constraint_foreground_boldness_aggressiveness = {-10, 10, 1};
-SANE_String_Const* constraint_scanside = NULL;
-SANE_String_Const* constraint_colormode = NULL;
-SANE_String_Const* constraint_colordrop = NULL;
-SANE_String_Const* constraint_color_auto_brightnessmode = NULL;
-SANE_String_Const* constraint_color_balance_mode = NULL;
-SANE_String_Const* constraint_foreground_boldness_mode = NULL;
-SANE_String_Const* constraint_background_smoothing_mode = NULL;
-SANE_String_Const* constraint_binarization_mode = NULL;
-SANE_String_Const* constraint_max_document_length = NULL;
-SANE_String_Const* constraint_scan_source = NULL;
-SANE_String_Const* constraint_color_sharpen = NULL;
-SANE_String_Const* constraint_multifeed_sensitivity = NULL;
-SANE_String_Const* constraint_multifeed_response = NULL;
-SANE_String_Const* constraint_post_scan_rotation = NULL;
-SANE_String_Const* constraint_edge_fill = NULL;
-SANE_String_Const* constraint_image_border = NULL;
-SANE_String_Const* constraint_transport_handling = NULL;
-SANE_String_Const* constraint_jpeg_quality = NULL;
-SANE_String_Const* constraint_document_feeder_timeout_response = NULL;
-SANE_String_Const* constraint_cropping_mode = NULL;
-SANE_String_Const* constraint_cropping_image = NULL;
SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
{
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_scanside");
- constraint_scanside = malloc(sizeof(SANE_String_Const*) * 3);
- constraint_scanside[0] = "Simplex";
- constraint_scanside[1] = "Duplex";
- constraint_scanside[2] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 3);
+ constraint[0] = "Simplex";
+ constraint[1] = "Duplex";
+ constraint[2] = NULL;
SANE_Option_Descriptor descriptor = {
"scanside",
sizeof(SANE_String_Const*) * 3,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_scanside}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_mode");
- constraint_colormode = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_colormode[0] = "Color";
- constraint_colormode[1] = "Gray";
- constraint_colormode[2] = "BW";
- constraint_colormode[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "Color";
+ constraint[1] = "Gray";
+ constraint[2] = "BW";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
SANE_NAME_SCAN_MODE,
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_colormode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_drop");
- constraint_colordrop = malloc(sizeof(SANE_String_Const*) * 9);
- constraint_colordrop[0] = "None";
- constraint_colordrop[1] = "Red";
- constraint_colordrop[2] = "Green";
- constraint_colordrop[3] = "Blue";
- constraint_colordrop[4] = "Orange";
- constraint_colordrop[5] = "OrangeAndRed";
- constraint_colordrop[6] = "Predominant";
- constraint_colordrop[7] = "Multiple";
- constraint_colordrop[8] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 9);
+ constraint[0] = "None";
+ constraint[1] = "Red";
+ constraint[2] = "Green";
+ constraint[3] = "Blue";
+ constraint[4] = "Orange";
+ constraint[5] = "OrangeAndRed";
+ constraint[6] = "Predominant";
+ constraint[7] = "Multiple";
+ constraint[8] = NULL;
SANE_Option_Descriptor descriptor = {
"colordrop",
sizeof(SANE_String_Const*) * 9,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_colordrop}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_auto_brightness_mode");
- constraint_color_auto_brightnessmode = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_color_auto_brightnessmode[0] = "None";
- constraint_color_auto_brightnessmode[1] = "Manual";
- constraint_color_auto_brightnessmode[2] = "Automatic";
- constraint_color_auto_brightnessmode[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "None";
+ constraint[1] = "Manual";
+ constraint[2] = "Automatic";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"colorautobrightnessmode",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_color_auto_brightnessmode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_mode");
- constraint_color_balance_mode = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_color_balance_mode[0] = "None";
- constraint_color_balance_mode[1] = "Manual";
- constraint_color_balance_mode[2] = "Automatic";
- constraint_color_balance_mode[3] = "AutomaticAdvanced";
- constraint_color_balance_mode[4] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "None";
+ constraint[1] = "Manual";
+ constraint[2] = "Automatic";
+ constraint[3] = "AutomaticAdvanced";
+ constraint[4] = NULL;
SANE_Option_Descriptor descriptor = {
"colorbalancemode",
sizeof(SANE_String_Const*) * 5,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_color_balance_mode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_mode");
- constraint_foreground_boldness_mode = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_foreground_boldness_mode[0] = "None";
- constraint_foreground_boldness_mode[1] = "AutomaticAdvanced";
- constraint_foreground_boldness_mode[2] = "Automatic";
- constraint_foreground_boldness_mode[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "None";
+ constraint[1] = "AutomaticAdvanced";
+ constraint[2] = "Automatic";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"foreground-boldness-mode",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_foreground_boldness_mode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_mode");
- constraint_background_smoothing_mode = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_background_smoothing_mode[0] = "None";
- constraint_background_smoothing_mode[1] = "AutomaticAdvanced";
- constraint_background_smoothing_mode[2] = "Automatic";
- constraint_background_smoothing_mode[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "None";
+ constraint[1] = "AutomaticAdvanced";
+ constraint[2] = "Automatic";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"background-smoothing-mode",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_background_smoothing_mode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_scan_source");
- constraint_scan_source = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_scan_source[0] = "DocumentFeeder";
- constraint_scan_source[1] = "Automatic";
- constraint_scan_source[2] = "Flatbed";
- constraint_scan_source[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "DocumentFeeder";
+ constraint[1] = "Automatic";
+ constraint[2] = "Flatbed";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
SANE_NAME_SCAN_SOURCE,
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_scan_source}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_sharpen");
- constraint_color_sharpen = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_color_sharpen[0] = "None";
- constraint_color_sharpen[1] = "Normal";
- constraint_color_sharpen[2] = "High";
- constraint_color_sharpen[3] = "Exaggerated";
- constraint_color_sharpen[4] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "None";
+ constraint[1] = "Normal";
+ constraint[2] = "High";
+ constraint[3] = "Exaggerated";
+ constraint[4] = NULL;
SANE_Option_Descriptor descriptor = {
"color-sharpen",
sizeof(SANE_String_Const*) * 5,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_color_sharpen}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_multifeed_sensitivity");
- constraint_multifeed_sensitivity = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_multifeed_sensitivity[0] = "None";
- constraint_multifeed_sensitivity[1] = "Low";
- constraint_multifeed_sensitivity[2] = "Medium";
- constraint_multifeed_sensitivity[3] = "High";
- constraint_multifeed_sensitivity[4] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "None";
+ constraint[1] = "Low";
+ constraint[2] = "Medium";
+ constraint[3] = "High";
+ constraint[4] = NULL;
SANE_Option_Descriptor descriptor = {
"multifeed-sensitivity",
sizeof(SANE_String_Const*) * 5,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_multifeed_sensitivity}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_multifeed_response");
- constraint_multifeed_response = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_multifeed_response[0] = "Stop";
- constraint_multifeed_response[1] = "StopAndGenerateImage";
- constraint_multifeed_response[2] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "Stop";
+ constraint[1] = "StopAndGenerateImage";
+ constraint[2] = NULL;
SANE_Option_Descriptor descriptor = {
"multifeed-response",
sizeof(SANE_String_Const*) * 3,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_multifeed_response}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_post_scan_rotation");
- constraint_post_scan_rotation = malloc(sizeof(SANE_String_Const*) * 6);
- constraint_post_scan_rotation[0] = "None";
- constraint_post_scan_rotation[1] = "Automatic";
- constraint_post_scan_rotation[2] = "Automatic90";
- constraint_post_scan_rotation[3] = "Automatic180";
- constraint_post_scan_rotation[4] = "Automatic270";
- constraint_post_scan_rotation[5] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 6);
+ constraint[0] = "None";
+ constraint[1] = "Automatic";
+ constraint[2] = "Automatic90";
+ constraint[3] = "Automatic180";
+ constraint[4] = "Automatic270";
+ constraint[5] = NULL;
SANE_Option_Descriptor descriptor = {
"post-scan-rotation",
sizeof(SANE_String_Const*) * 6,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_post_scan_rotation}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_edge_fill");
- constraint_edge_fill = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_edge_fill[0] = "None";
- constraint_edge_fill[1] = "Automatic";
- constraint_edge_fill[2] = "AutomaticIncludeTears";
- constraint_edge_fill[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "None";
+ constraint[1] = "Automatic";
+ constraint[2] = "AutomaticIncludeTears";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"edge-fill",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_edge_fill}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_image_border");
- constraint_image_border = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_image_border[0] = "None";
- constraint_image_border[1] = "Add";
- constraint_image_border[2] = "Remove";
- constraint_image_border[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "None";
+ constraint[1] = "Add";
+ constraint[2] = "Remove";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"image-border",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_image_border}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_transport_handling");
- constraint_transport_handling = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_transport_handling[0] = "Normal";
- constraint_transport_handling[1] = "ImprovedStacking";
- constraint_transport_handling[2] = "BestStacking";
- constraint_transport_handling[3] = "Special";
- constraint_transport_handling[4] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "Normal";
+ constraint[1] = "ImprovedStacking";
+ constraint[2] = "BestStacking";
+ constraint[3] = "Special";
+ constraint[4] = NULL;
SANE_Option_Descriptor descriptor = {
"transport-handling",
sizeof(SANE_String_Const*) * 5,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_transport_handling}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_jpeg_quality");
- constraint_jpeg_quality = malloc(sizeof(SANE_String_Const*) * 6);
- constraint_jpeg_quality[0] = "Draft";
- constraint_jpeg_quality[1] = "Good";
- constraint_jpeg_quality[2] = "Better";
- constraint_jpeg_quality[3] = "Best";
- constraint_jpeg_quality[4] = "Superior";
- constraint_jpeg_quality[5] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 6);
+ constraint[0] = "Draft";
+ constraint[1] = "Good";
+ constraint[2] = "Better";
+ constraint[3] = "Best";
+ constraint[4] = "Superior";
+ constraint[5] = NULL;
SANE_Option_Descriptor descriptor = {
"jpeg-quality",
sizeof(SANE_String_Const*) * 6,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_jpeg_quality}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_document_feeder_timeout_response");
- constraint_document_feeder_timeout_response = malloc(sizeof(SANE_String_Const*) * 4);
- constraint_document_feeder_timeout_response[0] = "Stop";
- constraint_document_feeder_timeout_response[1] = "Pause";
- constraint_document_feeder_timeout_response[2] = "PauseAndWait";
- constraint_document_feeder_timeout_response[3] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 4);
+ constraint[0] = "Stop";
+ constraint[1] = "Pause";
+ constraint[2] = "PauseAndWait";
+ constraint[3] = NULL;
SANE_Option_Descriptor descriptor = {
"document-feeder-timeout-response",
sizeof(SANE_String_Const*) * 4,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_document_feeder_timeout_response}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_cropping_mode");
- constraint_cropping_mode = malloc(sizeof(SANE_String_Const*) * 5);
- constraint_cropping_mode[0] = "AutomaticStraighten";
- constraint_cropping_mode[1] = "Automatic";
- constraint_cropping_mode[2] = "Photograph";
- constraint_cropping_mode[3] = "Manual";
- constraint_cropping_mode[4] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 5);
+ constraint[0] = "AutomaticStraighten";
+ constraint[1] = "Automatic";
+ constraint[2] = "Photograph";
+ constraint[3] = "Manual";
+ constraint[4] = NULL;
SANE_Option_Descriptor descriptor = {
"cropping-mode",
sizeof(SANE_String_Const*) * 5,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_cropping_mode}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_cropping_image");
- constraint_cropping_image = malloc(sizeof(SANE_String_Const*) * 3);
- constraint_cropping_image[0] = "EntireDocument";
- constraint_cropping_image[1] = "PartialDocument";
- constraint_cropping_image[2] = NULL;
+ char** constraint = malloc(sizeof(SANE_String_Const*) * 3);
+ constraint[0] = "EntireDocument";
+ constraint[1] = "PartialDocument";
+ constraint[2] = NULL;
SANE_Option_Descriptor descriptor = {
"cropping-image",
sizeof(SANE_String_Const*) * 3,
SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
SANE_CONSTRAINT_STRING_LIST,
- {.string_list = constraint_cropping_image}
+ {.string_list = (SANE_String_Const*) constraint}
};
return descriptor;
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_free_option_descriptors");
- free(constraint_scanside);
- constraint_scanside = NULL;
- free(constraint_colormode);
- constraint_colormode = NULL;
- free(constraint_colordrop);
- constraint_colordrop = NULL;
- free(constraint_color_auto_brightnessmode);
- constraint_color_auto_brightnessmode = NULL;
- free(constraint_color_balance_mode);
- constraint_color_balance_mode = NULL;
- free(constraint_foreground_boldness_mode);
- constraint_foreground_boldness_mode = NULL;
- free(constraint_background_smoothing_mode);
- constraint_background_smoothing_mode = NULL;
- free(constraint_binarization_mode);
- constraint_binarization_mode = NULL;
- free(constraint_max_document_length);
- constraint_max_document_length = NULL;
- free(constraint_scan_source);
- constraint_scan_source = NULL;
- free(constraint_color_sharpen);
- constraint_color_sharpen = NULL;
- free(constraint_multifeed_sensitivity);
- constraint_multifeed_sensitivity = NULL;
- free(constraint_multifeed_response);
- constraint_multifeed_response = NULL;
- free(constraint_post_scan_rotation);
- constraint_post_scan_rotation = NULL;
- free(constraint_edge_fill);
- constraint_edge_fill = NULL;
- free(constraint_image_border);
- constraint_image_border = NULL;
- free(constraint_transport_handling);
- constraint_transport_handling = NULL;
- free(constraint_jpeg_quality);
- constraint_jpeg_quality = NULL;
- free(constraint_document_feeder_timeout_response);
- constraint_document_feeder_timeout_response = NULL;
- free(constraint_cropping_mode);
- constraint_cropping_mode = NULL;
- free(constraint_cropping_image);
- constraint_cropping_image = NULL;
+ SANE_Option_Descriptor* descriptor = NULL;
+
+ for (int i = 0; i < MAX_OPTION_COUNT; i++) {
+ descriptor = kds_s2000w_option_descriptors_get(i);
+ if (descriptor->constraint_type == SANE_CONSTRAINT_STRING_LIST) {
+ free((void*) descriptor->constraint.string_list);
+ descriptor->constraint.string_list = NULL;
+ }
+ }
+
free(descriptor_array);
descriptor_array = NULL;
}