From: Bastian Dehn Date: Wed, 25 Mar 2026 19:34:23 +0000 (+0100) Subject: add mask inject without profile mark profile deprecated X-Git-Tag: v1.1.25^2~3^2~9 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=4b774ce90e85bb1648327cf571ca3e0ecae3398b;p=sane-kds-s2000w-net.git add mask inject without profile mark profile deprecated --- diff --git a/src/kds_s2000w_handler.h b/src/kds_s2000w_handler.h index fa59460..304c3a7 100644 --- a/src/kds_s2000w_handler.h +++ b/src/kds_s2000w_handler.h @@ -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; diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 4aff009..44ab0de 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -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; diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index 7e5a3b7..daccb3e 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -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) diff --git a/src/kds_s2000w_option_descriptors.h b/src/kds_s2000w_option_descriptors.h index 189db29..9ac5de8 100644 --- a/src/kds_s2000w_option_descriptors.h +++ b/src/kds_s2000w_option_descriptors.h @@ -119,7 +119,7 @@ * 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(); diff --git a/tests/kds_s2000w_net_get_opt_tests.c b/tests/kds_s2000w_net_get_opt_tests.c index 126fb7e..00cae72 100644 --- a/tests/kds_s2000w_net_get_opt_tests.c +++ b/tests/kds_s2000w_net_get_opt_tests.c @@ -18,7 +18,15 @@ 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\": { \ diff --git a/tests/kds_s2000w_net_set_opt_tests.c b/tests/kds_s2000w_net_set_opt_tests.c index 7410560..845f884 100644 --- a/tests/kds_s2000w_net_set_opt_tests.c +++ b/tests/kds_s2000w_net_set_opt_tests.c @@ -13,7 +13,14 @@ 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) diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index d7a1b74..ef748d7 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -4,37 +4,39 @@ #include #include #include +#include #include #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);