return;
}
+ printf("DEBUG response: \n%s\n", resp->data);
json_object* value_object = NULL;
+ int value_length = 0;
+ const char* string_value = NULL;
+ char* char_value = NULL;
+ int* int_value = NULL;
switch(option) {
case 0:
- int* ignore_value = (int*) value;
- *ignore_value = 3;
+ int_value = (int*) value;
+ *int_value = 4;
break;
case 1:
value_object = json_object_object_get(config, "DPI");
break;
case 2:
value_object = json_object_object_get(config, "ScanSide");
- const char* string_value = json_object_get_string(value_object);
- char* char_value = (char*) value;
- int value_length = strlen(char_value);
+ string_value = json_object_get_string(value_object);
+ char_value = (char*) value;
+ value_length = strlen(char_value);
+ memcpy(char_value, string_value, sizeof(char) * value_length);
+ break;
+ case 3:
+ value_object = json_object_object_get(config, "ColorMode");
+ string_value = json_object_get_string(value_object);
+ char_value = (char*) value;
+ value_length = strlen(char_value);
memcpy(char_value, string_value, sizeof(char) * value_length);
break;
default:
option_descriptor_array.option_descriptors[option]->name = "";
option_descriptor_array.option_descriptors[option]->title = "option number count";
option_descriptor_array.option_descriptors[option]->desc = "available number of options";
- option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_INT;
option_descriptor_array.option_descriptors[option]->unit = SANE_UNIT_NONE;
- option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_Int);
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;
option_descriptor_array.option_descriptors[option]->name = "resolution";
option_descriptor_array.option_descriptors[option]->title = "resolution";
option_descriptor_array.option_descriptors[option]->desc = "resolution";
- option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_INT;
option_descriptor_array.option_descriptors[option]->unit = SANE_UNIT_DPI;
- option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_Int);
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;
option_descriptor_array.option_descriptors[option]->name = "scanside";
option_descriptor_array.option_descriptors[option]->title = "scanside";
option_descriptor_array.option_descriptors[option]->desc = "scanside";
- 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;
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 3:
+ 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 = "colormode";
+ option_descriptor_array.option_descriptors[option]->title = "colormode";
+ option_descriptor_array.option_descriptors[option]->desc = "colormode";
+ 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;
+ }
+
+
+ switch (option) {
+ case 0:
+ case 1:
+ option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_INT;
+ option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_Int);
+ break;
+ case 2:
+ case 3:
+ 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;
+ break;
default:
return NULL;
break;