]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
refactor write values to void ptr
authorBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 11:42:54 +0000 (12:42 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 11:42:54 +0000 (12:42 +0100)
src/kds_s2000w_handler.c

index ac50efe5cb3ee98987fafd4f0cd679a9e18ab1db..f6aa1019f54c0672a4f55730f8acdd683128dfd2 100644 (file)
@@ -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;