]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
implements set option to json
authorBastian Dehn <hhaalo@arcor.de>
Sun, 28 Jan 2024 10:39:05 +0000 (11:39 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 28 Jan 2024 10:39:05 +0000 (11:39 +0100)
src/kds_s2000w_handler.c

index 9dc9dc4a0c786ee081c975796caa852f975bd101..464128e8a1a2a2eecf4bd9e0db03e3bf89c7b57c 100644 (file)
@@ -25,6 +25,18 @@ void _write_int_value(json_object* value_object, void* 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);
+}
+
 current_state* kds_s2000w_handler_open()
 {
        state = malloc(sizeof(current_state));
@@ -199,7 +211,100 @@ void kds_s2000w_handler_get_option(int option, void* value)
 
 void kds_s2000w_handler_set_option(int option, void* value)
 {
-       return;
+       config = json_object_object_get(resObj, "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);
+                       break;
+               case 4:
+                       value_object = json_object_object_get(config, "ColorMode");
+                       _write_string_value_to_json(value_object, value);
+                       break;
+               case 5:
+                       value_object = json_object_object_get(config, "SkipBlankPages");
+                       _write_int_value_to_json(value_object, value);
+                       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);
+                       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;
+               default:
+                       break;
+       }
 }
 
 void kds_s2000w_handler_set_option_auto(int option)