/*!****************************************************************************
|
|
@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)
|
*****************************************************************************/
|