]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change write value to json with type
authorBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 10:43:02 +0000 (12:43 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 10:43:02 +0000 (12:43 +0200)
src/kds_s2000w_handler_opts.c

index a6b2fbf444f3d10318f6edc8ec0f9d7fd29c795a..09a4dc599818161a5df04c07e3e55eac002f3f34 100644 (file)
@@ -8,16 +8,17 @@
 #define AUTOSTART_ON 1
 #define OPTION_COUNT 47
 
-__attribute_deprecated__ void _kds_s2000w_handler_opts_write_string_value_to_json(json_object* value_object, void* value)
+void _kds_s2000w_handler_opts_write_value_to_json(json_object* value_object, SANE_Value_Type value_type, void* value)
 {
-       char* char_value = (char*) value;
-       json_object_set_string(value_object, char_value);
-}
+       if (value_type == SANE_TYPE_INT || value_type == SANE_TYPE_BOOL) {
+               int32_t* int_value_ptr = (int32_t*) value;
+               json_object_set_int(value_object, *int_value_ptr);
+       }
 
-__attribute_deprecated__  void _kds_s2000w_handler_opts_write_int_value_to_json(json_object* value_object, void* value)
-{
-       int32_t* int_value_ptr = (int32_t*) value;
-       json_object_set_int(value_object, *int_value_ptr);
+       if (value_type == SANE_TYPE_STRING) {
+               char* char_value = (char*) value;
+               json_object_set_string(value_object, char_value);
+       }
 }
 
 void _kds_s2000w_handler_opts_write_value(json_object* value_object, SANE_Value_Type value_type, void* value)
@@ -60,7 +61,7 @@ void _kds_s2000w_handler_opts_set_autostart_on(json_object* config)
 {
        uint32_t auto_start_value = AUTOSTART_ON;
        json_object* value_object = json_object_object_get(config, "AutoStart");
-       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, &auto_start_value);
+       _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)
@@ -106,13 +107,13 @@ void _kds_s2000w_handler_opts_set_enable_cropping_image(json_object* config)
        SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get_by_name("cropping-image");
 
        if (strcmp(cropping_mode_value, "Automatic") == 0) {
-               _kds_s2000w_handler_opts_write_string_value_to_json(copping_image, "EntireDocument");
+               _kds_s2000w_handler_opts_write_value_to_json(copping_image, cropping_image->type, "EntireDocument");
                cropping_image->cap &= ~SANE_CAP_SOFT_SELECT;
                return;
        }
 
        if (strcmp(cropping_mode_value, "Manual") == 0) {
-               _kds_s2000w_handler_opts_write_string_value_to_json(copping_image, "PartialDocument");
+               _kds_s2000w_handler_opts_write_value_to_json(copping_image, cropping_image->type, "PartialDocument");
                cropping_image->cap &= ~SANE_CAP_SOFT_SELECT;
                return;
        }
@@ -314,7 +315,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
        switch(option) {
                case 2:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
 
                        if (strcmp(value, "Flatbed") == 0)
                                h->current_scan_status->feeder = Flatbed;
@@ -328,7 +329,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 3:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
 
                        if (info != NULL)
                                *info = RELOAD_PARAMS;
@@ -354,15 +355,15 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                case 41:
                case 45:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        break;
                case 5:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        break;
                case 7:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_cropping_image(config);
                        _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
 
@@ -371,7 +372,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                break;
                case 8:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
 
                        if (info != NULL)
@@ -379,7 +380,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 14:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
 
                        if (info != NULL)
@@ -387,7 +388,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 16:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
 
                        if (info != NULL)
@@ -395,7 +396,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 19:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
 
                        if (info != NULL)
@@ -403,7 +404,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 21:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
                        
                        if (info != NULL)
@@ -411,7 +412,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        break;
                case 24:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        _kds_s2000w_handler_opts_set_enable_color_balance(config);
                        _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
 
@@ -428,7 +429,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                case 44:
                case 46:
                        value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
                        break;
                case 31:
                        _kds_s2000w_handler_opts_set_option_to_default(h);