resp = NULL;
}
+void _change_channels(handler* h)
+{
+ json_object* value_object = json_object_object_get(config, "ColorMode");
+ const char* color_mode_value = json_object_get_string(value_object);
+ if (strcmp(color_mode_value, "Color") == 0)
+ h->current_metadata->channels = 3;
+ else
+ h->current_metadata->channels = 1;
+}
+
+void _change_format(handler* h)
+{
+ json_object* value_object = json_object_object_get(config, "ColorMode");
+ const char* color_mode_value = json_object_get_string(value_object);
+ if (strcmp(color_mode_value, "Color") == 0)
+ h->current_metadata->format = 1;
+ else
+ h->current_metadata->format = 0;
+}
+
int _change_output_type_to_images()
{
json_object* value_object = json_object_object_get(config, "ColorMode");
case 4:
value_object = json_object_object_get(config, "ColorMode");
_write_string_value(value_object, value);
-
- if (strcmp(value, "Color") == 0) {
- h->current_metadata->format = 1;
- h->current_metadata->channels = 3;
- } else {
- h->current_metadata->format = 0;
- h->current_metadata->channels = 1;
- }
-
break;
case 5:
value_object = json_object_object_get(config, "SkipBlankPages");
if (_change_output_type_to_images())
*info = RELOAD_OPTIONS;
+ _change_channels(h);
+ _change_format(h);
+ *info |= RELOAD_PARAMS;
+
break;
case 5:
value_object = json_object_object_get(config, "SkipBlankPages");
debug_printf(ALL, "sane_kds_s2000w_net_get_parameters");
handler* h = (handler*) handle;
+ if (h->current_metadata->depth == 1)
+ h->current_metadata->bytes_per_line = h->current_metadata->channels * floor((h->current_metadata->pixels_per_line + 7) / 8);
+ else
+ h->current_metadata->bytes_per_line = h->current_metadata->channels * h->current_metadata->pixels_per_line * h->current_metadata->depth / 8;
+
metadata mdata;
memcpy(&mdata, h->current_metadata, sizeof(metadata));
params->format = mdata.format;
params->last_frame = mdata.is_last;
- params->bytes_per_line = mdata.bytes_per_line;
params->pixels_per_line = mdata.pixels_per_line;
+ params->bytes_per_line = mdata.bytes_per_line;
params->lines = mdata.lines;
params->depth = mdata.depth;
ck_assert_int_eq(params.format, 1);
ck_assert_int_eq(params.last_frame, 0);
- ck_assert_int_eq(params.bytes_per_line, 0);
+ ck_assert_int_eq(params.bytes_per_line, 3240);
ck_assert_int_eq(params.pixels_per_line, 1080);
ck_assert_int_eq(params.lines, 100);
ck_assert_int_eq(params.depth, 8);