def _decode_type_tool_object_setting(data, **kwargs): fp = io.BytesIO(data) ver, xx, xy, yx, yy, tx, ty, txt_ver, descr1_ver = read_fmt( "H 6d H I", fp) # This decoder needs to be updated if we have new formats. if ver != 1 or txt_ver != 50 or descr1_ver != 16: warnings.warn( "Ignoring type setting tagged block due to old versions") return data try: text_data = decode_descriptor(None, fp) except UnknownOSType as e: warnings.warn("Ignoring type setting tagged block (%s)" % e) return data # Decode EngineData here. for index in range(len(text_data.items)): item = text_data.items[index] if item[0] == b'EngineData': text_data.items[index] = ( b'EngineData', engine_data.decode(item[1].value)) warp_ver, descr2_ver = read_fmt("H I", fp) if warp_ver != 1 or descr2_ver != 16: warnings.warn( "Ignoring type setting tagged block due to old versions") return data try: warp_data = decode_descriptor(None, fp) except UnknownOSType as e: warnings.warn("Ignoring type setting tagged block (%s)" % e) return data left, top, right, bottom = read_fmt("4i", fp) # wrong info in specs... return TypeToolObjectSetting( ver, xx, xy, yx, yy, tx, ty, txt_ver, descr1_ver, text_data, warp_ver, descr2_ver, warp_data, left, top, right, bottom )
def _decode_text_engine_data(data, **kwargs): return engine_data.decode(data)