typedef struct {
int scan_started;
- int second_metadata;
int cancel;
int read_size;
int readed_bytes_per_line;
SANE_Parameters* params)
{
debug_printf(ALL, "sane_kds_s2000w_net_get_parameters");
-
- params->format = 0;
- params->last_frame = 0;
- params->bytes_per_line = 0;
- params->pixels_per_line = 0;
- params->lines = 0;
- params->depth = 0;
-
if (!read_info.scan_started)
return SANE_STATUS_INVAL;
- if (read_info.second_metadata) {
- read_info.second_metadata = 0;
- params->format = read_info.current_metadata.format;
- params->last_frame = read_info.current_metadata.is_last;
- params->bytes_per_line = read_info.current_metadata.bytes_per_line;
- params->pixels_per_line = read_info.current_metadata.pixels_per_line;
- params->lines = read_info.current_metadata.lines;
- params->depth = read_info.current_metadata.depth;
- return SANE_STATUS_GOOD;
- }
-
for (int i = 0; i < 10; i++) {
sleep(1);
read_info.current_metadata = kds_s2000w_handler_get_parameters();
read_info.read_size = 0;
read_info.readed_lines = 0;
read_info.readed_bytes_per_line = 0;
- read_info.second_metadata = 1;
debug_printf_int(DEBUG, "format", params->format);
debug_printf_int(DEBUG, "last frame", params->last_frame);
return SANE_STATUS_CANCELLED;
}
- if (!read_info.second_metadata) {
- *length = 0;
- return SANE_STATUS_EOF;
- }
-
int skip_header_bytes = _sane_kds_s2000w_net_find_first_data_byte(read_info.current_metadata.image);
if (read_info.read_size <= 0)
read_info.read_size += skip_header_bytes;
#include <stdlib.h>
#include <sane/sane.h>
-START_TEST(kds_s2000w_net_get_parameters_defaults)
-{
- SANE_Parameters* params = malloc(sizeof(SANE_Parameters));
-
- _sane_kds_s2000w_net_get_parameters(NULL, params);
-
- ck_assert_int_eq(params->format, 0);
- ck_assert_int_eq(params->last_frame, 0);
- ck_assert_int_eq(params->bytes_per_line, 0);
- ck_assert_int_eq(params->pixels_per_line, 0);
- ck_assert_int_eq(params->lines, 0);
- ck_assert_int_eq(params->depth, 0);
-
- free(params);
- params = NULL;
-}
-END_TEST
-
START_TEST(kds_s2000w_net_get_parameters_invalid_metdata)
{
readinfo* read_info = get_read_info();
SANE_Status status = _sane_kds_s2000w_net_get_parameters(NULL, params);
ck_assert_int_eq(status, SANE_STATUS_UNSUPPORTED);
-
- free(params);
- params = NULL;
-}
-END_TEST
-
-START_TEST(kds_s2000w_net_get_parameters_first_scan_params)
-{
- readinfo* read_info = get_read_info();
- read_info->scan_started = 1;
- mdata.valid = 1;
- mdata.format = 1;
- mdata.is_last = 1;
- mdata.bytes_per_line = 50;
- mdata.pixels_per_line = 100;
- mdata.lines = 32;
- mdata.depth = 8;
- SANE_Parameters* params = malloc(sizeof(SANE_Parameters));
-
- _sane_kds_s2000w_net_get_parameters(NULL, params);
-
- ck_assert_int_eq(params->format, 1);
- ck_assert_int_eq(params->last_frame, 1);
- ck_assert_int_eq(params->bytes_per_line, 50);
- ck_assert_int_eq(params->pixels_per_line, 100);
- ck_assert_int_eq(params->lines, 32);
- ck_assert_int_eq(params->depth, 8);
- ck_assert_int_eq(read_info->second_metadata, 1);
-
- free(params);
- params = NULL;
-}
-END_TEST
-
-START_TEST(kds_s2000w_net_get_parameters_second_scan_params)
-{
- readinfo* read_info = get_read_info();
- read_info->scan_started = 1;
- mdata.valid = 1;
- mdata.format = 1;
- mdata.is_last = 1;
- mdata.bytes_per_line = 50;
- mdata.pixels_per_line = 100;
- mdata.lines = 32;
- mdata.depth = 8;
- SANE_Parameters* params = malloc(sizeof(SANE_Parameters));
-
- _sane_kds_s2000w_net_get_parameters(NULL, params);
- read_info->second_metadata = 1;
- _sane_kds_s2000w_net_get_parameters(NULL, params);
- ck_assert_int_eq(params->format, 1);
- ck_assert_int_eq(params->last_frame, 1);
- ck_assert_int_eq(params->bytes_per_line, 50);
- ck_assert_int_eq(params->pixels_per_line, 100);
- ck_assert_int_eq(params->lines, 32);
- ck_assert_int_eq(params->depth, 8);
- ck_assert_int_eq(read_info->second_metadata, 0);
-
free(params);
params = NULL;
}
START_TEST(sane_kds_s2000w_net_read_all_lines_test)
{
readinfo* read_info = get_read_info();
- read_info->second_metadata = 1;
read_info->cancel = 0;
read_info->read_size = 0;
char* image = malloc(sizeof(char) * 53);
START_TEST(sane_kds_s2000w_net_read_test)
{
readinfo* read_info = get_read_info();
- read_info->second_metadata = 1;
read_info->read_size = 0;
read_info->current_metadata.format = 0;
read_info->current_metadata.lines = 1;
{
readinfo* read_info = get_read_info();
read_info->read_size = 0;
- read_info->second_metadata = 1;
read_info->current_metadata.format = 0;
read_info->current_metadata.lines = 1;
read_info->current_metadata.bytes_per_line = 95000;
Suite* get_params = suite_create("kds_s2000w_net_get_parameters");
TCase* net_get_params = tcase_create("get parameters");
- tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_defaults);
tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_invalid_metdata);
- tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_first_scan_params);
- tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_second_scan_params);
-
suite_add_tcase(get_params, net_get_params);
return get_params;
}