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 ) {
205 const cpl_frame *f = NULL;
206 check(f = cpl_frameset_get_first_const(frames),
207 "Error reading frameset");
210 sinfo_msg(
"[Empty frame set]");
214 check(sinfo_print_cpl_frame(f),
"Could not print frame");
215 check(f = cpl_frameset_get_next_const(frames),
216 "Error reading frameset");
221 cleanup:
return cpl_error_get_code();
234 sinfo_print_cpl_frame(
const cpl_frame *f)
240 sinfo_msg(
"%-7s %-20s '%s'",
241 sinfo_tostring_cpl_frame_group(cpl_frame_get_group(f)),
242 cpl_frame_get_tag(f) != NULL ? cpl_frame_get_tag(f) :
"Null",
243 cpl_frame_get_filename(f));
246 sinfo_tostring_cpl_frame_type(cpl_frame_get_type(f)));
248 sinfo_tostring_cpl_frame_group(cpl_frame_get_group(f)));
250 sinfo_tostring_cpl_frame_level(cpl_frame_get_level(f)));
253 return cpl_error_get_code();
264 sinfo_tostring_cpl_frame_type(cpl_frame_type ft)
268 case CPL_FRAME_TYPE_NONE:
270 case CPL_FRAME_TYPE_IMAGE:
272 case CPL_FRAME_TYPE_MATRIX:
274 case CPL_FRAME_TYPE_TABLE:
277 return "unrecognized frame type";
289 sinfo_tostring_cpl_frame_group(cpl_frame_group fg)
293 case CPL_FRAME_GROUP_NONE:
295 case CPL_FRAME_GROUP_RAW:
296 return CPL_FRAME_GROUP_RAW_ID;
297 case CPL_FRAME_GROUP_CALIB:
298 return CPL_FRAME_GROUP_CALIB_ID;
299 case CPL_FRAME_GROUP_PRODUCT:
300 return CPL_FRAME_GROUP_PRODUCT_ID;
302 return "unrecognized frame group";
314 sinfo_tostring_cpl_frame_level(cpl_frame_level fl)
319 case CPL_FRAME_LEVEL_NONE:
321 case CPL_FRAME_LEVEL_TEMPORARY:
323 case CPL_FRAME_LEVEL_INTERMEDIATE:
324 return "INTERMEDIATE";
325 case CPL_FRAME_LEVEL_FINAL:
328 return "unrecognized frame level";
340 sinfo_tostring_cpl_type(cpl_type t)
346 if (!(t & CPL_TYPE_FLAG_ARRAY))
347 switch (t & (~CPL_TYPE_FLAG_ARRAY))
365 case CPL_TYPE_DOUBLE:
367 case CPL_TYPE_POINTER:
370 case CPL_TYPE_INVALID:
373 return "unrecognized type";
376 switch (t & (~CPL_TYPE_FLAG_ARRAY))
379 return "string (char array)";
381 return "uchar array";
383 return "boolean array";
391 return "ulong array";
393 return "float array";
394 case CPL_TYPE_DOUBLE:
395 return "double array";
396 case CPL_TYPE_POINTER:
397 return "pointer array";
399 case CPL_TYPE_INVALID:
400 return "invalid (array)";
402 return "unrecognized type";