_kds_s2000w_handler_opts_write_value_to_json(value_object, SANE_TYPE_INT, &auto_start_value);
}
+void _kds_s2000w_handler_opts_set_option_to_default(handler* h)
+{
+ response* resp = kds_s2000w_client_response_init();
+ kds_s2000w_client_get_capabilities(resp);
+ json_object* capabilities = json_tokener_parse(resp->data);
+ json_object* default_values = json_object_object_get(capabilities, "Defaults");
+ json_object* default_config = json_object_new_object();
+ json_object_object_add(default_config, CONFIGURATION, default_values);
+
+ json_object_put(h->current_scanner_config);
+ h->current_scanner_config = NULL;
+
+ h->current_scanner_config = default_config;
+
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+}
+
+json_object* _kds_s2000w_handler_opts_reset(option_descriptor* descriptor, handler* h)
+{
+ if (strcmp(descriptor->config_name, RESET) != 0)
+ return json_object_object_get(h->current_scanner_config, CONFIGURATION);
+
+ _kds_s2000w_handler_opts_set_option_to_default(h);
+ json_object* config = json_object_object_get(h->current_scanner_config, CONFIGURATION);
+ _kds_s2000w_handler_opts_set_autostart_on(config);
+
+ return config;
+}
+
void _kds_s2000w_handler_opts_set_options(handler* h)
{
const char* json_string = json_object_to_json_string_ext(h->current_scanner_config, JSON_C_TO_STRING_PLAIN);
json_object_set_int(value_object, h->coord->height);
}
-void _kds_s2000w_handler_opts_set_option_to_default(handler* h)
-{
- response* resp = kds_s2000w_client_response_init();
- kds_s2000w_client_get_capabilities(resp);
- json_object* capabilities = json_tokener_parse(resp->data);
- json_object* default_values = json_object_object_get(capabilities, "Defaults");
- json_object* default_config = json_object_new_object();
- json_object_object_add(default_config, CONFIGURATION, default_values);
-
- json_object_put(h->current_scanner_config);
- h->current_scanner_config = NULL;
-
- h->current_scanner_config = default_config;
-
- kds_s2000w_client_response_free(resp);
- resp = NULL;
-}
-
void _kds_s2000w_handler_opts_set_enable_cropping_image(json_object* config)
{
json_object* cropping_mode = json_object_object_get(config, CROPPING_MODE);
_kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor->type, value);
_kds_s2000w_handler_opts_set_scan_source(descriptor, h, value);
-
- if (strcmp(descriptor->config_name, RESET) == 0) {
- _kds_s2000w_handler_opts_set_option_to_default(h);
- config = json_object_object_get(h->current_scanner_config, CONFIGURATION);
-
- _kds_s2000w_handler_opts_set_autostart_on(config);
- }
+ config = _kds_s2000w_handler_opts_reset(descriptor, h);
if (h->profile > PROFILE_MIN)
_kds_s2000w_handler_opts_set_depends_opts(h, descriptor->config_name, config);