#include "kds_s2000w_option_descriptors.h"
#include "kds_s2000w_debug.h"
-SANE_Option_Descriptor** descriptor_array = NULL;
+SANE_Option_Descriptor descriptor_array[MAX_OPTION_COUNT];
SANE_Word constraint_dpi[] = {2, 200, 300};
SANE_Word constraint_depth[] = {2, 1, 8};
SANE_String_Const* constraint_max_document_length = NULL;
SANE_String_Const* constraint_scan_source = NULL;
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_standard_group()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_standard_group");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = SANE_NAME_STANDARD;
- descriptor->title = SANE_TITLE_STANDARD;
- descriptor->desc = SANE_DESC_STANDARD;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->cap = SANE_CAP_SOFT_DETECT;
- descriptor->constraint_type = SANE_CONSTRAINT_NONE;
- descriptor->type = SANE_TYPE_GROUP;
- descriptor->size = 0;
+ descriptor.name = SANE_NAME_STANDARD;
+ descriptor.title = SANE_TITLE_STANDARD;
+ descriptor.desc = SANE_DESC_STANDARD;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.cap = SANE_CAP_SOFT_DETECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_NONE;
+ descriptor.type = SANE_TYPE_GROUP;
+ descriptor.size = 0;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_geometry_group()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_geometry_group()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scan_area_group");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = SANE_NAME_GEOMETRY;
- descriptor->title = SANE_TITLE_GEOMETRY;
- descriptor->desc = SANE_DESC_GEOMETRY;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->cap = SANE_CAP_SOFT_DETECT;
- descriptor->constraint_type = SANE_CONSTRAINT_NONE;
- descriptor->type = SANE_TYPE_GROUP;
- descriptor->size = 0;
+ descriptor.name = SANE_NAME_GEOMETRY;
+ descriptor.title = SANE_TITLE_GEOMETRY;
+ descriptor.desc = SANE_DESC_GEOMETRY;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.cap = SANE_CAP_SOFT_DETECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_NONE;
+ descriptor.type = SANE_TYPE_GROUP;
+ descriptor.size = 0;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_num_options()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_num_options()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_num_options");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = SANE_NAME_NUM_OPTIONS;
- descriptor->title = SANE_TITLE_NUM_OPTIONS;
- descriptor->desc = SANE_DESC_NUM_OPTIONS;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->cap = SANE_CAP_SOFT_DETECT;
- descriptor->constraint_type = SANE_CONSTRAINT_NONE;
- descriptor->type = SANE_TYPE_INT;
- descriptor->size = sizeof(SANE_Int);
+ descriptor.name = SANE_NAME_NUM_OPTIONS;
+ descriptor.title = SANE_TITLE_NUM_OPTIONS;
+ descriptor.desc = SANE_DESC_NUM_OPTIONS;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.cap = SANE_CAP_SOFT_DETECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_NONE;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_dpi()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_dpi()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_dpi");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = SANE_NAME_SCAN_RESOLUTION;
- descriptor->title = SANE_TITLE_SCAN_RESOLUTION;
- descriptor->desc = SANE_DESC_SCAN_RESOLUTION;
- descriptor->unit = SANE_UNIT_DPI;
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_WORD_LIST;
- descriptor->constraint.word_list = constraint_dpi;
- descriptor->type = SANE_TYPE_INT;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = SANE_NAME_SCAN_RESOLUTION;
+ descriptor.title = SANE_TITLE_SCAN_RESOLUTION;
+ descriptor.desc = SANE_DESC_SCAN_RESOLUTION;
+ descriptor.unit = SANE_UNIT_DPI;
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_WORD_LIST;
+ descriptor.constraint.word_list = constraint_dpi;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_scanside()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_scanside()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scanside");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "scanside";
- descriptor->title = "Duplex Mode";
- descriptor->desc = "Duplex Mode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "scanside";
+ descriptor.title = "Duplex Mode";
+ descriptor.desc = "Duplex Mode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_scanside = malloc(sizeof(char*) * 3);
constraint_scanside[0] = "Simplex";
constraint_scanside[1] = "Duplex";
constraint_scanside[2] = NULL;
- descriptor->constraint.string_list = constraint_scanside;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_scanside;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_mode()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_mode");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = SANE_NAME_SCAN_MODE;
- descriptor->title = SANE_TITLE_SCAN_MODE;
- descriptor->desc = SANE_DESC_SCAN_MODE;
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = SANE_NAME_SCAN_MODE;
+ descriptor.title = SANE_TITLE_SCAN_MODE;
+ descriptor.desc = SANE_DESC_SCAN_MODE;
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_colormode = malloc(sizeof(char*) * 4);
constraint_colormode[0] = "Color";
constraint_colormode[1] = "Gray";
constraint_colormode[2] = "BW";
constraint_colormode[3] = NULL;
- descriptor->constraint.string_list = constraint_colormode;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_colormode;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_skip_blank_pages()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_skip_blank_pages()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_skip_blank_pages");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "skip-blank-pages";
- descriptor->title = "Blank Image Deletion Mode";
- descriptor->desc = "Blank Image Deletion Mode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_NONE;
- descriptor->type = SANE_TYPE_BOOL;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Bool);
+ descriptor.name = "skip-blank-pages";
+ descriptor.title = "Blank Image Deletion Mode";
+ descriptor.desc = "Blank Image Deletion Mode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_NONE;
+ descriptor.type = SANE_TYPE_BOOL;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Bool);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_drop()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_drop");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "colordrop";
- descriptor->title = "colordrop";
- descriptor->desc = "colordrop";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "colordrop";
+ descriptor.title = "colordrop";
+ descriptor.desc = "colordrop";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_colordrop = malloc(sizeof(char*) * 9);
constraint_colordrop[0] = "None";
constraint_colordrop[1] = "Red";
constraint_colordrop[6] = "Predominant";
constraint_colordrop[7] = "Multiple";
constraint_colordrop[8] = NULL;
- descriptor->constraint.string_list = constraint_colordrop;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_colordrop;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_drop_out_aggressiveness()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop_out_aggressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_drop_out_aggressiveness");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "colordropoutaggressiveness";
- descriptor->title = "colordropoutaggressiveness";
- descriptor->desc = "colordropoutaggressiveness";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_color_drop_out_aggressiveness_range;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "colordropoutaggressiveness";
+ descriptor.title = "colordropoutaggressiveness";
+ descriptor.desc = "colordropoutaggressiveness";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_color_drop_out_aggressiveness_range;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_auto_brightness_mode()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_auto_brightness_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_auto_brightness_mode");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "colorautobrightnessmode";
- descriptor->title = "colorautobrightnessmode";
- descriptor->desc = "colorautobrightnessmode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "colorautobrightnessmode";
+ descriptor.title = "colorautobrightnessmode";
+ descriptor.desc = "colorautobrightnessmode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_color_auto_brightnessmode = malloc(sizeof(char*) * 3);
constraint_color_auto_brightnessmode[0] = "None";
constraint_color_auto_brightnessmode[1] = "Automatic";
constraint_color_auto_brightnessmode[2] = NULL;
- descriptor->constraint.string_list = constraint_color_auto_brightnessmode;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_color_auto_brightnessmode;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_balance_mode()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_mode");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "colorbalancemode";
- descriptor->title = "colorbalancemode";
- descriptor->desc = "colorbalancemode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "colorbalancemode";
+ descriptor.title = "colorbalancemode";
+ descriptor.desc = "colorbalancemode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_color_balance_mode = malloc(sizeof(char*) * 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;
- descriptor->constraint.string_list = constraint_color_balance_mode;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_color_balance_mode;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_balancea_agressiveness()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balancea_agressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balancea_agressiveness");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "colorbalanceaggressiveness";
- descriptor->title = "colorbalanceaggressiveness";
- descriptor->desc = "colorbalanceaggressiveness";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_color_balance_aggressiveness;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "colorbalanceaggressiveness";
+ descriptor.title = "colorbalanceaggressiveness";
+ descriptor.desc = "colorbalanceaggressiveness";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_color_balance_aggressiveness;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_balance_red()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_red()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_red");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "colorbalancered";
- descriptor->title = "colorbalancered";
- descriptor->desc = "colorbalancered";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_color_balance_red;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "colorbalancered";
+ descriptor.title = "colorbalancered";
+ descriptor.desc = "colorbalancered";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_color_balance_red;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_balance_green()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_green()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_green");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "colorbalancegreen";
- descriptor->title = "colorbalancegreen";
- descriptor->desc = "colorbalancegreen";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_color_balance_green;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "colorbalancegreen";
+ descriptor.title = "colorbalancegreen";
+ descriptor.desc = "colorbalancegreen";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_color_balance_green;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_color_balance_blue()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_blue()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_blue");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "color-balance-blue";
- descriptor->title = "colorbalanceblue";
- descriptor->desc = "colorbalanceblue";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_color_balance_blue;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "color-balance-blue";
+ descriptor.title = "colorbalanceblue";
+ descriptor.desc = "colorbalanceblue";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_color_balance_blue;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_foreground_boldness_mode()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_mode");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "foreground-boldness-mode";
- descriptor->title = "Foreground Boldness Mode";
- descriptor->desc = "Foreground Boldness Mode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "foreground-boldness-mode";
+ descriptor.title = "Foreground Boldness Mode";
+ descriptor.desc = "Foreground Boldness Mode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_foreground_boldness_mode = malloc(sizeof(char*) * 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;
- descriptor->constraint.string_list = constraint_foreground_boldness_mode;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_foreground_boldness_mode;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_aggressiveness");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "foreground-boldness-aggressiveness";
- descriptor->title = "Foreground Boldness Mode";
- descriptor->desc = "Foreground Boldness Mode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_foreground_boldness_aggressiveness;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "foreground-boldness-aggressiveness";
+ descriptor.title = "Foreground Boldness Mode";
+ descriptor.desc = "Foreground Boldness Mode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_foreground_boldness_aggressiveness;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_background_smoothing_mode()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_mode");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "background-smoothing-mode";
- descriptor->title = "Background Smoothing Mode";
- descriptor->desc = "Background Smoothing Mode";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "background-smoothing-mode";
+ descriptor.title = "Background Smoothing Mode";
+ descriptor.desc = "Background Smoothing Mode";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_background_smoothing_mode = malloc(sizeof(char*) * 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;
- descriptor->constraint.string_list = constraint_background_smoothing_mode;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_background_smoothing_mode;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_background_smoothing_aggressiveness()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_aggressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_aggressiveness");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = "background-smoothing-aggressiveness";
- descriptor->title = "Background Smoothing Aggressivenes";
- descriptor->desc = "Background Smoothing Aggressivenes";
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_background_smoothing_aggressivness;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = "background-smoothing-aggressiveness";
+ descriptor.title = "Background Smoothing Aggressivenes";
+ descriptor.desc = "Background Smoothing Aggressivenes";
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_background_smoothing_aggressivness;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_binarization_contrast()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_binarization_contrast()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_binarization_contrast");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = SANE_NAME_CONTRAST;
- descriptor->title = SANE_TITLE_CONTRAST;
- descriptor->desc = SANE_DESC_CONTRAST;
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_RANGE;
- descriptor->constraint.range = &constraint_binarization_contrast;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = SANE_NAME_CONTRAST;
+ descriptor.title = SANE_TITLE_CONTRAST;
+ descriptor.desc = SANE_DESC_CONTRAST;
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_RANGE;
+ descriptor.constraint.range = &constraint_binarization_contrast;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_max_document_length()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_max_document_length()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_max_document_length");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "maxdocumentlength";
- descriptor->title = "maxdocumentlength";
- descriptor->desc = "maxdocumentlength";
- descriptor->cap = SANE_CAP_SOFT_DETECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = "maxdocumentlength";
+ descriptor.title = "maxdocumentlength";
+ descriptor.desc = "maxdocumentlength";
+ descriptor.cap = SANE_CAP_SOFT_DETECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_max_document_length = malloc(sizeof(char*) * 2);
constraint_max_document_length[0] = "#NoPrimaryControl#";
constraint_max_document_length[1] = NULL;
- descriptor->constraint.string_list = constraint_max_document_length;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ descriptor.constraint.string_list = constraint_max_document_length;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_scan_source()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_scan_source()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scan_source");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = SANE_NAME_SCAN_SOURCE;
- descriptor->title = SANE_TITLE_SCAN_SOURCE;
- descriptor->desc = SANE_DESC_SCAN_SOURCE;
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_STRING_LIST;
+ descriptor.name = SANE_NAME_SCAN_SOURCE;
+ descriptor.title = SANE_TITLE_SCAN_SOURCE;
+ descriptor.desc = SANE_DESC_SCAN_SOURCE;
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_STRING_LIST;
constraint_scan_source = malloc(sizeof(char*) * 4);
constraint_scan_source[0] = "DocumentFeeder";
constraint_scan_source[1] = "Automatic";
constraint_scan_source[2] = "Flatbed";
constraint_scan_source[3] = NULL;
- descriptor->constraint.string_list = constraint_scan_source;
- descriptor->type = SANE_TYPE_STRING;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_String) * 50;
+ descriptor.constraint.string_list = constraint_scan_source;
+ descriptor.type = SANE_TYPE_STRING;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_String) * 50;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_config_reset()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_config_reset()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_config_reset");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+ SANE_Option_Descriptor descriptor;
- descriptor->name = "config-reset";
- descriptor->title = "Konfiguration zuruecksetzen";
- descriptor->desc = "Laedt die default Konfiguration des Scanners";
- descriptor->cap = SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_NONE;
- descriptor->type = SANE_TYPE_BUTTON;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = 0;
+ descriptor.name = "config-reset";
+ descriptor.title = "Konfiguration zuruecksetzen";
+ descriptor.desc = "Laedt die default Konfiguration des Scanners";
+ descriptor.cap = SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_NONE;
+ descriptor.type = SANE_TYPE_BUTTON;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = 0;
return descriptor;
}
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_depth()
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_depth()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_depth");
- SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
-
- descriptor->name = SANE_NAME_BIT_DEPTH;
- descriptor->title = SANE_TITLE_BIT_DEPTH;
- descriptor->desc = SANE_DESC_BIT_DEPTH;
- descriptor->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
- descriptor->constraint_type = SANE_CONSTRAINT_WORD_LIST;
- descriptor->constraint.word_list = constraint_depth;
- descriptor->type = SANE_TYPE_INT;
- descriptor->unit = SANE_UNIT_NONE;
- descriptor->size = sizeof(SANE_Int);
+ SANE_Option_Descriptor descriptor;
+
+ descriptor.name = SANE_NAME_BIT_DEPTH;
+ descriptor.title = SANE_TITLE_BIT_DEPTH;
+ descriptor.desc = SANE_DESC_BIT_DEPTH;
+ descriptor.cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
+ descriptor.constraint_type = SANE_CONSTRAINT_WORD_LIST;
+ descriptor.constraint.word_list = constraint_depth;
+ descriptor.type = SANE_TYPE_INT;
+ descriptor.unit = SANE_UNIT_NONE;
+ descriptor.size = sizeof(SANE_Int);
return descriptor;
}
void kds_s2000w_option_descriptor_init_option_descriptors()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_init_option_descriptors");
- descriptor_array = malloc(sizeof(SANE_Option_Descriptor*) * MAX_OPTION_COUNT);
descriptor_array[0] = _kds_s2000w_option_descriptor_num_options();
descriptor_array[1] = _kds_s2000w_option_descriptor_standard_group();
constraint_max_document_length = NULL;
free(constraint_scan_source);
constraint_scan_source = NULL;
-
- for (int i = 0; i < MAX_OPTION_COUNT; i++) {
- free(descriptor_array[i]);
- descriptor_array[i] = NULL;
- }
-
- free(descriptor_array);
- descriptor_array = NULL;
}
SANE_Option_Descriptor* kds_s2000w_option_get_descriptor(int option)
{
debug_printf(ALL, "kds_s2000w_option_get_descriptor");
- return descriptor_array[option];
+ return &descriptor_array[option];
}
\ No newline at end of file