42 #include <sinfo_dump.h>
43 #include <sinfo_utils.h>
44 #include <sinfo_error.h>
45 #include <sinfo_msg.h>
62 sinfo_print_cpl_propertylist(
const cpl_propertylist *pl,
long low,
long high)
67 assure(0 <= low && high <= cpl_propertylist_get_size(pl) && low <= high,
68 CPL_ERROR_ILLEGAL_INPUT,
"Illegal range");
74 else if (cpl_propertylist_is_empty(pl)) {
75 sinfo_msg(
"[Empty property list]");
78 for (i = low; i < high; i++) {
81 prop = cpl_propertylist_get((cpl_propertylist *) pl, i);
82 check(sinfo_print_cpl_property(prop),
"Error printing property");
85 cleanup:
return cpl_error_get_code();
98 sinfo_print_cpl_property(
const cpl_property *prop)
114 sinfo_msg(
"%s =", cpl_property_get_name(prop));
118 check(t = cpl_property_get_type(prop),
"Could not read property type");
120 switch (t & (~CPL_TYPE_FLAG_ARRAY))
123 if (t & CPL_TYPE_FLAG_ARRAY)
125 sinfo_msg(
" '%s'", cpl_property_get_string(prop));
129 sinfo_msg(
" %c", cpl_property_get_char(prop));
133 if (cpl_property_get_bool(prop)) {
141 sinfo_msg(
"%c", cpl_property_get_char(prop));
144 sinfo_msg(
"%d", cpl_property_get_int(prop));
147 sinfo_msg(
"%d", cpl_property_get_int(prop));
150 sinfo_msg(
"%ld", cpl_property_get_long(prop));
153 sinfo_msg(
"%ld", cpl_property_get_long(prop));
156 sinfo_msg(
"%f", cpl_property_get_float(prop));
158 case CPL_TYPE_DOUBLE:
159 sinfo_msg(
"%f", cpl_property_get_double(prop));
161 case CPL_TYPE_POINTER:
162 sinfo_msg(
"POINTER");
164 case CPL_TYPE_INVALID:
165 sinfo_msg(
"INVALID");
168 sinfo_msg(
" unrecognized property");
173 if (t & CPL_TYPE_FLAG_ARRAY) {
174 cpl_msg_info(cpl_func,
" (array size = %" CPL_SIZE_FORMAT
" )",
175 cpl_property_get_size(prop));
179 if (cpl_property_get_comment(prop) != NULL ) {
180 sinfo_msg(
" %s", cpl_property_get_comment(prop));
184 cleanup:
return cpl_error_get_code();
197 sinfo_print_cpl_frameset(
const cpl_frameset *frames)
201 if (frames == NULL ) {
206 cpl_frameset_iterator* it = cpl_frameset_iterator_new(frames);
207 const cpl_frame *f = cpl_frameset_iterator_get_const(it);
210 sinfo_msg(
"[Empty frame set]");
214 check(sinfo_print_cpl_frame(f),
"Could not print frame");
216 cpl_frameset_iterator_advance(it, 1);
217 f = cpl_frameset_iterator_get_const(it);
221 cpl_frameset_iterator_delete(it);
224 cleanup:
return cpl_error_get_code();
237 sinfo_print_cpl_frame(
const cpl_frame *f)
243 sinfo_msg(
"%-7s %-20s '%s'",
244 sinfo_tostring_cpl_frame_group(cpl_frame_get_group(f)),
245 cpl_frame_get_tag(f) != NULL ? cpl_frame_get_tag(f) :
"Null",
246 cpl_frame_get_filename(f));
249 sinfo_tostring_cpl_frame_type(cpl_frame_get_type(f)));
251 sinfo_tostring_cpl_frame_group(cpl_frame_get_group(f)));
253 sinfo_tostring_cpl_frame_level(cpl_frame_get_level(f)));
256 return cpl_error_get_code();
267 sinfo_tostring_cpl_frame_type(cpl_frame_type ft)
271 case CPL_FRAME_TYPE_NONE:
273 case CPL_FRAME_TYPE_IMAGE:
275 case CPL_FRAME_TYPE_MATRIX:
277 case CPL_FRAME_TYPE_TABLE:
280 return "unrecognized frame type";
292 sinfo_tostring_cpl_frame_group(cpl_frame_group fg)
296 case CPL_FRAME_GROUP_NONE:
298 case CPL_FRAME_GROUP_RAW:
299 return CPL_FRAME_GROUP_RAW_ID;
300 case CPL_FRAME_GROUP_CALIB:
301 return CPL_FRAME_GROUP_CALIB_ID;
302 case CPL_FRAME_GROUP_PRODUCT:
303 return CPL_FRAME_GROUP_PRODUCT_ID;
305 return "unrecognized frame group";
317 sinfo_tostring_cpl_frame_level(cpl_frame_level fl)
322 case CPL_FRAME_LEVEL_NONE:
324 case CPL_FRAME_LEVEL_TEMPORARY:
326 case CPL_FRAME_LEVEL_INTERMEDIATE:
327 return "INTERMEDIATE";
328 case CPL_FRAME_LEVEL_FINAL:
331 return "unrecognized frame level";
343 sinfo_tostring_cpl_type(cpl_type t)
349 if (!(t & CPL_TYPE_FLAG_ARRAY))
350 switch (t & (~CPL_TYPE_FLAG_ARRAY))
368 case CPL_TYPE_DOUBLE:
370 case CPL_TYPE_POINTER:
373 case CPL_TYPE_INVALID:
376 return "unrecognized type";
379 switch (t & (~CPL_TYPE_FLAG_ARRAY))
382 return "string (char array)";
384 return "uchar array";
386 return "boolean array";
394 return "ulong array";
396 return "float array";
397 case CPL_TYPE_DOUBLE:
398 return "double array";
399 case CPL_TYPE_POINTER:
400 return "pointer array";
402 case CPL_TYPE_INVALID:
403 return "invalid (array)";
405 return "unrecognized type";
#define sinfo_msg_debug(...)
Print a debug message.