From 0122eca354ed501dcd12cd909dc35715c0dc959b Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 27 Jan 2024 12:42:54 +0100 Subject: [PATCH] refactor write values to void ptr --- src/kds_s2000w_handler.c | 77 +++++++++++++++------------------------- 1 file changed, 28 insertions(+), 49 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index ac50efe..f6aa101 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -9,6 +9,20 @@ 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)); @@ -79,93 +93,58 @@ void kds_s2000w_handler_get_option(int option, void* value) 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; -- 2.39.5