int* int_value_ptr = (int*) value;
*int_value_ptr = json_object_object_length(config) + 1;
break;
- case 1:
+ case 2:
value_object = json_object_object_get(config, "DPI");
_write_int_value(value_object, value);
break;
- case 2:
+ case 3:
value_object = json_object_object_get(config, "ScanSide");
_write_string_value(value_object, value);
break;
- case 3:
+ case 4:
value_object = json_object_object_get(config, "ColorMode");
_write_string_value(value_object, value);
break;
- case 4:
+ case 5:
value_object = json_object_object_get(config, "SkipBlankPages");
_write_int_value(value_object, value);
break;
- case 5:
+ case 6:
value_object = json_object_object_get(config, "AutoStart");
_write_int_value(value_object, value);
break;
- case 6:
+ case 7:
value_object = json_object_object_get(config, "ColorDropOut");
_write_string_value(value_object, value);
break;
- case 7:
+ case 8:
value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
_write_int_value(value_object, value);
break;
- case 8:
+ case 9:
value_object = json_object_object_get(config, "OutputType");
_write_string_value(value_object, value);
break;
- case 9:
+ case 10:
value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
_write_string_value(value_object, value);
break;
- case 10:
+ case 11:
value_object = json_object_object_get(config, "ColorBalanceMode");
_write_string_value(value_object, value);
break;
- case 11:
+ case 12:
value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
_write_int_value(value_object, value);
break;
- case 12:
+ case 13:
value_object = json_object_object_get(config, "ColorBalanceRed");
_write_int_value(value_object, value);
break;
- case 13:
+ case 14:
value_object = json_object_object_get(config, "ColorBalanceGreen");
_write_int_value(value_object, value);
break;
- case 14:
+ case 15:
value_object = json_object_object_get(config, "ColorBalanceBlue");
_write_int_value(value_object, value);
break;
- case 15:
+ case 16:
value_object = json_object_object_get(config, "ForegroundBoldnessMode");
_write_string_value(value_object, value);
break;
- case 16:
+ case 17:
value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
_write_int_value(value_object, value);
break;
- case 17:
+ case 18:
value_object = json_object_object_get(config, "BackgroundSmoothingMode");
_write_string_value(value_object, value);
break;
- case 18:
+ case 19:
value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
_write_int_value(value_object, value);
break;
- case 19:
+ case 20:
value_object = json_object_object_get(config, "BinarizationMode");
_write_string_value(value_object, value);
break;
- case 20:
+ case 21:
value_object = json_object_object_get(config, "BinarizationContrast");
_write_int_value(value_object, value);
break;
- case 21:
+ case 22:
value_object = json_object_object_get(config, "MaxDocumentLength");
_write_int_value(value_object, value);
break;
- case 22:
+ case 23:
value_object = json_object_object_get(config, "ScanSource");
_write_string_value(value_object, value);
break;
#include <sane/saneopts.h>
#include "kds_s2000w_handler.h"
-#define MAX_OPTION_COUNT 23
+#define MAX_OPTION_COUNT 24
SANE_Option_Descriptor* option_descriptors = NULL;
option_descriptors[option].constraint.string_list = NULL;
break;
case 1:
+ option_descriptors[option].name = SANE_NAME_STANDARD;
+ option_descriptors[option].title = SANE_TITLE_STANDARD;
+ option_descriptors[option].desc = SANE_DESC_STANDARD;
+ option_descriptors[option].unit = SANE_UNIT_NONE;
+ option_descriptors[option].cap = SANE_CAP_SOFT_DETECT;
+ option_descriptors[option].constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptors[option].constraint.string_list = NULL;
+ break;
+ case 2:
option_descriptors[option].name = SANE_NAME_SCAN_RESOLUTION;
option_descriptors[option].title = SANE_TITLE_SCAN_RESOLUTION;
option_descriptors[option].desc = SANE_DESC_SCAN_RESOLUTION;
constraint_dpi[2] = 300;
option_descriptors[option].constraint.word_list = constraint_dpi;
break;
- case 2:
+ case 3:
option_descriptors[option].name = "scanside";
option_descriptors[option].title = "Duplex Mode";
option_descriptors[option].desc = "Duplex Mode";
constraint_scanside[2] = NULL;
option_descriptors[option].constraint.string_list = constraint_scanside;
break;
- case 3:
+ case 4:
option_descriptors[option].name = SANE_NAME_SCAN_MODE;
option_descriptors[option].title = SANE_TITLE_SCAN_MODE;
option_descriptors[option].desc = SANE_DESC_SCAN_MODE;
constraint_colormode[4] = NULL;
option_descriptors[option].constraint.string_list = constraint_colormode;
break;
- case 4:
+ case 5:
option_descriptors[option].name = "skip-blank-pages";
option_descriptors[option].title = "Blank Image Deletion Mode";
option_descriptors[option].desc = "Blank Image Deletion Mode";
option_descriptors[option].constraint_type = SANE_CONSTRAINT_NONE;
option_descriptors[option].constraint.string_list = NULL;
break;
- case 5:
+ case 6:
option_descriptors[option].name = "autostart";
option_descriptors[option].title = "autostart";
option_descriptors[option].desc = "autostart";
option_descriptors[option].constraint_type = SANE_CONSTRAINT_NONE;
option_descriptors[option].constraint.string_list = NULL;
break;
- case 6:
+ case 7:
option_descriptors[option].name = "colordrop";
option_descriptors[option].title = "colordrop";
option_descriptors[option].desc = "colordrop";
constraint_colordrop[8] = NULL;
option_descriptors[option].constraint.string_list = constraint_colordrop;
break;
- case 7:
+ case 8:
option_descriptors[option].name = "colordropoutaggressiveness";
option_descriptors[option].title = "colordropoutaggressiveness";
option_descriptors[option].desc = "colordropoutaggressiveness";
constraint_color_drop_out_aggressiveness_range->quant = 1;
option_descriptors[option].constraint.range = constraint_color_drop_out_aggressiveness_range;
break;
- case 8:
+ case 9:
option_descriptors[option].name = "outputtype";
option_descriptors[option].title = "outputtype";
option_descriptors[option].desc = "outputtype";
constraint_output_type[2] = NULL;
option_descriptors[option].constraint.string_list = constraint_output_type;
break;
- case 9:
+ case 10:
option_descriptors[option].name = "colorautobrightnessmode";
option_descriptors[option].title = "colorautobrightnessmode";
option_descriptors[option].desc = "colorautobrightnessmode";
constraint_color_auto_brightnessmode[2] = NULL;
option_descriptors[option].constraint.string_list = constraint_color_auto_brightnessmode;
break;
- case 10:
+ case 11:
option_descriptors[option].name = "colorbalancemode";
option_descriptors[option].title = "colorbalancemode";
option_descriptors[option].desc = "colorbalancemode";
constraint_color_balance_mode[4] = NULL;
option_descriptors[option].constraint.string_list = constraint_color_balance_mode;
break;
- case 11:
+ case 12:
option_descriptors[option].name = "colorbalanceaggressiveness";
option_descriptors[option].title = "colorbalanceaggressiveness";
option_descriptors[option].desc = "colorbalanceaggressiveness";
constraint_color_balance_aggressiveness->quant = 1;
option_descriptors[option].constraint.range = constraint_color_balance_aggressiveness;
break;
- case 12:
+ case 13:
option_descriptors[option].name = "colorbalancered";
option_descriptors[option].title = "colorbalancered";
option_descriptors[option].desc = "colorbalancered";
constraint_color_balance_red->quant = 1;
option_descriptors[option].constraint.range = constraint_color_balance_red;
break;
- case 13:
+ case 14:
option_descriptors[option].name = "colorbalancegreen";
option_descriptors[option].title = "colorbalancegreen";
option_descriptors[option].desc = "colorbalancegreen";
constraint_color_balance_green->quant = 1;
option_descriptors[option].constraint.range = constraint_color_balance_green;
break;
- case 14:
+ case 15:
option_descriptors[option].name = "color-balance-blue";
option_descriptors[option].title = "colorbalanceblue";
option_descriptors[option].desc = "colorbalanceblue";
constraint_color_balance_blue->quant = 1;
option_descriptors[option].constraint.range = constraint_color_balance_blue;
break;
- case 15:
+ case 16:
option_descriptors[option].name = "foreground-boldness-mode";
option_descriptors[option].title = "Foreground Boldness Mode";
option_descriptors[option].desc = "Foreground Boldness Mode";
constraint_foreground_boldness_mode[3] = NULL;
option_descriptors[option].constraint.string_list = constraint_foreground_boldness_mode;
break;
- case 16:
+ case 17:
option_descriptors[option].name = "foreground-boldness-aggressiveness";
option_descriptors[option].title = "Foreground Boldness Mode";
option_descriptors[option].desc = "Foreground Boldness Mode";
constraint_foreground_boldness_aggressiveness->quant = 1;
option_descriptors[option].constraint.range = constraint_foreground_boldness_aggressiveness;
break;
- case 17:
+ case 18:
option_descriptors[option].name = "background-smoothing-mode";
option_descriptors[option].title = "Background Smoothing Mode";
option_descriptors[option].desc = "Background Smoothing Mode";
constraint_background_smoothing_mode[3] = NULL;
option_descriptors[option].constraint.string_list = constraint_background_smoothing_mode;
break;
- case 18:
+ case 19:
option_descriptors[option].name = "background-smoothing-aggressiveness";
option_descriptors[option].title = "Background Smoothing Aggressivenes";
option_descriptors[option].desc = "Background Smoothing Aggressivenes";
constraint_background_smoothing_aggressivness->quant = 1;
option_descriptors[option].constraint.range = constraint_background_smoothing_aggressivness;
break;
- case 19:
+ case 20:
option_descriptors[option].name = "binarization-mode";
option_descriptors[option].title = "binarizationmode";
option_descriptors[option].desc = "binarizationmode";
constraint_binarization_mode[1] = NULL;
option_descriptors[option].constraint.string_list = constraint_binarization_mode;
break;
- case 20:
+ case 21:
option_descriptors[option].name = SANE_NAME_CONTRAST;
option_descriptors[option].title = SANE_TITLE_CONTRAST;
option_descriptors[option].desc = SANE_DESC_CONTRAST;
constraint_binarization_contrast->quant = 1;
option_descriptors[option].constraint.range = constraint_binarization_contrast;
break;
- case 21:
+ case 22:
option_descriptors[option].name = "maxdocumentlength";
option_descriptors[option].title = "maxdocumentlength";
option_descriptors[option].desc = "maxdocumentlength";
constraint_max_document_length[1] = NULL;
option_descriptors[option].constraint.string_list = constraint_max_document_length;
break;
- case 22:
+ case 23:
option_descriptors[option].name = SANE_NAME_SCAN_SOURCE;
option_descriptors[option].title = SANE_TITLE_SCAN_SOURCE;
option_descriptors[option].desc = SANE_DESC_SCAN_SOURCE;
switch (option) {
case 0:
- case 1:
- case 7:
- case 11:
+ case 2:
+ case 8:
case 12:
case 13:
case 14:
- case 16:
- case 18:
- case 20:
+ case 15:
+ case 17:
+ case 19:
case 21:
+ case 22:
option_descriptors[option].type = SANE_TYPE_INT;
option_descriptors[option].size = sizeof(SANE_Int);
break;
- case 2:
+ case 1:
+ option_descriptors[option].type = SANE_TYPE_GROUP;
+ option_descriptors[option].size = 0;
+ break;
case 3:
- case 6:
- case 8:
+ case 4:
+ case 7:
case 9:
case 10:
- case 15:
- case 17:
- case 19:
- case 22:
+ case 11:
+ case 16:
+ case 18:
+ case 20:
+ case 23:
option_descriptors[option].type = SANE_TYPE_STRING;
option_descriptors[option].unit = SANE_UNIT_NONE;
option_descriptors[option].size = sizeof(SANE_String) * 50;
break;
- case 4:
case 5:
+ case 6:
option_descriptors[option].type = SANE_TYPE_BOOL;
option_descriptors[option].size = sizeof(SANE_Bool);
break;