mirror of
https://github.com/openharmony/third_party_sane-airscan.git
synced 2026-07-01 21:14:00 -04:00
test-devcaps: works for WSD
This commit is contained in:
+23
-17
@@ -156,22 +156,28 @@ devcaps_reset (devcaps *caps)
|
||||
}
|
||||
|
||||
/* Dump device capabilities, for debugging
|
||||
*
|
||||
* The 3rd parameter, 'trace' configures the debug level
|
||||
* (log_debug vs log_trace) of the generated output
|
||||
*/
|
||||
void
|
||||
devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
devcaps_dump (log_ctx *log, devcaps *caps, bool trace)
|
||||
{
|
||||
int i;
|
||||
char *buf = str_new();
|
||||
void (*log_func) (log_ctx *log, const char *fmt, ...);
|
||||
|
||||
log_trace(log, "===== device capabilities =====");
|
||||
log_trace(log, " Size units: %d DPI", caps->units);
|
||||
log_trace(log, " Protocol: %s", caps->protocol);
|
||||
log_func = trace ? log_trace : log_debug;
|
||||
|
||||
log_func(log, "===== device capabilities =====");
|
||||
log_func(log, " Size units: %d DPI", caps->units);
|
||||
log_func(log, " Protocol: %s", caps->protocol);
|
||||
|
||||
if (caps->compression_ok) {
|
||||
log_trace(log, " Compression min: %d", caps->compression_range.min);
|
||||
log_trace(log, " Compression max: %d", caps->compression_range.max);
|
||||
log_trace(log, " Compression step: %d", caps->compression_range.quant);
|
||||
log_trace(log, " Compression norm: %d", caps->compression_norm);
|
||||
log_func(log, " Compression min: %d", caps->compression_range.min);
|
||||
log_func(log, " Compression max: %d", caps->compression_range.max);
|
||||
log_func(log, " Compression step: %d", caps->compression_range.quant);
|
||||
log_func(log, " Compression norm: %d", caps->compression_norm);
|
||||
}
|
||||
|
||||
str_trunc(buf);
|
||||
@@ -184,7 +190,7 @@ devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
}
|
||||
}
|
||||
|
||||
log_trace(log, " Sources: %s", buf);
|
||||
log_func(log, " Sources: %s", buf);
|
||||
|
||||
ID_SOURCE id_src;
|
||||
for (id_src = (ID_SOURCE) 0; id_src < NUM_ID_SOURCE; id_src ++) {
|
||||
@@ -195,19 +201,19 @@ devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
continue;
|
||||
}
|
||||
|
||||
log_trace(log, "");
|
||||
log_trace(log, " %s:", id_source_sane_name(id_src));
|
||||
log_func(log, "");
|
||||
log_func(log, " %s:", id_source_sane_name(id_src));
|
||||
|
||||
math_fmt_mm(math_px2mm_res(src->min_wid_px, caps->units), xbuf);
|
||||
math_fmt_mm(math_px2mm_res(src->min_hei_px, caps->units), ybuf);
|
||||
|
||||
log_trace(log, " Min window: %dx%d px, %sx%s mm",
|
||||
log_func(log, " Min window: %dx%d px, %sx%s mm",
|
||||
src->min_wid_px, src->min_hei_px, xbuf, ybuf);
|
||||
|
||||
math_fmt_mm(math_px2mm_res(src->max_wid_px, caps->units), xbuf);
|
||||
math_fmt_mm(math_px2mm_res(src->max_hei_px, caps->units), ybuf);
|
||||
|
||||
log_trace(log, " Max window: %dx%d px, %sx%s mm",
|
||||
log_func(log, " Max window: %dx%d px, %sx%s mm",
|
||||
src->max_wid_px, src->max_hei_px, xbuf, ybuf);
|
||||
|
||||
if (src->flags & DEVCAPS_SOURCE_RES_DISCRETE) {
|
||||
@@ -219,7 +225,7 @@ devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
buf = str_append_printf(buf, "%d", src->resolutions[i+1]);
|
||||
}
|
||||
|
||||
log_trace(log, " Resolutions: %s", buf);
|
||||
log_func(log, " Resolutions: %s", buf);
|
||||
}
|
||||
|
||||
str_trunc(buf);
|
||||
@@ -233,7 +239,7 @@ devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
}
|
||||
}
|
||||
|
||||
log_trace(log, " Color modes: %s", buf);
|
||||
log_func(log, " Color modes: %s", buf);
|
||||
|
||||
str_trunc(buf);
|
||||
|
||||
@@ -246,11 +252,11 @@ devcaps_dump (log_ctx *log, devcaps *caps)
|
||||
}
|
||||
}
|
||||
|
||||
log_trace(log, " Formats: %s", buf);
|
||||
log_func(log, " Formats: %s", buf);
|
||||
}
|
||||
|
||||
mem_free(buf);
|
||||
log_trace(log, "");
|
||||
log_func(log, "");
|
||||
}
|
||||
|
||||
/* vim:ts=8:sw=4:et
|
||||
|
||||
+1
-1
@@ -609,7 +609,7 @@ device_scanner_capabilities_callback (void *ptr, http_query *q)
|
||||
goto DONE;
|
||||
}
|
||||
|
||||
devcaps_dump(dev->log, &dev->opt.caps);
|
||||
devcaps_dump(dev->log, &dev->opt.caps, true);
|
||||
devopt_set_defaults(&dev->opt);
|
||||
|
||||
/* Update endpoint address in case of HTTP redirection */
|
||||
|
||||
+7
-9
@@ -529,6 +529,11 @@ wsd_devcaps_parse (proto_handler_wsd *wsd,
|
||||
xml_rd *xml;
|
||||
bool found_configuration = false;
|
||||
|
||||
/* Fill "constant" part of device capabilities */
|
||||
caps->units = 1000;
|
||||
caps->protocol = wsd->proto.name;
|
||||
caps->justification_x = caps->justification_y = ID_JUSTIFICATION_UNKNOWN;
|
||||
|
||||
/* Parse capabilities XML */
|
||||
err = xml_rd_begin(&xml, xml_text, xml_len, wsd_ns_rd);
|
||||
if (err != NULL) {
|
||||
@@ -576,10 +581,6 @@ wsd_devcaps_decode (const proto_ctx *ctx, devcaps *caps)
|
||||
http_data *data = http_query_get_response_data(ctx->query);
|
||||
error err;
|
||||
|
||||
caps->units = 1000;
|
||||
caps->protocol = ctx->proto->name;
|
||||
caps->justification_x = caps->justification_y = ID_JUSTIFICATION_UNKNOWN;
|
||||
|
||||
err = wsd_devcaps_parse(wsd, caps, data->bytes, data->size);
|
||||
|
||||
return err;
|
||||
@@ -1164,12 +1165,9 @@ wsd_test_decode_devcaps (proto_handler *proto,
|
||||
const void *xml_text, size_t xms_size,
|
||||
devcaps *caps)
|
||||
{
|
||||
(void) proto;
|
||||
(void) xml_text;
|
||||
(void) xms_size;
|
||||
(void) caps;
|
||||
proto_handler_wsd *wsd = (proto_handler_wsd*) proto;
|
||||
|
||||
return ERROR("not implemented");
|
||||
return wsd_devcaps_parse(wsd, caps, xml_text, xms_size);
|
||||
}
|
||||
|
||||
/* proto_handler_wsd_new creates new WSD protocol handler
|
||||
|
||||
@@ -2716,9 +2716,12 @@ void
|
||||
devcaps_reset (devcaps *caps);
|
||||
|
||||
/* Dump device capabilities, for debugging
|
||||
*
|
||||
* The 3rd parameter, 'trace' configures the debug level
|
||||
* (log_debug vs log_trace) of the generated output
|
||||
*/
|
||||
void
|
||||
devcaps_dump (log_ctx *log, devcaps *caps);
|
||||
devcaps_dump (log_ctx *log, devcaps *caps, bool trace);
|
||||
|
||||
/******************** Device options ********************/
|
||||
/* Scan options
|
||||
|
||||
+8
-1
@@ -88,6 +88,11 @@ main (int argc, char **argv)
|
||||
|
||||
fclose(fp);
|
||||
|
||||
/* Initialize logging */
|
||||
conf.dbg_enabled = true;
|
||||
log_init();
|
||||
log_configure();
|
||||
|
||||
/* Decode device capabilities */
|
||||
memset(&caps, 0, sizeof(caps));
|
||||
devcaps_init(&caps);
|
||||
@@ -97,9 +102,11 @@ main (int argc, char **argv)
|
||||
die("error: %s", ESTRING(err));
|
||||
}
|
||||
|
||||
devcaps_dump(NULL, &caps, false);
|
||||
|
||||
/* Cleanup and exit */
|
||||
proto_handler_free(proto);
|
||||
free(data);
|
||||
mem_free(data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user