SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_standard_group");
- 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;
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_STANDARD,
+ SANE_TITLE_STANDARD,
+ SANE_DESC_STANDARD,
+ SANE_TYPE_GROUP,
+ SANE_UNIT_NONE,
+ 0,
+ SANE_CAP_SOFT_DETECT,
+ SANE_CONSTRAINT_NONE
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_geometry_group()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scan_area_group");
- 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;
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_GEOMETRY,
+ SANE_TITLE_GEOMETRY,
+ SANE_DESC_GEOMETRY,
+ SANE_TYPE_GROUP,
+ SANE_UNIT_NONE,
+ 0,
+ SANE_CAP_SOFT_DETECT,
+ SANE_CONSTRAINT_NONE
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_num_options()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_num_options");
- 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);
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_NUM_OPTIONS,
+ SANE_TITLE_NUM_OPTIONS,
+ SANE_DESC_NUM_OPTIONS,
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT,
+ SANE_CONSTRAINT_NONE
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_dpi()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_dpi");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_SCAN_RESOLUTION,
+ SANE_TITLE_SCAN_RESOLUTION,
+ SANE_DESC_SCAN_RESOLUTION,
+ SANE_TYPE_INT,
+ SANE_UNIT_DPI,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_WORD_LIST,
+ {.word_list = constraint_dpi}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_scanside()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scanside");
- 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;
- constraint_scanside = malloc(sizeof(char*) * 3);
+
+ constraint_scanside = malloc(sizeof(SANE_String_Const*) * 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;
+
+ SANE_Option_Descriptor descriptor = {
+ "scanside",
+ "Duplex Mode",
+ "Duplex Mode",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 3,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_scanside}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_mode");
- 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;
- constraint_colormode = malloc(sizeof(char*) * 4);
+
+ constraint_colormode = malloc(sizeof(SANE_String_Const*) * 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;
+
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_SCAN_MODE,
+ SANE_TITLE_SCAN_MODE,
+ SANE_DESC_SCAN_MODE,
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 4,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_colormode}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_skip_blank_pages()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_skip_blank_pages");
- 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);
+ SANE_Option_Descriptor descriptor = {
+ "skip-blank-pages",
+ "Blank Image Deletion Mode",
+ "Blank Image Deletion Mode",
+ SANE_TYPE_BOOL,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Bool),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_NONE
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_drop");
- 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;
- constraint_colordrop = malloc(sizeof(char*) * 9);
+
+ constraint_colordrop = malloc(sizeof(SANE_String_Const*) * 9);
constraint_colordrop[0] = "None";
constraint_colordrop[1] = "Red";
constraint_colordrop[2] = "Green";
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;
+
+ SANE_Option_Descriptor descriptor = {
+ "colordrop",
+ "colordrop",
+ "colordrop",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 9,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_colordrop}
+ };
return descriptor;
}
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;
-
- 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 = {
+ "colordropoutaggressiveness",
+ "colordropoutaggressiveness",
+ "colordropoutaggressiveness",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_color_drop_out_aggressiveness_range}
+ };
return descriptor;
}
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;
-
- 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 = malloc(sizeof(SANE_String_Const*) * 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;
+
+ SANE_Option_Descriptor descriptor = {
+ "colorautobrightnessmode",
+ "colorautobrightnessmode",
+ "colorautobrightnessmode",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 3,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_color_auto_brightnessmode}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_mode");
- 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;
- constraint_color_balance_mode = malloc(sizeof(char*) * 5);
+
+ 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;
- descriptor.constraint.string_list = constraint_color_balance_mode;
- descriptor.type = SANE_TYPE_STRING;
- descriptor.unit = SANE_UNIT_NONE;
- descriptor.size = sizeof(SANE_String) * 50;
+
+ SANE_Option_Descriptor descriptor = {
+ "colorbalancemode",
+ "colorbalancemode",
+ "colorbalancemode",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 5,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_color_balance_mode}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balancea_agressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balancea_agressiveness");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "colorbalanceaggressiveness",
+ "colorbalanceaggressiveness",
+ "colorbalanceaggressiveness",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_color_balance_aggressiveness}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_red()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_red");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "colorbalancered",
+ "colorbalancered",
+ "colorbalancered",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_color_balance_red}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_green()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_green");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "colorbalancegreen",
+ "colorbalancegreen",
+ "colorbalancegreen",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_color_balance_green}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_blue()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_blue");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "colorbalanceblue",
+ "colorbalanceblue",
+ "colorbalanceblue",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_color_balance_blue}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_mode");
- 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;
- constraint_foreground_boldness_mode = malloc(sizeof(char*) * 4);
+
+ 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;
- descriptor.constraint.string_list = constraint_foreground_boldness_mode;
- descriptor.type = SANE_TYPE_STRING;
- descriptor.unit = SANE_UNIT_NONE;
- descriptor.size = sizeof(SANE_String) * 50;
+
+ SANE_Option_Descriptor descriptor = {
+ "foreground-boldness-mode",
+ "Foreground Boldness Mode",
+ "Foreground Boldness Mode",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 4,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_foreground_boldness_mode}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_aggressiveness");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "foreground-boldness-aggressiveness",
+ "Foreground Boldness Aggressiveness",
+ "Foreground Boldness Aggressiveness",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_foreground_boldness_aggressiveness}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_mode()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_mode");
- 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;
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;
+
+ SANE_Option_Descriptor descriptor = {
+ "background-smoothing-mode",
+ "Background Smoothing Mode",
+ "Background Smoothing Mode",
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 4,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_background_smoothing_mode}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_aggressiveness()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_aggressiveness");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ "background-smoothing-aggressiveness",
+ "Background Smoothing Aggressivenes",
+ "Background Smoothing Aggressivenes",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_background_smoothing_aggressivness}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_binarization_contrast()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_binarization_contrast");
- 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);
+
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_CONTRAST,
+ SANE_TITLE_CONTRAST,
+ SANE_DESC_CONTRAST,
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_RANGE,
+ {.range = &constraint_binarization_contrast}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_max_document_length()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_max_document_length");
- 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;
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);
+
+ SANE_Option_Descriptor descriptor = {
+ "maxdocumentlength",
+ "maxdocumentlength",
+ "maxdocumentlength",
+ SANE_TYPE_INT,
+ SANE_UNIT_NONE,
+ sizeof(SANE_Int),
+ SANE_CAP_SOFT_DETECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_max_document_length}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_scan_source()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_scan_source");
- 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;
- constraint_scan_source = malloc(sizeof(char*) * 4);
+
+ 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;
- descriptor.constraint.string_list = constraint_scan_source;
- descriptor.type = SANE_TYPE_STRING;
- descriptor.unit = SANE_UNIT_NONE;
- descriptor.size = sizeof(SANE_String) * 50;
+
+ SANE_Option_Descriptor descriptor = {
+ SANE_NAME_SCAN_SOURCE,
+ SANE_TITLE_SCAN_SOURCE,
+ SANE_DESC_SCAN_SOURCE,
+ SANE_TYPE_STRING,
+ SANE_UNIT_NONE,
+ sizeof(SANE_String_Const*) * 4,
+ SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_STRING_LIST,
+ {.string_list = constraint_scan_source}
+ };
return descriptor;
}
SANE_Option_Descriptor _kds_s2000w_option_descriptor_config_reset()
{
debug_printf(ALL, "kds_s2000w_option_descriptor_config_reset");
- 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;
+
+ SANE_Option_Descriptor descriptor = {
+ "config-reset",
+ "Konfiguration zuruecksetzen",
+ "Laedt die default Konfiguration des Scanners",
+ SANE_TYPE_BUTTON,
+ SANE_UNIT_NONE,
+ 0,
+ SANE_CAP_SOFT_SELECT,
+ SANE_CONSTRAINT_NONE
+ };
return descriptor;
}
${CMOCKA_LIBRARY}
sane-kds_s2000w_net)
+ADD_EXECUTABLE("kds_s2000w_option_descriptor_tests_run"
+ "kds_s2000w_option_descriptor_tests_run.c"
+ "kds_s2000w_option_descriptor_tests.c"
+ "kds_s2000w_client_mock.c")
+ADD_DEPENDENCIES("kds_s2000w_option_descriptor_tests_run" sane-kds_s2000w_net)
+TARGET_LINK_LIBRARIES("kds_s2000w_option_descriptor_tests_run"
+ ${CMOCKA_LIBRARY}
+ sane-kds_s2000w_net)
+
INCLUDE(CTest)
ENABLE_TESTING()
COMMAND "kds_s2000w_read_config_tests_run")
ADD_TEST(NAME "kds_s2000w_converter_tests_run"
COMMAND "kds_s2000w_image_converter_tests_run")
+ADD_TEST(NAME "kds_s2000w_option_descriptor_tests_run"
+ COMMAND "kds_s2000w_option_descriptor_tests_run")
ADD_CUSTOM_TARGET("runningtests"
ALL "ctest" "--verbose"
--- /dev/null
+#include <stdlib.h>
+#include <sane/saneopts.h>
+#include "kds_s2000w_option_descriptor_tests.h"
+#include "../src/kds_s2000w_option_descriptors.h"
+#include "../src/kds_s2000w_image_converter.h"
+#include "../src/kds_s2000w_config.h"
+
+void __wrap_load_config(program_config* config, const char* config_stream)
+{
+ config->scanner_url = malloc(sizeof(char) * 28);
+ config->username = malloc(sizeof(char) * 4);
+
+ config->scanner_url = "https://scanner.example.com\0";
+ config->username = "Max\0";
+}
+
+void __wrap_kds_s2000w_convert_tiff_to_pnm(blobdata* in, blobdata* out)
+{
+ return;
+}
+
+int setup(void** state)
+{
+ kds_s2000w_option_descriptor_init_option_descriptors();
+
+ return 0;
+}
+
+int teardown(void **state)
+{
+ kds_s2000w_option_descriptor_free_option_descriptors();
+ return 0;
+}
+
+void kds_s2000w_option_get_descriptor_zero()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(0);
+
+ assert_string_equal(SANE_NAME_NUM_OPTIONS, option->name);
+ assert_string_equal(SANE_TITLE_NUM_OPTIONS, option->title);
+ assert_string_equal(SANE_DESC_NUM_OPTIONS, option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
+}
+
+void kds_s2000w_option_get_descriptor_one()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(1);
+
+ assert_string_equal(SANE_NAME_STANDARD, option->name);
+ assert_string_equal(SANE_TITLE_STANDARD, option->title);
+ assert_string_equal(SANE_DESC_STANDARD, option->desc);
+ assert_int_equal(SANE_TYPE_GROUP, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(0, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
+}
+
+void kds_s2000w_option_get_descriptor_two()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(2);
+
+ assert_string_equal(SANE_NAME_SCAN_SOURCE, option->name);
+ assert_string_equal(SANE_TITLE_SCAN_SOURCE, option->title);
+ assert_string_equal(SANE_DESC_SCAN_SOURCE, option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 4, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("DocumentFeeder", option->constraint.string_list[0]);
+ assert_string_equal("Automatic", option->constraint.string_list[1]);
+ assert_string_equal("Flatbed", option->constraint.string_list[2]);
+ assert_null(option->constraint.string_list[3]);
+}
+
+void kds_s2000w_option_get_descriptor_three()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(3);
+
+ assert_string_equal(SANE_NAME_SCAN_MODE, option->name);
+ assert_string_equal(SANE_TITLE_SCAN_MODE, option->title);
+ assert_string_equal(SANE_DESC_SCAN_MODE, option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 4, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("Color", option->constraint.string_list[0]);
+ assert_string_equal("Gray", option->constraint.string_list[1]);
+ assert_string_equal("BW", option->constraint.string_list[2]);
+ assert_null(option->constraint.string_list[3]);
+}
+
+void kds_s2000w_option_get_descriptor_four()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(4);
+
+ assert_string_equal(SANE_NAME_SCAN_RESOLUTION, option->name);
+ assert_string_equal(SANE_TITLE_SCAN_RESOLUTION, option->title);
+ assert_string_equal(SANE_DESC_SCAN_RESOLUTION, option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_DPI, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_WORD_LIST, option->constraint_type);
+ assert_int_equal(2, option->constraint.word_list[0]);
+ assert_int_equal(200, option->constraint.word_list[1]);
+ assert_int_equal(300, option->constraint.word_list[2]);
+}
+
+void kds_s2000w_option_get_descriptor_five()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(5);
+
+ assert_string_equal("scanside", option->name);
+ assert_string_equal("Duplex Mode", option->title);
+ assert_string_equal("Duplex Mode", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 3, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("Simplex", option->constraint.string_list[0]);
+ assert_string_equal("Duplex", option->constraint.string_list[1]);
+ assert_null(option->constraint.string_list[2]);
+}
+
+void kds_s2000w_option_get_descriptor_six()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(6);
+
+ assert_string_equal(SANE_NAME_GEOMETRY, option->name);
+ assert_string_equal(SANE_TITLE_GEOMETRY, option->title);
+ assert_string_equal(SANE_DESC_GEOMETRY, option->desc);
+ assert_int_equal(SANE_TYPE_GROUP, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(0, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
+}
+
+void kds_s2000w_option_get_descriptor_seven()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(7);
+
+ assert_string_equal("skip-blank-pages", option->name);
+ assert_string_equal("Blank Image Deletion Mode", option->title);
+ assert_string_equal("Blank Image Deletion Mode", option->desc);
+ assert_int_equal(SANE_TYPE_BOOL, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Bool), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
+}
+
+void kds_s2000w_option_get_descriptor_eight()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(8);
+
+ assert_string_equal("colordrop", option->name);
+ assert_string_equal("colordrop", option->title);
+ assert_string_equal("colordrop", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 9, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("None", option->constraint.string_list[0]);
+ assert_string_equal("Red", option->constraint.string_list[1]);
+ assert_string_equal("Green", option->constraint.string_list[2]);
+ assert_string_equal("Blue", option->constraint.string_list[3]);
+ assert_string_equal("Orange", option->constraint.string_list[4]);
+ assert_string_equal("OrangeAndRed", option->constraint.string_list[5]);
+ assert_string_equal("Predominant", option->constraint.string_list[6]);
+ assert_string_equal("Multiple", option->constraint.string_list[7]);
+ assert_null(option->constraint.string_list[8]);
+}
+
+void kds_s2000w_option_get_descriptor_nine()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(9);
+
+ assert_string_equal("colordropoutaggressiveness", option->name);
+ assert_string_equal("colordropoutaggressiveness", option->title);
+ assert_string_equal("colordropoutaggressiveness", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-10, option->constraint.range->min);
+ assert_int_equal(10, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_ten()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(10);
+
+ assert_string_equal("colorautobrightnessmode", option->name);
+ assert_string_equal("colorautobrightnessmode", option->title);
+ assert_string_equal("colorautobrightnessmode", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 3, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("None", option->constraint.string_list[0]);
+ assert_string_equal("Automatic", option->constraint.string_list[1]);
+ assert_null(option->constraint.string_list[2]);
+}
+
+void kds_s2000w_option_get_descriptor_eleven()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(11);
+
+ assert_string_equal("colorbalancemode", option->name);
+ assert_string_equal("colorbalancemode", option->title);
+ assert_string_equal("colorbalancemode", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 5, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("None", option->constraint.string_list[0]);
+ assert_string_equal("Manual", option->constraint.string_list[1]);
+ assert_string_equal("Automatic", option->constraint.string_list[2]);
+ assert_string_equal("AutomaticAdvanced", option->constraint.string_list[3]);
+ assert_null(option->constraint.string_list[4]);
+}
+
+void kds_s2000w_option_get_descriptor_twelve()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(12);
+
+ assert_string_equal("colorbalanceaggressiveness", option->name);
+ assert_string_equal("colorbalanceaggressiveness", option->title);
+ assert_string_equal("colorbalanceaggressiveness", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-2, option->constraint.range->min);
+ assert_int_equal(2, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_thirdteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(13);
+
+ assert_string_equal("colorbalancered", option->name);
+ assert_string_equal("colorbalancered", option->title);
+ assert_string_equal("colorbalancered", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-50, option->constraint.range->min);
+ assert_int_equal(50, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_fourteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(14);
+
+ assert_string_equal("colorbalancegreen", option->name);
+ assert_string_equal("colorbalancegreen", option->title);
+ assert_string_equal("colorbalancegreen", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-50, option->constraint.range->min);
+ assert_int_equal(50, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_fifteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(15);
+
+ assert_string_equal("colorbalanceblue", option->name);
+ assert_string_equal("colorbalanceblue", option->title);
+ assert_string_equal("colorbalanceblue", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-50, option->constraint.range->min);
+ assert_int_equal(50, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_sixteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(16);
+
+ assert_string_equal("foreground-boldness-mode", option->name);
+ assert_string_equal("Foreground Boldness Mode", option->title);
+ assert_string_equal("Foreground Boldness Mode", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 4, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("None", option->constraint.string_list[0]);
+ assert_string_equal("AutomaticAdvanced", option->constraint.string_list[1]);
+ assert_string_equal("Automatic", option->constraint.string_list[2]);
+ assert_null(option->constraint.string_list[3]);
+}
+
+void kds_s2000w_option_get_descriptor_seventeen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(17);
+
+ assert_string_equal("foreground-boldness-aggressiveness", option->name);
+ assert_string_equal("Foreground Boldness Aggressiveness", option->title);
+ assert_string_equal("Foreground Boldness Aggressiveness", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-10, option->constraint.range->min);
+ assert_int_equal(10, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_eightteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(18);
+
+ assert_string_equal("background-smoothing-mode", option->name);
+ assert_string_equal("Background Smoothing Mode", option->title);
+ assert_string_equal("Background Smoothing Mode", option->desc);
+ assert_int_equal(SANE_TYPE_STRING, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_String_Const*) * 4, option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("None", option->constraint.string_list[0]);
+ assert_string_equal("AutomaticAdvanced", option->constraint.string_list[1]);
+ assert_string_equal("Automatic", option->constraint.string_list[2]);
+ assert_null(option->constraint.string_list[3]);
+}
+
+void kds_s2000w_option_get_descriptor_nineteen()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(19);
+
+ assert_string_equal("background-smoothing-aggressiveness", option->name);
+ assert_string_equal("Background Smoothing Aggressivenes", option->title);
+ assert_string_equal("Background Smoothing Aggressivenes", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-10, option->constraint.range->min);
+ assert_int_equal(10, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_twenty()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(20);
+
+ assert_string_equal(SANE_NAME_CONTRAST, option->name);
+ assert_string_equal(SANE_TITLE_CONTRAST, option->title);
+ assert_string_equal(SANE_DESC_CONTRAST, option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type);
+ assert_int_equal(-50, option->constraint.range->min);
+ assert_int_equal(50, option->constraint.range->max);
+ assert_int_equal(1, option->constraint.range->quant);
+}
+
+void kds_s2000w_option_get_descriptor_twentyone()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(21);
+
+ assert_string_equal("maxdocumentlength", option->name);
+ assert_string_equal("maxdocumentlength", option->title);
+ assert_string_equal("maxdocumentlength", option->desc);
+ assert_int_equal(SANE_TYPE_INT, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(sizeof(SANE_Int), option->size);
+ assert_int_equal(SANE_CAP_SOFT_DETECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+ assert_string_equal("#NoPrimaryControl#", option->constraint.string_list[0]);
+ assert_null(option->constraint.string_list[1]);
+}
+
+void kds_s2000w_option_get_descriptor_twentytwo()
+{
+ SANE_Option_Descriptor* option = kds_s2000w_option_get_descriptor(22);
+
+ assert_string_equal("config-reset", option->name);
+ assert_string_equal("Konfiguration zuruecksetzen", option->title);
+ assert_string_equal("Laedt die default Konfiguration des Scanners", option->desc);
+ assert_int_equal(SANE_TYPE_BUTTON, option->type);
+ assert_int_equal(SANE_UNIT_NONE, option->unit);
+ assert_int_equal(0, option->size);
+ assert_int_equal(SANE_CAP_SOFT_SELECT, option->cap);
+ assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
+}
\ No newline at end of file
--- /dev/null
+#ifndef KDS_S2000W_OPTION_DESCRIPTOR_TESTS_H
+#define KDS_S2000W_OPTION_DESCRIPTOR_TESTS_H
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+int setup(void** state);
+int teardown(void** state);
+void kds_s2000w_option_get_descriptor_zero();
+void kds_s2000w_option_get_descriptor_one();
+void kds_s2000w_option_get_descriptor_two();
+void kds_s2000w_option_get_descriptor_three();
+void kds_s2000w_option_get_descriptor_four();
+void kds_s2000w_option_get_descriptor_five();
+void kds_s2000w_option_get_descriptor_six();
+void kds_s2000w_option_get_descriptor_seven();
+void kds_s2000w_option_get_descriptor_eight();
+void kds_s2000w_option_get_descriptor_nine();
+void kds_s2000w_option_get_descriptor_ten();
+void kds_s2000w_option_get_descriptor_eleven();
+void kds_s2000w_option_get_descriptor_twelve();
+void kds_s2000w_option_get_descriptor_thirdteen();
+void kds_s2000w_option_get_descriptor_fourteen();
+void kds_s2000w_option_get_descriptor_fifteen();
+void kds_s2000w_option_get_descriptor_sixteen();
+void kds_s2000w_option_get_descriptor_seventeen();
+void kds_s2000w_option_get_descriptor_eightteen();
+void kds_s2000w_option_get_descriptor_nineteen();
+void kds_s2000w_option_get_descriptor_twenty();
+void kds_s2000w_option_get_descriptor_twentyone();
+void kds_s2000w_option_get_descriptor_twentytwo();
+#endif
\ No newline at end of file
--- /dev/null
+#include "kds_s2000w_option_descriptor_tests.h"
+
+int main()
+{
+ const struct CMUnitTest option_descriptor_tests[] = {
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_zero, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_one, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_two, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_three, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_four, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_five, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_six, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_seven, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_eight, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_nine, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_ten, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_eleven, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twelve, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fifteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_sixteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_seventeen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_eightteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_nineteen, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twenty, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twentyone, setup, teardown),
+ cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twentytwo, setup, teardown)
+ };
+
+ return cmocka_run_group_tests(option_descriptor_tests, NULL, NULL);
+}
\ No newline at end of file