current_state* state;
+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);;
+}
+
current_state* kds_s2000w_handler_open()
{
state = malloc(sizeof(current_state));
json_object* value_object = NULL;
- int value_length = 0;
- const char* string_value = NULL;
- char* char_value = NULL;
- int int_value = 0;
- int* int_value_ptr = NULL;
switch(option) {
case 0:
- int_value_ptr = (int*) value;
- int_value = json_object_object_length(config);
- printf("option number count: %i\n", int_value);
+ 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;
break;
case 1:
value_object = json_object_object_get(config, "DPI");
- int_value = json_object_get_int(value_object);
- int_value_ptr = (int*) value;
- *int_value_ptr = int_value;
+ _write_int_value(value_object, value);
break;
case 2:
value_object = json_object_object_get(config, "ScanSide");
- string_value = json_object_get_string(value_object);
- char_value = (char*) value;
- value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _write_string_value(value_object, value);
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(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _write_string_value(value_object, value);
break;
case 4:
value_object = json_object_object_get(config, "SkipBlankPages");
- int_value = json_object_get_int(value_object);
- int_value_ptr = (int*) value;
- *int_value_ptr = int_value;
+ _write_int_value(value_object, value);
break;
case 5:
value_object = json_object_object_get(config, "AutoStart");
- int_value = json_object_get_int(value_object);
- int_value_ptr = (int*) value;
- *int_value_ptr = int_value;
+ _write_int_value(value_object, value);
break;
case 6:
value_object = json_object_object_get(config, "ColorDropOut");
- string_value = json_object_get_string(value_object);
- char_value = (char*) value;
- value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _write_string_value(value_object, value);
break;
case 7:
value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
- int_value = json_object_get_int(value_object);
- int_value_ptr = (int*) value;
- *int_value_ptr = int_value;
+ _write_int_value(value_object, value);
break;
case 8:
value_object = json_object_object_get(config, "OutputType");
- string_value = json_object_get_string(value_object);
- char_value = (char*) value;
- value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _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");
- string_value = json_object_get_string(value_object);
- printf("DEBUG value: %s\n", string_value);
- char_value = (char*) value;
- value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _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");
- string_value = json_object_get_string(value_object);
- printf("DEBUG value: %s\n", string_value);
- char_value = (char*) value;
- value_length = strlen(string_value) + 1;
- memcpy(char_value, string_value, sizeof(char) * value_length);
+ _write_string_value(value_object, value);
break;
case 11:
value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
- int_value = json_object_get_int(value_object);
- int_value_ptr = (int*) value;
- *int_value_ptr = int_value;
+ _write_int_value(value_object, value);
break;
default:
break;