}
}
-mask_option_groups_t kds_s2000w_handler_get_available_options()
+mask_option_groups_t* kds_s2000w_handler_get_available_options()
{
+ mask_option_groups_t* available_options = malloc(sizeof(mask_option_groups_t));
+ if (available_options == NULL)
+ return NULL;
+
+ memset(available_options, 0, sizeof(mask_option_groups_t));
+
response_t* resp = kds_s2000w_client_response_init();
kds_s2000w_client_get_capabilities(resp);
json_object* capabilities = json_tokener_parse(resp->data);
json_object* defaults = json_object_object_get(capabilities, "Defaults");
- mask_option_groups_t available_options = {
- .standard_group = 0,
- .geometry_group = 0,
- .boldness_smoothing_group = 0,
- .boldness_color_group = 0,
- .image_processing_group = 0,
- .feeder_group = 0
- };
-
const char* standard_group[] = {
SCAN_SOURCE,
COLOR_MODE,
SCAN_SIDE
};
size_t len = sizeof(standard_group) / sizeof(const char*);
- available_options.standard_group = _kds_s2000w_handler_get_group_available_options(defaults, standard_group, len);
+ available_options->standard_group = _kds_s2000w_handler_get_group_available_options(defaults, standard_group, len);
const char* geometry_group[] = {
CROPPING_MODE,
IMAGE_HEIGHT
};
len = sizeof(geometry_group) / sizeof(const char*);
- available_options.geometry_group = _kds_s2000w_handler_get_group_available_options(defaults, geometry_group, len);
+ available_options->geometry_group = _kds_s2000w_handler_get_group_available_options(defaults, geometry_group, len);
const char* boldness_smoothing_group[] = {
FOREGROUND_BOLDNESS_MODE,
BACKGROUND_SMOOTHING_AGGRESSIVENESS
};
len = sizeof(boldness_smoothing_group) / sizeof(const char*);
- available_options.boldness_smoothing_group = _kds_s2000w_handler_get_group_available_options(defaults, boldness_smoothing_group, len);
+ available_options->boldness_smoothing_group = _kds_s2000w_handler_get_group_available_options(defaults, boldness_smoothing_group, len);
const char* boldness_color_group[] = {
COLOR_DROP_OUT,
RESET,
};
len = sizeof(boldness_color_group) / sizeof(const char*);
- available_options.boldness_color_group = _kds_s2000w_handler_get_group_available_options(defaults, boldness_color_group, len);
- available_options.boldness_color_group |= 1 << 12;
+ available_options->boldness_color_group = _kds_s2000w_handler_get_group_available_options(defaults, boldness_color_group, len);
+ available_options->boldness_color_group |= 1 << 12;
const char* image_processing_group[] = {
SKIP_BLANK_PAGES,
JPEG_QUALITY
};
len = sizeof(image_processing_group) / sizeof(const char*);
- available_options.image_processing_group = _kds_s2000w_handler_get_group_available_options(defaults, image_processing_group, len);
+ available_options->image_processing_group = _kds_s2000w_handler_get_group_available_options(defaults, image_processing_group, len);
const char* feeder_group[] = {
AUTOSTART,
DOCUMENT_FEEDER_TIMEOUT_RESPONSE
};
len = sizeof(feeder_group) / sizeof(const char*),
- available_options.feeder_group = _kds_s2000w_handler_get_group_available_options(defaults, feeder_group, len);
+ available_options->feeder_group = _kds_s2000w_handler_get_group_available_options(defaults, feeder_group, len);
json_object_put(capabilities);
capabilities = NULL;
will_return(__wrap_kds_s2000w_client_get_capabilities, 0);
expect_function_call(__wrap_kds_s2000w_client_get_capabilities);
- mask_option_groups_t option_mask = kds_s2000w_handler_get_available_options();
-
- assert_int_equal(option_mask.standard_group, 0xf);
- assert_int_equal(option_mask.geometry_group, 0x3f);
- assert_int_equal(option_mask.boldness_smoothing_group, 0xf);
- assert_int_equal(option_mask.boldness_color_group, 0x1fff);
- assert_int_equal(option_mask.image_processing_group, 0x7f);
- assert_int_equal(option_mask.feeder_group, 0x7f);
+ mask_option_groups_t* option_mask = kds_s2000w_handler_get_available_options();
+
+ assert_int_equal(option_mask->standard_group, 0xf);
+ assert_int_equal(option_mask->geometry_group, 0x3f);
+ assert_int_equal(option_mask->boldness_smoothing_group, 0xf);
+ assert_int_equal(option_mask->boldness_color_group, 0x1fff);
+ assert_int_equal(option_mask->image_processing_group, 0x7f);
+ assert_int_equal(option_mask->feeder_group, 0x7f);
+
+ free(option_mask);
+ option_mask = NULL;
}
int main()