NITFPRIV(NITF_CLEVEL) checkSpecificImageAttributes(nitf_Record* record, nitf_Error* error) { NITF_CLEVEL clevel = NITF_CLEVEL_03; nitf_ListIterator it = nitf_List_begin(record->images); nitf_ListIterator end = nitf_List_end(record->images); int i = 0; while (nitf_ListIterator_notEqualTo(&it, &end) ) { NITF_CLEVEL result = NITF_CLEVEL_UNKNOWN; char irep[ NITF_IREP_SZ + 1]; nitf_ImageSegment* imageSegment = (nitf_ImageSegment*)nitf_ListIterator_get(&it); if (!nitf_Field_get(imageSegment->subheader->NITF_IREP, irep, NITF_CONV_STRING, NITF_IREP_SZ + 1, error)) return NITF_CLEVEL_CHECK_FAILED; nitf_Utils_trimString(irep); if (strcmp( irep, "MONO") == 0) { result = checkMonoImage(imageSegment->subheader, error); } else if (strcmp( irep, "RGB") == 0) { result = checkRGBImage(imageSegment->subheader, error); } else if (strcmp( irep, "RGB/LUT" ) == 0) { result = checkRGBLUTImage(imageSegment->subheader, error); } else if (strcmp( irep, "MULTI" ) == 0) { result = checkMultiImage(imageSegment->subheader, error); } else { /* What happens for these other reps ? */ return result; } if ( result == NITF_CLEVEL_CHECK_FAILED ) return result; if ( result > clevel ) { clevel = result; } ++i; nitf_ListIterator_increment(&it); } return clevel; }
NITFAPI(void) nitf_Field_trimString(char *str) { nitf_Utils_trimString(str); }