]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add geometry group
authorBastian Dehn <hhaalo@arcor.de>
Fri, 1 Mar 2024 19:03:55 +0000 (20:03 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 1 Mar 2024 19:03:55 +0000 (20:03 +0100)
src/kds_s2000w_handler_opts.c
src/kds_s2000w_option_descriptors.c
src/kds_s2000w_option_descriptors.h

index cffab116f51fe09df865db6f075419c4ace45ccc..d7e78c2ec52b315ec0cb4006a4f758a2efa2480f 100644 (file)
@@ -5,7 +5,7 @@
 #include "kds_s2000w_handler_opts.h"
 #include "kds_s2000w_debug.h"
 
-#define COUNT_CUSTOM_OPTIONS 8
+#define COUNT_CUSTOM_OPTIONS 9
 
 extern json_object* resp_config;
 extern json_object* config;
@@ -139,96 +139,96 @@ void kds_s2000w_handler_get_option(handler* h, int option, void* value, int* inf
                        int* int_value = (int*) value;
                        *int_value = depth;
                        break;
-               case 5:
+               case 6:
                        value_object = json_object_object_get(config, "ColorMode");
                        _write_string_value(value_object, value);
                        break;
-               case 6:
+               case 7:
                        value_object = json_object_object_get(config, "SkipBlankPages");
                        _write_int_value(value_object, value);
                        break;
-               case 7:
+               case 8:
                        value_object = json_object_object_get(config, "AutoStart");
                        _write_int_value(value_object, value);
                        break;
-               case 8:
+               case 9:
                        value_object = json_object_object_get(config, "ColorDropOut");
                        _write_string_value(value_object, value);
                        break;
-               case 9:
+               case 10:
                        value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
                        _write_int_value(value_object, value);
                        break;
-               case 10:
+               case 11:
                        value_object = json_object_object_get(config, "OutputType");
                        _write_string_value(value_object, value);
                        break;
-               case 11:
+               case 12:
                        value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
                        _write_string_value(value_object, value);
                        break;
-               case 12:
+               case 13:
                        value_object = json_object_object_get(config, "ColorBalanceMode");
                        _write_string_value(value_object, value);
                        break;
-               case 13:
+               case 14:
                        value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
                        _write_int_value(value_object, value);
                        break;
-               case 14:
+               case 15:
                        value_object = json_object_object_get(config, "ColorBalanceRed");
                        _write_int_value(value_object, value);
                        break;
-               case 15:
+               case 16:
                        value_object = json_object_object_get(config, "ColorBalanceGreen");
                        _write_int_value(value_object, value);
                        break;
-               case 16:
+               case 17:
                        value_object = json_object_object_get(config, "ColorBalanceBlue");
                        _write_int_value(value_object, value);
                        break;
-               case 17:
+               case 18:
                        value_object = json_object_object_get(config, "ForegroundBoldnessMode");
                        _write_string_value(value_object, value);
                        break;
-               case 18:
+               case 19:
                        value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
                        _write_int_value(value_object, value);
                        break;
-               case 19:
+               case 20:
                        value_object = json_object_object_get(config, "BackgroundSmoothingMode");
                        _write_string_value(value_object, value);
                        break;
-               case 20:
+               case 21:
                        value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
                        _write_int_value(value_object, value);
                        break;
-               case 21:
+               case 22:
                        value_object = json_object_object_get(config, "BinarizationMode");
                        _write_string_value(value_object, value);
                        break;
-               case 22:
+               case 23:
                        value_object = json_object_object_get(config, "BinarizationContrast");
                        _write_int_value(value_object, value);
                        break;
-               case 23:
+               case 24:
                        value_object = json_object_object_get(config, "MaxDocumentLength");
                        _write_int_value(value_object, value);
                        break;
-               case 24:
+               case 25:
                        value_object = json_object_object_get(config, "ScanSource");
                        _write_string_value(value_object, value);
                        break;
-               case 26:
+               case 27:
                        memcpy(value, &gamma_table[0][0], sizeof(int) * 256);
                        break;
-               case 27:
+               case 28:
                        memcpy(value, &gamma_table[1][0], sizeof(int) * 256);
                        break;
-               case 28:
+               case 29:
                        memcpy(value, &gamma_table[2][0], sizeof(int) * 256);
                        break;
-               case 29:
+               case 30:
                        memcpy(value, &gamma_table[3][0], sizeof(int) * 256);
                        break;
                default:
@@ -258,7 +258,7 @@ void kds_s2000w_handler_set_option(handler* h, int option, void* value, int* inf
                        h->current_metadata->depth = *int_value;
                        *info = RELOAD_PARAMS;
                        break;
-               case 5:
+               case 6:
                        value_object = json_object_object_get(config, "ColorMode");
                        _write_string_value_to_json(value_object, value);
                        value_object = NULL;
@@ -280,7 +280,7 @@ void kds_s2000w_handler_set_option(handler* h, int option, void* value, int* inf
                        *info |= RELOAD_PARAMS;
 
                        break;
-               case 6:
+               case 7:
                        value_object = json_object_object_get(config, "SkipBlankPages");
                        _write_int_value_to_json(value_object, value);
                        value_object = NULL;
@@ -289,19 +289,19 @@ void kds_s2000w_handler_set_option(handler* h, int option, void* value, int* inf
                                *info = RELOAD_OPTIONS;
 
                        break;
-               case 7:
+               case 8:
                        value_object = json_object_object_get(config, "AutoStart");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 8:
+               case 9:
                        value_object = json_object_object_get(config, "ColorDropOut");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 9:
+               case 10:
                        value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 10:
+               case 11:
                        value_object = json_object_object_get(config, "OutputType");
                        _write_string_value_to_json(value_object, value);
                        value_object = NULL;
@@ -313,63 +313,63 @@ void kds_s2000w_handler_set_option(handler* h, int option, void* value, int* inf
                                *info = RELOAD_OPTIONS;
 
                        break;
-               case 11:
+               case 12:
                        value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 12:
+               case 13:
                        value_object = json_object_object_get(config, "ColorBalanceMode");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 13:
+               case 14:
                        value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 14:
+               case 15:
                        value_object = json_object_object_get(config, "ColorBalanceRed");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 15:
+               case 16:
                        value_object = json_object_object_get(config, "ColorBalanceGreen");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 16:
+               case 17:
                        value_object = json_object_object_get(config, "ColorBalanceBlue");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 17:
+               case 18:
                        value_object = json_object_object_get(config, "ForegroundBoldnessMode");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 18:
+               case 19:
                        value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 19:
+               case 20:
                        value_object = json_object_object_get(config, "BackgroundSmoothingMode");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 20:
+               case 21:
                        value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 21:
+               case 22:
                        value_object = json_object_object_get(config, "BinarizationMode");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 22:
+               case 23:
                        value_object = json_object_object_get(config, "BinarizationContrast");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 23:
+               case 24:
                        value_object = json_object_object_get(config, "MaxDocumentLength");
                        _write_int_value_to_json(value_object, value);
                        break;
-               case 24:
+               case 25:
                        value_object = json_object_object_get(config, "ScanSource");
                        _write_string_value_to_json(value_object, value);
                        break;
-               case 25:
+               case 26:
                        response* resp = kds_s2000w_client_response_init();
                        kds_s2000w_client_get_capabilities(resp);
                        json_object* capabilities = json_tokener_parse(resp->data);
index eed51dc77e8a89face5127300077c570f86f7fcb..48fea44989eec8d5d04be35617e1e094921e917b 100644 (file)
@@ -31,31 +31,31 @@ SANE_Range* constraint_gamma_range_r = NULL;
 SANE_Range* constraint_gamma_range_g = NULL;
 SANE_Range* constraint_gamma_range_b = NULL;
 
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_num_options()
+SANE_Option_Descriptor* _kds_s2000w_option_descriptor_standard_group()
 {
-       debug_printf(ALL, "kds_s2000w_option_descriptor_num_options");
+       debug_printf(ALL, "kds_s2000w_option_descriptor_standard_group");
        SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
 
-       descriptor->name = SANE_NAME_NUM_OPTIONS;
-       descriptor->title = SANE_TITLE_NUM_OPTIONS;
-       descriptor->desc = SANE_DESC_NUM_OPTIONS;
+       descriptor->name = SANE_NAME_STANDARD;
+       descriptor->title = SANE_TITLE_STANDARD;
+       descriptor->desc = SANE_DESC_STANDARD;
        descriptor->unit = SANE_UNIT_NONE;
        descriptor->cap = SANE_CAP_SOFT_DETECT;
        descriptor->constraint_type = SANE_CONSTRAINT_NONE;
-       descriptor->type = SANE_TYPE_INT;
-       descriptor->size = sizeof(SANE_Int);
+       descriptor->type = SANE_TYPE_GROUP;
+       descriptor->size = 0;
 
        return descriptor;
 }
 
-SANE_Option_Descriptor* _kds_s2000w_option_descriptor_standard_group()
+SANE_Option_Descriptor* _kds_s2000w_option_descriptor_geometry_group()
 {
-       debug_printf(ALL, "kds_s2000w_option_descriptor_standard_group");
+       debug_printf(ALL, "kds_s2000w_option_descriptor_scan_area_group");
        SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
 
-       descriptor->name = SANE_NAME_STANDARD;
-       descriptor->title = SANE_TITLE_STANDARD;
-       descriptor->desc = SANE_DESC_STANDARD;
+       descriptor->name = SANE_NAME_GEOMETRY;
+       descriptor->title = SANE_TITLE_GEOMETRY;
+       descriptor->desc = SANE_DESC_GEOMETRY;
        descriptor->unit = SANE_UNIT_NONE;
        descriptor->cap = SANE_CAP_SOFT_DETECT;
        descriptor->constraint_type = SANE_CONSTRAINT_NONE;
@@ -65,6 +65,23 @@ SANE_Option_Descriptor* _kds_s2000w_option_descriptor_standard_group()
        return descriptor;
 }
 
+SANE_Option_Descriptor* _kds_s2000w_option_descriptor_num_options()
+{
+       debug_printf(ALL, "kds_s2000w_option_descriptor_num_options");
+       SANE_Option_Descriptor* descriptor = malloc(sizeof(SANE_Option_Descriptor));
+
+       descriptor->name = SANE_NAME_NUM_OPTIONS;
+       descriptor->title = SANE_TITLE_NUM_OPTIONS;
+       descriptor->desc = SANE_DESC_NUM_OPTIONS;
+       descriptor->unit = SANE_UNIT_NONE;
+       descriptor->cap = SANE_CAP_SOFT_DETECT;
+       descriptor->constraint_type = SANE_CONSTRAINT_NONE;
+       descriptor->type = SANE_TYPE_INT;
+       descriptor->size = sizeof(SANE_Int);
+
+       return descriptor;
+}
+
 SANE_Option_Descriptor* _kds_s2000w_option_descriptor_dpi()
 {
        debug_printf(ALL, "kds_s2000w_option_descriptor_dpi");
@@ -687,31 +704,32 @@ void kds_s2000w_option_descriptor_init_option_descriptors()
        descriptor_array[2] = _kds_s2000w_option_descriptor_dpi();
        descriptor_array[3] = _kds_s2000w_option_descriptor_scanside();
        descriptor_array[4] = _kds_s2000w_option_descriptor_depth();
-       descriptor_array[5] = _kds_s2000w_option_descriptor_color_mode();
-       descriptor_array[6] = _kds_s2000w_option_descriptor_skip_blank_pages();
-       descriptor_array[7] = _kds_s2000w_option_descriptor_auto_start();
-       descriptor_array[8] = _kds_s2000w_option_descriptor_color_drop();
-       descriptor_array[9] = _kds_s2000w_option_descriptor_color_drop_out_aggressiveness();
-       descriptor_array[10] = _kds_s2000w_option_descriptor_output_type();
-       descriptor_array[11] = _kds_s2000w_option_descriptor_color_auto_brightness_mode();
-       descriptor_array[12] = _kds_s2000w_option_descriptor_color_balance_mode();
-       descriptor_array[13] = _kds_s2000w_option_descriptor_color_balancea_agressiveness();
-       descriptor_array[14] = _kds_s2000w_option_descriptor_color_balance_red();
-       descriptor_array[15] = _kds_s2000w_option_descriptor_color_balance_green();
-       descriptor_array[16] = _kds_s2000w_option_descriptor_color_balance_blue();
-       descriptor_array[17] = _kds_s2000w_option_descriptor_foreground_boldness_mode();
-       descriptor_array[18] = _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness();
-       descriptor_array[19] = _kds_s2000w_option_descriptor_background_smoothing_mode();
-       descriptor_array[20] = _kds_s2000w_option_descriptor_background_smoothing_aggressiveness();
-       descriptor_array[21] = _kds_s2000w_option_descriptor_binarization_mode();
-       descriptor_array[22] = _kds_s2000w_option_descriptor_binarization_contrast();
-       descriptor_array[23] = _kds_s2000w_option_descriptor_max_document_length();
-       descriptor_array[24] = _kds_s2000w_option_descriptor_scan_source();
-       descriptor_array[25] = _kds_s2000w_option_descriptor_config_reset();
-       descriptor_array[26] = _kds_s2000w_option_descriptor_gamma_vector();
-       descriptor_array[27] = _kds_s2000w_option_descriptor_gamma_vector_r();
-       descriptor_array[28] = _kds_s2000w_option_descriptor_gamma_vector_g();
-       descriptor_array[29] = _kds_s2000w_option_descriptor_gamma_vector_b();
+       descriptor_array[5] = _kds_s2000w_option_descriptor_geometry_group();
+       descriptor_array[6] = _kds_s2000w_option_descriptor_color_mode();
+       descriptor_array[7] = _kds_s2000w_option_descriptor_skip_blank_pages();
+       descriptor_array[8] = _kds_s2000w_option_descriptor_auto_start();
+       descriptor_array[9] = _kds_s2000w_option_descriptor_color_drop();
+       descriptor_array[10] = _kds_s2000w_option_descriptor_color_drop_out_aggressiveness();
+       descriptor_array[11] = _kds_s2000w_option_descriptor_output_type();
+       descriptor_array[12] = _kds_s2000w_option_descriptor_color_auto_brightness_mode();
+       descriptor_array[13] = _kds_s2000w_option_descriptor_color_balance_mode();
+       descriptor_array[14] = _kds_s2000w_option_descriptor_color_balancea_agressiveness();
+       descriptor_array[15] = _kds_s2000w_option_descriptor_color_balance_red();
+       descriptor_array[16] = _kds_s2000w_option_descriptor_color_balance_green();
+       descriptor_array[17] = _kds_s2000w_option_descriptor_color_balance_blue();
+       descriptor_array[18] = _kds_s2000w_option_descriptor_foreground_boldness_mode();
+       descriptor_array[19] = _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness();
+       descriptor_array[20] = _kds_s2000w_option_descriptor_background_smoothing_mode();
+       descriptor_array[21] = _kds_s2000w_option_descriptor_background_smoothing_aggressiveness();
+       descriptor_array[22] = _kds_s2000w_option_descriptor_binarization_mode();
+       descriptor_array[23] = _kds_s2000w_option_descriptor_binarization_contrast();
+       descriptor_array[24] = _kds_s2000w_option_descriptor_max_document_length();
+       descriptor_array[25] = _kds_s2000w_option_descriptor_scan_source();
+       descriptor_array[26] = _kds_s2000w_option_descriptor_config_reset();
+       descriptor_array[27] = _kds_s2000w_option_descriptor_gamma_vector();
+       descriptor_array[28] = _kds_s2000w_option_descriptor_gamma_vector_r();
+       descriptor_array[29] = _kds_s2000w_option_descriptor_gamma_vector_g();
+       descriptor_array[30] = _kds_s2000w_option_descriptor_gamma_vector_b();
 }
 
 void kds_s2000w_option_descriptor_free_option_descriptors()
index 49a05c691f8487965df7f8f39046c9ba3bfa6d42..8361c9fe4a4f5cd9fc7ff92b0ea7a4865933ea38 100644 (file)
@@ -2,7 +2,7 @@
 #define KDS_S2000W_OPTION_DESCRIPTORS_H
 #include <sane/sane.h>
 
-#define MAX_OPTION_COUNT 30
+#define MAX_OPTION_COUNT 31
 
 void kds_s2000w_option_descriptor_init_option_descriptors();
 void kds_s2000w_option_descriptor_free_option_descriptors();