]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add mask inject without profile mark profile deprecated
authorBastian Dehn <hhaalo@arcor.de>
Wed, 25 Mar 2026 19:34:23 +0000 (20:34 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 25 Mar 2026 19:34:23 +0000 (20:34 +0100)
src/kds_s2000w_handler.h
src/kds_s2000w_net.c
src/kds_s2000w_option_descriptors.c
src/kds_s2000w_option_descriptors.h
tests/kds_s2000w_net_get_opt_tests.c
tests/kds_s2000w_net_set_opt_tests.c
tests/kds_s2000w_option_descriptor_tests.c

index fa5946038ae3333c9aabdbd459222a276572fb28..304c3a7b5feab43f8bbf386d2ac094d1f1abeea2 100644 (file)
@@ -47,7 +47,7 @@ typedef struct {
 } scan_status_t;
 
 typedef struct {
-       uint8_t profile;
+       __attribute_deprecated__ uint8_t profile;
        uint64_t sessionid;
        json_object* scanner_config;
        scan_status_t* scan_status;
index 4aff009f528fb411a45af3d117c7bb05bf054a33..44ab0de393909c03ad23c5a026d6176f6499412c 100644 (file)
@@ -99,7 +99,7 @@ SANE_Status sane_kds_s2000w_net_open(SANE_String_Const devicename,
        }
 
        mask_option_groups_t* option_mask = kds_s2000w_handler_get_available_options();
-       SANE_Status status = kds_s2000w_option_descriptors_init(h->profile);
+       SANE_Status status = kds_s2000w_option_descriptors_init((mask_option_t*) option_mask);
 
        free(option_mask);
        option_mask = NULL;
index 7e5a3b74f9bde9bc6b8326b4d5bcf07a4bd415c1..daccb3e00841c85f031ba1cc4c08a9e399db7f7c 100644 (file)
@@ -1464,63 +1464,10 @@ SANE_Status _kds_s2000w_option_descriptor_init_profile(descriptor_fn* fn, size_t
        return _kds_s2000w_option_descriptor_validate();
 }
 
-SANE_Status _kds_s2000w_option_descriptors_init_min_profile()
-{
-       descriptor_fn fn[] = {
-               _kds_s2000w_option_descriptor_num_options,
-               _kds_s2000w_option_descriptor_standard_group,
-               _kds_s2000w_option_descriptor_color_mode,
-               _kds_s2000w_option_descriptor_dpi,
-               _kds_s2000w_option_descriptor_scanside,
-               _kds_s2000w_option_descriptor_boldness_color_group,
-               _kds_s2000w_option_descriptor_color_drop,
-               _kds_s2000w_option_descriptor_config_reset,
-               _kds_s2000w_option_descriptor_image_processing_group,
-               _kds_s2000w_option_descriptor_skip_blank_pages,
-               _kds_s2000w_option_descriptor_feeder_group,
-               _kds_s2000w_option_descriptor_autostart
-       };
-
-       size_t size = sizeof(fn) / sizeof(descriptor_fn);
-       return _kds_s2000w_option_descriptor_init_profile(fn, size);
-}
-
-SANE_Status _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile()
-{
-       descriptor_fn fn[] = {
-               _kds_s2000w_option_descriptor_num_options,
-               _kds_s2000w_option_descriptor_standard_group,
-               _kds_s2000w_option_descriptor_scan_source,
-               _kds_s2000w_option_descriptor_color_mode,
-               _kds_s2000w_option_descriptor_dpi,
-               _kds_s2000w_option_descriptor_scanside,
-               _kds_s2000w_option_descriptor_boldness_smoothing_group,
-               _kds_s2000w_option_descriptor_foreground_boldness_mode,
-               _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness,
-               _kds_s2000w_option_descriptor_background_smoothing_mode,
-               _kds_s2000w_option_descriptor_background_smoothing_aggressiveness,
-               _kds_s2000w_option_descriptor_boldness_color_group,
-               _kds_s2000w_option_descriptor_color_drop,
-               _kds_s2000w_option_descriptor_color_drop_out_aggressiveness,
-               _kds_s2000w_option_descriptor_color_auto_brightness_mode,
-               _kds_s2000w_option_descriptor_color_balance_mode,
-               _kds_s2000w_option_descriptor_color_balance_agressiveness,
-               _kds_s2000w_option_descriptor_color_balance_red,
-               _kds_s2000w_option_descriptor_color_balance_green,
-               _kds_s2000w_option_descriptor_color_balance_blue,
-               _kds_s2000w_option_descriptor_binarization_contrast,
-               _kds_s2000w_option_descriptor_config_reset,
-               _kds_s2000w_option_descriptor_image_processing_group,
-               _kds_s2000w_option_descriptor_skip_blank_pages,
-               _kds_s2000w_option_descriptor_feeder_group,
-               _kds_s2000w_option_descriptor_autostart
-       };
-
-       size_t size = sizeof(fn) / sizeof(descriptor_fn);
-       return _kds_s2000w_option_descriptor_init_profile(fn, size);
-}
-
-SANE_Status _kds_s2000w_option_descriptors_init_full_profile()
+/*******************************************************************************
+ * public methods
+ ******************************************************************************/
+SANE_Status kds_s2000w_option_descriptors_init(mask_option_t* mask)
 {
        descriptor_fn fn[] = {
                _kds_s2000w_option_descriptor_num_options,
@@ -1577,26 +1524,6 @@ SANE_Status _kds_s2000w_option_descriptors_init_full_profile()
        return _kds_s2000w_option_descriptor_init_profile(fn, size);
 }
 
-/*******************************************************************************
- * public methods
- ******************************************************************************/
-SANE_Status kds_s2000w_option_descriptors_init(profile_t profile)
-{
-       switch (profile) {
-       case PROFILE_FULL:
-               return _kds_s2000w_option_descriptors_init_full_profile();
-               break;
-       case PROFILE_230802_V1_0_36:
-               return _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile();
-               break;
-       default:
-               return _kds_s2000w_option_descriptors_init_min_profile();
-               break;
-       }
-
-       return SANE_STATUS_INVAL;
-}
-
 void kds_s2000w_option_descriptors_free()
 {
        if (kds_s2000w_option_descriptors == NULL)
index 189db29d0d6708a799656717a15d46b1c86c7afa..9ac5de89a9afb63d7dafb5ad3823ffc3bdad328a 100644 (file)
  * methods
  ******************************************************************************/
 
-typedef enum {
+__attribute_deprecated__ typedef enum {
        PROFILE_MIN,
        PROFILE_230802_V1_0_36,
        PROFILE_FULL
@@ -130,7 +130,16 @@ typedef struct {
        SANE_Option_Descriptor* descriptor;
 } option_descriptor_t;
 
-SANE_Status kds_s2000w_option_descriptors_init(profile_t profile);
+typedef struct {
+       uint16_t standard_group;
+       uint16_t geometry_group;
+       uint16_t boldness_smoothing_group;
+       uint16_t boldness_color_group;
+       uint16_t image_processing_group;
+       uint16_t feeder_group;
+} mask_option_t;
+
+SANE_Status kds_s2000w_option_descriptors_init(mask_option_t* mask);
 void kds_s2000w_option_descriptors_free();
 
 uint8_t kds_s2000w_option_descriptors_get_max_option_count();
index 126fb7ebc8fa0c79a5e39dee515b1f13ff2f9a35..00cae72aa8f87a22ca8583a4fd87c6c5de3636d4 100644 (file)
 
 int setup(void** state)
 {
-       kds_s2000w_option_descriptors_init(PROFILE_FULL);
+       mask_option_t* mask = malloc(sizeof(mask_option_t));
+       if (mask == NULL)
+               return 1;
+
+       memset(mask, 1, sizeof(mask_option_t));
+       kds_s2000w_option_descriptors_init(mask);
+       free(mask);
+       mask = NULL;
+
        response_t* resp = kds_s2000w_client_response_init();
        const char* responsedata = "{ \
                \"Status\": { \
index 7410560f40215c84eef9349c83a52dace14fec15..845f884c83f9a4effb30e2c2fc01de4a05672c8d 100644 (file)
 
 int setup(void** state)
 {
-       kds_s2000w_option_descriptors_init(PROFILE_FULL);
+       mask_option_t* mask = malloc(sizeof(mask_option_t));
+       if (mask == NULL)
+               return 1;
+
+       memset(mask, 1, sizeof(mask_option_t));
+       kds_s2000w_option_descriptors_init(mask);
+       free(mask);
+       mask = NULL;
 
        response_t** responses = malloc(sizeof(response_t*) * 2);
        if (responses == NULL)
index d7a1b74f8730100d38419b98b4ce759f7d4dff29..ef748d762bb6cf93b362fe0962fc47fbbe9262d2 100644 (file)
@@ -4,37 +4,39 @@
 #include <setjmp.h>
 #include <cmocka.h>
 #include <stdlib.h>
+#include <string.h>
 #include <sane/saneopts.h>
 #include "kds_s2000w_client_mock.h"
 #include "../src/kds_s2000w_option_descriptors.h"
 
 void _kds_s2000w_option_init_descriptor_no_mem(int16_t no_mem_count)
 {
-               set_no_mem_counter(no_mem_count);
-               SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_FULL);
+       set_no_mem_counter(no_mem_count);
 
-               assert_int_equal(status, SANE_STATUS_NO_MEM);
-}
+       mask_option_t* mask = malloc(sizeof(mask_option_t));
+       if (mask == NULL)
+               return;
 
-void _kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem(int16_t no_mem_count)
-{
-               set_no_mem_counter(no_mem_count);
-               SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_230802_V1_0_36);
+       memset(mask, 1, sizeof(mask_option_t));
+       SANE_Status status = kds_s2000w_option_descriptors_init(mask);
+       free(mask);
+       mask = NULL;
 
-               assert_int_equal(status, SANE_STATUS_NO_MEM);
+       assert_int_equal(status, SANE_STATUS_NO_MEM);
 }
 
-void _kds_s2000w_option_init_descriptor_min_profile_no_mem(int16_t no_mem_count)
+int setup(void** state)
 {
-               set_no_mem_counter(no_mem_count);
-               SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_MIN);
+       mask_option_t* mask = malloc(sizeof(mask_option_t));
+       if (mask == NULL)
+               return 1;
 
-               assert_int_equal(status, SANE_STATUS_NO_MEM);
-}
+       memset(mask, 1, sizeof(mask_option_t));
+       SANE_Status status = kds_s2000w_option_descriptors_init(mask);
+       free(mask);
+       mask = NULL;
 
-int setup(void** state)
-{
-       return kds_s2000w_option_descriptors_init(PROFILE_FULL);
+       return status;
 }
 
 int teardown(void **state)
@@ -907,24 +909,6 @@ void kds_s2000w_option_init_descriptor_no_mem_test()
        }
 }
 
-void kds_s2000w_option_init_descriptor_min_profile_no_mem_test()
-{
-       kds_s2000w_option_descriptors_free();
-
-       for (uint32_t i = 0; i < 29; i++) {
-               _kds_s2000w_option_init_descriptor_min_profile_no_mem(i);
-       }
-}
-
-void kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem_test()
-{
-       kds_s2000w_option_descriptors_free();
-
-       for (uint32_t i = 0; i < 70; i++) {
-               _kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem(i);
-       }
-}
-
 int main()
 {
        const struct CMUnitTest option_descriptor_tests[] = {
@@ -981,10 +965,7 @@ int main()
                cmocka_unit_test(kds_s2000w_option_full_get_descriptor_by_number),
                cmocka_unit_test(kds_s2000w_option_full_get_descriptor_over_max_options_test),
                cmocka_unit_test(kds_s2000w_option_get_unknown_descriptor_test),
-               cmocka_unit_test(kds_s2000w_option_init_descriptor_no_mem_test),
-               cmocka_unit_test(kds_s2000w_option_init_descriptor_min_profile_no_mem_test),
-               cmocka_unit_test(kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem_test)
-
+               cmocka_unit_test(kds_s2000w_option_init_descriptor_no_mem_test)
        };
 
        return cmocka_run_group_tests(option_descriptor_tests, setup, teardown);