status_t BaseTranslator::BitsTranslate(BPositionIO *inSource, const translator_info *inInfo, BMessage *ioExtension, uint32 outType, BPositionIO *outDestination) { status_t result = BitsCheck(inSource, ioExtension, outType); if (result == B_OK && outType == B_TRANSLATOR_BITMAP) { result = translate_from_bits_to_bits(inSource, outType, outDestination); } else if (result >= B_OK) { // If NOT B_TRANSLATOR_BITMAP type it could be the derived format result = DerivedTranslate(inSource, inInfo, ioExtension, outType, outDestination, (result == B_OK)); } return result; }
status_t BaseTranslator::BitsIdentify(BPositionIO *inSource, const translation_format *inFormat, BMessage *ioExtension, translator_info *outInfo, uint32 outType) { status_t result; result = BitsCheck(inSource, ioExtension, outType); if (result == B_OK) result = identify_bits_header(inSource, outInfo); else if (result == B_OK + 1) // if NOT B_TRANSLATOR_BITMAP, it could be an image in the // derived format result = DerivedIdentify(inSource, inFormat, ioExtension, outInfo, outType); return result; }
status_t BaseTranslator::BitsIdentify(BPositionIO *inSource, const translation_format *inFormat, BMessage *ioExtension, translator_info *outInfo, uint32 outType) { status_t result = BitsCheck(inSource, ioExtension, outType); if (result == B_OK) { TranslatorBitmap bitmap; result = identify_bits_header(inSource, outInfo, &bitmap); if (result == B_OK) result = DerivedCanHandleImageSize(bitmap.bounds.Width() + 1.0, bitmap.bounds.Height() + 1.0); } else if (result >= B_OK) { // if NOT B_TRANSLATOR_BITMAP, it could be an image in the // derived format result = DerivedIdentify(inSource, inFormat, ioExtension, outInfo, outType); } return result; }