]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change all constrains init in methods
authorBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 12:25:41 +0000 (13:25 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 12:25:41 +0000 (13:25 +0100)
src/kds_s2000w_option_descriptors.c

index 6efe236acb1f6b233fe7faa875353e136f514ab8..b7c6b6efe0cdec9bbe591d479c91a23885f61084 100644 (file)
@@ -7,16 +7,6 @@
 
 SANE_Option_Descriptor* descriptor_array = NULL;
 
-SANE_Word constraint_dpi[] = {5, 100, 150, 200, 300, 600};
-SANE_Range constraint_binarization_contrast = {-50, 50, 1};
-SANE_Range constraint_background_smoothing_aggressivness = {-10, 10, 1};
-SANE_Range constraint_color_drop_out_aggressiveness_range = {-10, 10, 1};
-SANE_Range constraint_color_balance_aggressiveness = {-2, 2, 1};
-SANE_Range constraint_color_balance_red = {-50, 50, 1};
-SANE_Range constraint_color_balance_green = {-50, 50, 1};
-SANE_Range constraint_color_balance_blue = {-50, 50, 1};
-SANE_Range constraint_foreground_boldness_aggressiveness = {-10, 10, 1};
-
 SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_standard_group");
@@ -75,6 +65,14 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_dpi()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_dpi");
 
+       SANE_Word* constraint = malloc(sizeof(SANE_Word) * 6);
+       constraint[0] = 5;
+       constraint[1] = 100;
+       constraint[2] = 150;
+       constraint[3] = 200;
+       constraint[4] = 300;
+       constraint[5] = 600;
+
        SANE_Option_Descriptor descriptor = {
                SANE_NAME_SCAN_RESOLUTION,
                SANE_TITLE_SCAN_RESOLUTION,
@@ -84,7 +82,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_dpi()
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_WORD_LIST,
-               {.word_list = constraint_dpi}
+               {.word_list = constraint}
        };
 
        return descriptor;
@@ -191,6 +189,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop_out_aggressivene
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_drop_out_aggressiveness");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -10;
+       constraint->max = 10;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "colordropoutaggressiveness",
                "colordropoutaggressiveness",
@@ -200,7 +203,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop_out_aggressivene
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_color_drop_out_aggressiveness_range}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -261,6 +264,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balancea_agressivenes
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_balancea_agressiveness");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -2;
+       constraint->max = 2;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "colorbalanceaggressiveness",
                "colorbalanceaggressiveness",
@@ -270,7 +278,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balancea_agressivenes
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_color_balance_aggressiveness}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -280,6 +288,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_red()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_red");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -50;
+       constraint->max = 50;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "colorbalancered",
                "colorbalancered",
@@ -289,7 +302,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_red()
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_color_balance_red}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -299,6 +312,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_green()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_green");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -50;
+       constraint->max = 50;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "colorbalancegreen",
                "colorbalancegreen",
@@ -308,7 +326,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_green()
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_color_balance_green}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -318,6 +336,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_blue()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_color_balance_blue");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -50;
+       constraint->max = 50;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "colorbalanceblue",
                "colorbalanceblue",
@@ -327,7 +350,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_balance_blue()
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_color_balance_blue}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -362,6 +385,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_aggress
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_foreground_boldness_aggressiveness");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -10;
+       constraint->max = 10;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "foreground-boldness-aggressiveness",
                "Foreground Boldness Aggressiveness",
@@ -371,7 +399,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_foreground_boldness_aggress
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_foreground_boldness_aggressiveness}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -406,6 +434,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_aggres
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_background_smoothing_aggressiveness");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -10;
+       constraint->max = 10;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                "background-smoothing-aggressiveness",
                "Background Smoothing Aggressivenes",
@@ -415,7 +448,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_background_smoothing_aggres
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_background_smoothing_aggressivness}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -425,6 +458,11 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_binarization_contrast()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_binarization_contrast");
 
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = -50;
+       constraint->max = 50;
+       constraint->quant = 1;
+
        SANE_Option_Descriptor descriptor = {
                SANE_NAME_CONTRAST,
                SANE_TITLE_CONTRAST,
@@ -434,7 +472,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_binarization_contrast()
                sizeof(SANE_Int),
                SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
                SANE_CONSTRAINT_RANGE,
-               {.range = &constraint_binarization_contrast}
+               {.range = constraint}
        };
 
        return descriptor;
@@ -832,10 +870,21 @@ void kds_s2000w_option_descriptors_free()
 
        for (int i = 0; i < MAX_OPTION_COUNT; i++) {
                descriptor = kds_s2000w_option_descriptors_get(i);
+
                if (descriptor->constraint_type == SANE_CONSTRAINT_STRING_LIST) {
                        free((void*) descriptor->constraint.string_list);
                        descriptor->constraint.string_list = NULL;
                }
+
+               if (descriptor->constraint_type == SANE_CONSTRAINT_WORD_LIST) {
+                       free((void*) descriptor->constraint.word_list);
+                       descriptor->constraint.word_list = NULL;
+               }
+
+               if (descriptor->constraint_type == SANE_CONSTRAINT_RANGE) {
+                       free((void*) descriptor->constraint.range);
+                       descriptor->constraint.range = NULL;
+               }
        }
 
        free(descriptor_array);