/*!**************************************************************************** @file PVRTUnicode.h @copyright Copyright (c) Imagination Technologies Limited. @brief A small collection of functions used to decode Unicode formats to individual code points. ******************************************************************************/ #ifndef _PVRTUNICODE_H_ #define _PVRTUNICODE_H_ #include "PVRTGlobal.h" #include "PVRTError.h" #include "PVRTArray.h" /**************************************************************************** ** Functions ****************************************************************************/ /*!*************************************************************************** @brief Decodes a UTF8-encoded string in to Unicode code points (UTF32). If pUTF8 is not null terminated, the results are undefined. @param[in] pUTF8 A UTF8 string, which is null terminated. @param[out] aUTF32 An array of Unicode code points. @return Success or failure. *****************************************************************************/ EPVRTError PVRTUnicodeUTF8ToUTF32( const PVRTuint8* const pUTF8, CPVRTArray<PVRTuint32>& aUTF32); /*!*************************************************************************** @brief Decodes a UTF16-encoded string in to Unicode code points (UTF32). If pUTF16 is not null terminated, the results are undefined. @param[in] pUTF16 A UTF16 string, which is null terminated. @param[out] aUTF32 An array of Unicode code points. @return Success or failure. *****************************************************************************/ EPVRTError PVRTUnicodeUTF16ToUTF32(const PVRTuint16* const pUTF16, CPVRTArray<PVRTuint32>& aUTF32); /*!*************************************************************************** @brief Calculates the length of a UTF8 string. If pUTF8 is not null terminated, the results are undefined. @param[in] pUTF8 A UTF8 string, which is null terminated. @return The length of the string, in Unicode code points. *****************************************************************************/ unsigned int PVRTUnicodeUTF8Length(const PVRTuint8* const pUTF8); /*!*************************************************************************** @brief Calculates the length of a UTF16 string. If pUTF16 is not null terminated, the results are undefined. @param[in] pUTF16 A UTF16 string, which is null terminated. @return The length of the string, in Unicode code points. *****************************************************************************/ unsigned int PVRTUnicodeUTF16Length(const PVRTuint16* const pUTF16); /*!*************************************************************************** @brief Checks whether the encoding of a UTF8 string is valid. If pUTF8 is not null terminated, the results are undefined. @param[in] pUTF8 A UTF8 string, which is null terminated. @return true or false *****************************************************************************/ bool PVRTUnicodeValidUTF8(const PVRTuint8* const pUTF8); #endif /* _PVRTUNICODE_H_ */ /***************************************************************************** End of file (PVRTUnicode.h) *****************************************************************************/