"src/kds_s2000w_net.c"
"src/kds_s2000w_option_descriptors.c"
"src/kds_s2000w_handler.c"
+ "src/kds_s2000w_handler_opts.c"
"src/kds_s2000w_client.c")
set_target_properties("sane-kds_s2000w_net" PROPERTIES VERSION 1)
#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
#include <string.h>
#include <unistd.h>
-#include <curl/curl.h>
#include <json-c/json.h>
#include "kds_s2000w_handler.h"
+#include "kds_s2000w_handler_opts.h"
#include "kds_s2000w_client.h"
response* resp = NULL;
scan_status current_scan_status;
-void _write_string_value(json_object* value_object, void* value)
-{
- const char* string_value = json_object_get_string(value_object);
- char* char_value = (char*) value;
- int value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
-}
-
-void _write_int_value(json_object* value_object, void* value)
-{
- int* int_value_ptr = (int*) value;
- *int_value_ptr = json_object_get_int(value_object);
-}
-
-void _write_string_value_to_json(json_object* value_object, void* value)
-{
- char* char_value = (char*) value;
- json_object_set_string(value_object, char_value);
-}
-
-void _write_int_value_to_json(json_object* value_object, void* value)
-{
- int* int_value_ptr = (int*) value;
- json_object_set_int(value_object, *int_value_ptr);
-}
-
-void _load_options()
-{
- json_object_put(resp_config);
- resp_config = NULL;
-
- resp = kds_s2000w_client_response_init();
- int result = kds_s2000w_client_get_option(state->sessionid, resp);
- resp_config = json_tokener_parse(resp->data);
- config = json_object_object_get(resp_config, "Configuration");
-
- if (result != 0 || resp->code == 404) {
- kds_s2000w_client_response_free(resp);
- resp = NULL;
- json_object_put(resp_config);
- resp_config = NULL;
- return;
- }
-
- kds_s2000w_client_response_free(resp);
- resp = NULL;
-}
-
-int _change_output_type_to_images()
-{
- json_object* value_object = json_object_object_get(config, "ColorMode");
- const char* color_mode_value = json_object_get_string(value_object);
- if (strcmp(color_mode_value, "Color_BW") != 0) {
- value_object = NULL;
- value_object = json_object_object_get(config, "OutputType");
- const char* reset_value_ptr = "Images";
- _write_string_value_to_json(value_object, (void*) reset_value_ptr);
- value_object = NULL;
- return 1;
- }
-
- return 0;
-}
-
-int _color_change_to_color_bw()
-{
- json_object* value_object = json_object_object_get(config, "ColorMode");
- const char* color_mode_value = json_object_get_string(value_object);
- if (strcmp(color_mode_value, "Color_BW") != 0) {
- const char* reset_value_ptr = "Color_BW";
- _write_string_value_to_json(value_object, (void*) reset_value_ptr);
- value_object = NULL;
- return 1;
- }
-
- return 0;
-}
-
-int _change_skip_blank_pages_off()
-{
- json_object* value_object = json_object_object_get(config, "OutputType");
- const char* output_type = json_object_get_string(value_object);
- value_object = NULL;
-
- if (strcmp(output_type, "SinglePageColorPDFPlus2TIFs") == 0) {
- value_object = json_object_object_get(config, "SkipBlankPages");
- json_object_set_int(value_object, 0);
- value_object = NULL;
- return 1;
- }
-
- return 0;
-}
-
current_state* kds_s2000w_handler_open()
{
state = malloc(sizeof(current_state));
state->sessionid = 0;
state->state = NOTCONNECTED;
- state->state = NOTCONNECTED;
- CURL *curl = curl_easy_init();
- if(!curl)
- return state;
-
resp = kds_s2000w_client_response_init();
int result = kds_s2000w_client_open_session("hhaalo", resp);
return state;
}
-void kds_s2000w_handler_get_option(int option, void* value)
-{
- config = json_object_object_get(resp_config, "Configuration");
- json_object* value_object = NULL;
- switch(option) {
- case 0:
- _load_options();
- int* int_value_ptr = (int*) value;
- *int_value_ptr = json_object_object_length(config) + 3;
- break;
- case 2:
- value_object = json_object_object_get(config, "DPI");
- _write_int_value(value_object, value);
- break;
- case 3:
- value_object = json_object_object_get(config, "ScanSide");
- _write_string_value(value_object, value);
- break;
- case 4:
- value_object = json_object_object_get(config, "ColorMode");
- _write_string_value(value_object, value);
- break;
- case 5:
- value_object = json_object_object_get(config, "SkipBlankPages");
- _write_int_value(value_object, value);
- break;
- case 6:
- value_object = json_object_object_get(config, "AutoStart");
- _write_int_value(value_object, value);
- break;
- case 7:
- value_object = json_object_object_get(config, "ColorDropOut");
- _write_string_value(value_object, value);
- break;
- case 8:
- value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
- _write_int_value(value_object, value);
- break;
- case 9:
- value_object = json_object_object_get(config, "OutputType");
- _write_string_value(value_object, value);
- break;
- case 10:
- value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
- _write_string_value(value_object, value);
- break;
- case 11:
- value_object = json_object_object_get(config, "ColorBalanceMode");
- _write_string_value(value_object, value);
- break;
- case 12:
- value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
- _write_int_value(value_object, value);
- break;
- case 13:
- value_object = json_object_object_get(config, "ColorBalanceRed");
- _write_int_value(value_object, value);
- break;
- case 14:
- value_object = json_object_object_get(config, "ColorBalanceGreen");
- _write_int_value(value_object, value);
- break;
- case 15:
- value_object = json_object_object_get(config, "ColorBalanceBlue");
- _write_int_value(value_object, value);
- break;
- case 16:
- value_object = json_object_object_get(config, "ForegroundBoldnessMode");
- _write_string_value(value_object, value);
- break;
- case 17:
- value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
- _write_int_value(value_object, value);
- break;
- case 18:
- value_object = json_object_object_get(config, "BackgroundSmoothingMode");
- _write_string_value(value_object, value);
- break;
- case 19:
- value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
- _write_int_value(value_object, value);
- break;
- case 20:
- value_object = json_object_object_get(config, "BinarizationMode");
- _write_string_value(value_object, value);
- break;
- case 21:
- value_object = json_object_object_get(config, "BinarizationContrast");
- _write_int_value(value_object, value);
- break;
- case 22:
- value_object = json_object_object_get(config, "MaxDocumentLength");
- _write_int_value(value_object, value);
- break;
- case 23:
- value_object = json_object_object_get(config, "ScanSource");
- _write_string_value(value_object, value);
- break;
- default:
- break;
- }
-}
-
-void kds_s2000w_handler_set_option(int option, void* value, int* info)
-{
- config = json_object_object_get(resp_config, "Configuration");
- json_object* value_object = NULL;
- switch(option) {
- case 2:
- value_object = json_object_object_get(config, "DPI");
- _write_int_value_to_json(value_object, value);
- break;
- case 3:
- value_object = json_object_object_get(config, "ScanSide");
- _write_string_value_to_json(value_object, value);
- value_object = NULL;
- break;
- case 4:
- value_object = json_object_object_get(config, "ColorMode");
- _write_string_value_to_json(value_object, value);
- value_object = NULL;
-
- if (_change_output_type_to_images())
- *info = RELOAD_OPTIONS;
-
- break;
- case 5:
- value_object = json_object_object_get(config, "SkipBlankPages");
- _write_int_value_to_json(value_object, value);
- value_object = NULL;
-
- if (_change_skip_blank_pages_off())
- *info = RELOAD_OPTIONS;
-
- break;
- case 6:
- value_object = json_object_object_get(config, "AutoStart");
- _write_int_value_to_json(value_object, value);
- break;
- case 7:
- value_object = json_object_object_get(config, "ColorDropOut");
- _write_string_value_to_json(value_object, value);
- break;
- case 8:
- value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
- _write_int_value_to_json(value_object, value);
- break;
- case 9:
- value_object = json_object_object_get(config, "OutputType");
- _write_string_value_to_json(value_object, value);
- value_object = NULL;
-
- if (_color_change_to_color_bw())
- *info = RELOAD_OPTIONS;
-
- if (_change_skip_blank_pages_off())
- *info = RELOAD_OPTIONS;
-
- break;
- case 10:
- value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
- _write_string_value_to_json(value_object, value);
- break;
- case 11:
- value_object = json_object_object_get(config, "ColorBalanceMode");
- _write_string_value_to_json(value_object, value);
- break;
- case 12:
- value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
- _write_int_value_to_json(value_object, value);
- break;
- case 13:
- value_object = json_object_object_get(config, "ColorBalanceRed");
- _write_int_value_to_json(value_object, value);
- break;
- case 14:
- value_object = json_object_object_get(config, "ColorBalanceGreen");
- _write_int_value_to_json(value_object, value);
- break;
- case 15:
- value_object = json_object_object_get(config, "ColorBalanceBlue");
- _write_int_value_to_json(value_object, value);
- break;
- case 16:
- value_object = json_object_object_get(config, "ForegroundBoldnessMode");
- _write_string_value_to_json(value_object, value);
- break;
- case 17:
- value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
- _write_int_value_to_json(value_object, value);
- break;
- case 18:
- value_object = json_object_object_get(config, "BackgroundSmoothingMode");
- _write_string_value_to_json(value_object, value);
- break;
- case 19:
- value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
- _write_int_value_to_json(value_object, value);
- break;
- case 20:
- value_object = json_object_object_get(config, "BinarizationMode");
- _write_string_value_to_json(value_object, value);
- break;
- case 21:
- value_object = json_object_object_get(config, "BinarizationContrast");
- _write_int_value_to_json(value_object, value);
- break;
- case 22:
- value_object = json_object_object_get(config, "MaxDocumentLength");
- _write_int_value_to_json(value_object, value);
- break;
- case 23:
- value_object = json_object_object_get(config, "ScanSource");
- _write_string_value_to_json(value_object, value);
- break;
- case 24:
- 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);
- const char* json_string = json_object_to_json_string_ext(default_config, JSON_C_TO_STRING_PLAIN);
- kds_s2000w_client_response_free(resp);
- resp = NULL;
-
- resp = kds_s2000w_client_response_init();
- resp->size = sizeof(char) * strlen(json_string);
- resp->code = 0;
- resp->data = realloc(resp->data, resp->size);
- resp->data = memcpy(resp->data, json_string, resp->size);
- kds_s2000w_client_set_option(state->sessionid, resp);
- kds_s2000w_client_response_free(resp);
- resp = NULL;
- json_object_put(capabilities);
- capabilities = NULL;
-
- *info = RELOAD_OPTIONS;
- _load_options();
- return;
- break;
- default:
- break;
- }
-
- const char* json_string = json_object_to_json_string_ext(resp_config, JSON_C_TO_STRING_PLAIN);
- resp = kds_s2000w_client_response_init();
- resp->size = sizeof(char) * strlen(json_string);
- resp->code = 0;
- resp->data = realloc(resp->data, resp->size);
- resp->data = memcpy(resp->data, json_string, resp->size);
- kds_s2000w_client_set_option(state->sessionid, resp);
- kds_s2000w_client_response_free(resp);
- resp = NULL;
-}
-
-void kds_s2000w_handler_set_option_auto(int option)
-{
- return;
-}
void kds_s2000w_handler_start_scan()
{
--- /dev/null
+#include <string.h>
+#include <json-c/json.h>
+#include "kds_s2000w_handler.h"
+#include "kds_s2000w_client.h"
+#include "kds_s2000w_handler_opts.h"
+
+extern current_state* state;
+extern response* resp;
+extern json_object* resp_config;
+extern json_object* config;
+
+void _write_string_value(json_object* value_object, void* value)
+{
+ const char* string_value = json_object_get_string(value_object);
+ char* char_value = (char*) value;
+ int value_length = strlen(string_value) + 1;
+ memcpy(char_value, string_value, sizeof(char) * value_length);
+}
+
+void _write_int_value(json_object* value_object, void* value)
+{
+ int* int_value_ptr = (int*) value;
+ *int_value_ptr = json_object_get_int(value_object);
+}
+
+void _write_string_value_to_json(json_object* value_object, void* value)
+{
+ char* char_value = (char*) value;
+ json_object_set_string(value_object, char_value);
+}
+
+void _write_int_value_to_json(json_object* value_object, void* value)
+{
+ int* int_value_ptr = (int*) value;
+ json_object_set_int(value_object, *int_value_ptr);
+}
+
+void _load_options()
+{
+ json_object_put(resp_config);
+ resp_config = NULL;
+
+ resp = kds_s2000w_client_response_init();
+ int result = kds_s2000w_client_get_option(state->sessionid, resp);
+ resp_config = json_tokener_parse(resp->data);
+ config = json_object_object_get(resp_config, "Configuration");
+
+ if (result != 0 || resp->code == 404) {
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+ json_object_put(resp_config);
+ resp_config = NULL;
+ return;
+ }
+
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+}
+
+int _change_output_type_to_images()
+{
+ json_object* value_object = json_object_object_get(config, "ColorMode");
+ const char* color_mode_value = json_object_get_string(value_object);
+ if (strcmp(color_mode_value, "Color_BW") != 0) {
+ value_object = NULL;
+ value_object = json_object_object_get(config, "OutputType");
+ const char* reset_value_ptr = "Images";
+ _write_string_value_to_json(value_object, (void*) reset_value_ptr);
+ value_object = NULL;
+ return 1;
+ }
+
+ return 0;
+}
+
+int _color_change_to_color_bw()
+{
+ json_object* value_object = json_object_object_get(config, "ColorMode");
+ const char* color_mode_value = json_object_get_string(value_object);
+ if (strcmp(color_mode_value, "Color_BW") != 0) {
+ const char* reset_value_ptr = "Color_BW";
+ _write_string_value_to_json(value_object, (void*) reset_value_ptr);
+ value_object = NULL;
+ return 1;
+ }
+
+ return 0;
+}
+
+int _change_skip_blank_pages_off()
+{
+ json_object* value_object = json_object_object_get(config, "OutputType");
+ const char* output_type = json_object_get_string(value_object);
+ value_object = NULL;
+
+ if (strcmp(output_type, "SinglePageColorPDFPlus2TIFs") == 0) {
+ value_object = json_object_object_get(config, "SkipBlankPages");
+ json_object_set_int(value_object, 0);
+ value_object = NULL;
+ return 1;
+ }
+
+ return 0;
+}
+
+void kds_s2000w_handler_get_option(int option, void* value)
+{
+ config = json_object_object_get(resp_config, "Configuration");
+ json_object* value_object = NULL;
+ switch(option) {
+ case 0:
+ _load_options();
+ int* int_value_ptr = (int*) value;
+ *int_value_ptr = json_object_object_length(config) + 3;
+ break;
+ case 2:
+ value_object = json_object_object_get(config, "DPI");
+ _write_int_value(value_object, value);
+ break;
+ case 3:
+ value_object = json_object_object_get(config, "ScanSide");
+ _write_string_value(value_object, value);
+ break;
+ case 4:
+ value_object = json_object_object_get(config, "ColorMode");
+ _write_string_value(value_object, value);
+ break;
+ case 5:
+ value_object = json_object_object_get(config, "SkipBlankPages");
+ _write_int_value(value_object, value);
+ break;
+ case 6:
+ value_object = json_object_object_get(config, "AutoStart");
+ _write_int_value(value_object, value);
+ break;
+ case 7:
+ value_object = json_object_object_get(config, "ColorDropOut");
+ _write_string_value(value_object, value);
+ break;
+ case 8:
+ value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 9:
+ value_object = json_object_object_get(config, "OutputType");
+ _write_string_value(value_object, value);
+ break;
+ case 10:
+ value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
+ _write_string_value(value_object, value);
+ break;
+ case 11:
+ value_object = json_object_object_get(config, "ColorBalanceMode");
+ _write_string_value(value_object, value);
+ break;
+ case 12:
+ value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 13:
+ value_object = json_object_object_get(config, "ColorBalanceRed");
+ _write_int_value(value_object, value);
+ break;
+ case 14:
+ value_object = json_object_object_get(config, "ColorBalanceGreen");
+ _write_int_value(value_object, value);
+ break;
+ case 15:
+ value_object = json_object_object_get(config, "ColorBalanceBlue");
+ _write_int_value(value_object, value);
+ break;
+ case 16:
+ value_object = json_object_object_get(config, "ForegroundBoldnessMode");
+ _write_string_value(value_object, value);
+ break;
+ case 17:
+ value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 18:
+ value_object = json_object_object_get(config, "BackgroundSmoothingMode");
+ _write_string_value(value_object, value);
+ break;
+ case 19:
+ value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
+ _write_int_value(value_object, value);
+ break;
+ case 20:
+ value_object = json_object_object_get(config, "BinarizationMode");
+ _write_string_value(value_object, value);
+ break;
+ case 21:
+ value_object = json_object_object_get(config, "BinarizationContrast");
+ _write_int_value(value_object, value);
+ break;
+ case 22:
+ value_object = json_object_object_get(config, "MaxDocumentLength");
+ _write_int_value(value_object, value);
+ break;
+ case 23:
+ value_object = json_object_object_get(config, "ScanSource");
+ _write_string_value(value_object, value);
+ break;
+ default:
+ break;
+ }
+}
+
+void kds_s2000w_handler_set_option(int option, void* value, int* info)
+{
+ config = json_object_object_get(resp_config, "Configuration");
+ json_object* value_object = NULL;
+ switch(option) {
+ case 2:
+ value_object = json_object_object_get(config, "DPI");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 3:
+ value_object = json_object_object_get(config, "ScanSide");
+ _write_string_value_to_json(value_object, value);
+ value_object = NULL;
+ break;
+ case 4:
+ value_object = json_object_object_get(config, "ColorMode");
+ _write_string_value_to_json(value_object, value);
+ value_object = NULL;
+
+ if (_change_output_type_to_images())
+ *info = RELOAD_OPTIONS;
+
+ break;
+ case 5:
+ value_object = json_object_object_get(config, "SkipBlankPages");
+ _write_int_value_to_json(value_object, value);
+ value_object = NULL;
+
+ if (_change_skip_blank_pages_off())
+ *info = RELOAD_OPTIONS;
+
+ break;
+ case 6:
+ value_object = json_object_object_get(config, "AutoStart");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 7:
+ value_object = json_object_object_get(config, "ColorDropOut");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 8:
+ value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 9:
+ value_object = json_object_object_get(config, "OutputType");
+ _write_string_value_to_json(value_object, value);
+ value_object = NULL;
+
+ if (_color_change_to_color_bw())
+ *info = RELOAD_OPTIONS;
+
+ if (_change_skip_blank_pages_off())
+ *info = RELOAD_OPTIONS;
+
+ break;
+ case 10:
+ value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 11:
+ value_object = json_object_object_get(config, "ColorBalanceMode");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 12:
+ value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 13:
+ value_object = json_object_object_get(config, "ColorBalanceRed");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 14:
+ value_object = json_object_object_get(config, "ColorBalanceGreen");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 15:
+ value_object = json_object_object_get(config, "ColorBalanceBlue");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 16:
+ value_object = json_object_object_get(config, "ForegroundBoldnessMode");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 17:
+ value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 18:
+ value_object = json_object_object_get(config, "BackgroundSmoothingMode");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 19:
+ value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 20:
+ value_object = json_object_object_get(config, "BinarizationMode");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 21:
+ value_object = json_object_object_get(config, "BinarizationContrast");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 22:
+ value_object = json_object_object_get(config, "MaxDocumentLength");
+ _write_int_value_to_json(value_object, value);
+ break;
+ case 23:
+ value_object = json_object_object_get(config, "ScanSource");
+ _write_string_value_to_json(value_object, value);
+ break;
+ case 24:
+ 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);
+ const char* json_string = json_object_to_json_string_ext(default_config, JSON_C_TO_STRING_PLAIN);
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+
+ resp = kds_s2000w_client_response_init();
+ resp->size = sizeof(char) * strlen(json_string);
+ resp->code = 0;
+ resp->data = realloc(resp->data, resp->size);
+ resp->data = memcpy(resp->data, json_string, resp->size);
+ kds_s2000w_client_set_option(state->sessionid, resp);
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+ json_object_put(capabilities);
+ capabilities = NULL;
+
+ *info = RELOAD_OPTIONS;
+ _load_options();
+ return;
+ break;
+ default:
+ break;
+ }
+
+ const char* json_string = json_object_to_json_string_ext(resp_config, JSON_C_TO_STRING_PLAIN);
+ resp = kds_s2000w_client_response_init();
+ resp->size = sizeof(char) * strlen(json_string);
+ resp->code = 0;
+ resp->data = realloc(resp->data, resp->size);
+ resp->data = memcpy(resp->data, json_string, resp->size);
+ kds_s2000w_client_set_option(state->sessionid, resp);
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+}
+
+void kds_s2000w_handler_set_option_auto(int option)
+{
+ return;
+}
\ No newline at end of file
--- /dev/null
+#ifndef KDS_S2000W_HANDLER_OPTS_H
+void kds_s2000w_handler_get_option(int option, void* value);
+void kds_s2000w_handler_set_option(int option, void* value, int* info);
+void kds_s2000w_handler_set_option_auto(int option);
+#endif
\ No newline at end of file