switch(option) {
case 0:
int* int_value_ptr = (int*) value;
- int option_count = json_object_object_length(config);
- printf("option number count: %i\n", option_count);
- *int_value_ptr = 12;
+ *int_value_ptr = json_object_object_length(config) + 1;
break;
case 1:
value_object = json_object_object_get(config, "DPI");
_write_string_value(value_object, value);
break;
case 9:
- printf("DEBUG response: \n%s\n", resp->data);
value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
_write_string_value(value_object, value);
break;
case 10:
- printf("DEBUG response: \n%s\n", resp->data);
value_object = json_object_object_get(config, "ColorBalanceMode");
_write_string_value(value_object, value);
break;
value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
_write_int_value(value_object, value);
break;
+ case 12:
+ value_object = json_object_object_get(config, "ColorBalanceRed");
+ _write_int_value(value_object, value);
+ break;
+ case 13:
+ value_object = json_object_object_get(config, "ColorBalanceGreen");
+ _write_int_value(value_object, value);
+ break;
+ case 14:
+ value_object = json_object_object_get(config, "ColorBalanceBlue");
+ _write_int_value(value_object, value);
+ break;
+ case 15:
+ value_object = json_object_object_get(config, "ForegroundBoldnessMode");
+ _write_string_value(value_object, value);
+ break;
+ case 16:
+ value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 17:
+ value_object = json_object_object_get(config, "BackgroundSmoothingMode");
+ _write_string_value(value_object, value);
+ break;
+ case 18:
+ value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 19:
+ value_object = json_object_object_get(config, "BinarizationMode");
+ _write_string_value(value_object, value);
+ break;
+ case 20:
+ value_object = json_object_object_get(config, "BinarizationContrast");
+ _write_int_value(value_object, value);
+ break;
+ case 21:
+ value_object = json_object_object_get(config, "MaxDocumentLength");
+ _write_int_value(value_object, value);
+ break;
+ case 22:
+ value_object = json_object_object_get(config, "ScanSource");
+ _write_string_value(value_object, value);
+ break;
default:
break;
}
option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
break;
+ case 12:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "colorbalancered";
+ option_descriptor_array.option_descriptors[option]->title = "colorbalancered";
+ option_descriptor_array.option_descriptors[option]->desc = "colorbalancered";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 13:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "colorbalancegreen";
+ option_descriptor_array.option_descriptors[option]->title = "colorbalancegreen";
+ option_descriptor_array.option_descriptors[option]->desc = "colorbalancegreen";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 14:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "colorbalanceblue";
+ option_descriptor_array.option_descriptors[option]->title = "colorbalanceblue";
+ option_descriptor_array.option_descriptors[option]->desc = "colorbalanceblue";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 15:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "foregroundboldnessmode";
+ option_descriptor_array.option_descriptors[option]->title = "foregroundboldnessmode";
+ option_descriptor_array.option_descriptors[option]->desc = "foregroundboldnessmode";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 16:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "foregroundboldnessaggressiveness";
+ option_descriptor_array.option_descriptors[option]->title = "foregroundboldnessaggressiveness";
+ option_descriptor_array.option_descriptors[option]->desc = "foregroundboldnessaggressiveness";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 17:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "backgroundsmoothingmode";
+ option_descriptor_array.option_descriptors[option]->title = "backgroundsmoothingmode";
+ option_descriptor_array.option_descriptors[option]->desc = "backgroundsmoothingmode";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 18:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "backgroundsmoothingaggressiveness";
+ option_descriptor_array.option_descriptors[option]->title = "backgroundsmoothingaggressiveness";
+ option_descriptor_array.option_descriptors[option]->desc = "backgroundsmoothingaggressiveness";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 19:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "binarizationmode";
+ option_descriptor_array.option_descriptors[option]->title = "binarizationmode";
+ option_descriptor_array.option_descriptors[option]->desc = "binarizationmode";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 20:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "binarizationcontrast";
+ option_descriptor_array.option_descriptors[option]->title = "binarizationcontrast";
+ option_descriptor_array.option_descriptors[option]->desc = "binarizationcontrast";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 21:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "maxdocumentlength";
+ option_descriptor_array.option_descriptors[option]->title = "maxdocumentlength";
+ option_descriptor_array.option_descriptors[option]->desc = "maxdocumentlength";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
+ case 22:
+ free(option_descriptor_array.option_descriptors[option]);
+ option_descriptor_array.option_descriptors[option] = NULL;
+ option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor));
+ option_descriptor_array.option_descriptors[option]->name = "scansource";
+ option_descriptor_array.option_descriptors[option]->title = "scansource";
+ option_descriptor_array.option_descriptors[option]->desc = "ScanSoscansourceurce";
+ option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+ option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE;
+ option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL;
+ break;
default:
return NULL;
break;
case 5:
case 7:
case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 16:
+ case 18:
+ case 20:
+ case 21:
option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_INT;
option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_Int);
break;
case 8:
case 9:
case 10:
+ case 15:
+ case 17:
+ case 19:
+ case 22:
option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_STRING;
option_descriptor_array.option_descriptors[option]->unit = SANE_UNIT_NONE;
option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_String) * 50;