/** @file JCCommonMethod.h @brief @author James @version 1.0 @date 2016_5_12 */ #ifndef __JCCommonMethod_H__ #define __JCCommonMethod_H__ #include #include #include #define MAX_CHARACTER_SIZE 8 namespace laya { #define PI 3.1415926535897932f #define ARC_TO_RAD 0.0174532925199433f /** @brief 转成2的N次方 * @param[in] 输入的值 * @return 返回2的n次方 */ int mathCeilPowerOfTwo(int x); /** @brief 把字符串转换成int * @param[in] 字符串 "#ff00ff" * @return */ unsigned int hexStringToInt( const char* str ); /** @brief 分割字符串 * @param[out] 返回到verctor中 * @param[in] 字符串 * @param[in] 哪个字符分割 */ void splitString(std::vector& p_vOutVector, char* p_sBuffer, char p_pSeperator); /** @brief string转换成int * @param[in] 字符串 * @return 返回int值 */ int stringToInt(const char *p_pszStr); /** @brief string转换成float * @param[in] 字符串 * @return 返回float值 */ float stringToFloat(const char *p_pszStr); /** @brief 返回文件的扩展名字 * @param[in] 文件名字 * @return 返回扩展名 */ const char* getExtName(const char* p_sFileName); /** @brief 替换字符串 */ std::string stringReplace(std::string & str, const std::string & strsrc, const std::string &strdst); /** @brief UTF8转unicode * @param[in] * @param[in] * @return */ int UTF8ToUnicode(unsigned char *ch, int *unicode); /** @brief 把utf8的字符串转成unicode的字符串。 * @param[in] * @param[in] * @param[in] * @return 转换后的字符的个数 */ int UTF8StrToUnicodeStr(unsigned char * utf8_str, unsigned short * unicode_str, int unicode_str_size); /** @brief 把一个unicode的字符拷贝到p中(不管16还是32),会在p中前进,返回当前位置(下一个位置)。 * @param[in] * @param[in] * @return 返回当前位置(下一个位置)。 */ char* UnicodeToUTF8(unsigned int unicode, char *p); /** @brief utf8_str_size 是提供的buffer的大小。如果空间不足,则返回NULL。 transedNum 为实际转换了多少个unicode字符。 * usedBuff是使用了多少空间,如果转换成功了,最后会有一个0 * @param[in] * @param[in] * @param[in] * @return 如果空间不足,则返回NULL */ char* UnicodeStrToUTF8Str(short * unicode_str, char * utf8_str, int utf8_str_size, int& transedUni, int& usedBuff); /** @brief utf8 to unicode * @param[in] * @param[in] * @param[in] * @param[out] * @return */ std::wstring utf8_unicode(const char* str); /** @brief 分割路径 * @param[in] 文件名字 * @param[in] 返回vertor * @return 是否成功 */ bool splitPath(const char* p_pszPath, std::vector& out); /** @brief nomailizePath * @param[in] * @param[in] * @param[out] * @return */ std::string normalizePath(const char* p_pszPath, bool toLowerCase, int& p_nProtocol); /** @brief paserUTF8 * @param[in] * @param[in] * @return */ void paserUTF8(std::string p_sBuffer, long p_nSize, std::vector& p_vOut); /** @brief 字符串转小写 * @param[in] 字符串 * @return 转换后的字符串 */ char* LayaStrlwr(char* p_str); /** @brief 字符串转大写 * @param[in] 字符串 * @return 转换后的字符串 */ char* LayaStrupr(char* p_str); /** @brief 把一个字符串转为小写。直接修改字符串. 如果是utf8的则没问题。否则不要调用这个。 * @param[in] 字符串 * @return 转换后的字符串 */ char* UTF8ToLowercase(char* p_pszStr); /** @brief 得到一个url的转为小写的扩展名 * @param[in] 输入的url * @return 返回扩展名 */ std::string getLowercaseExtOfUrl(const char* p_pszUrl); /** @brief UrlEncode * @param[in] 输入的字符串 * @return 返回的字符串 */ std::string UrlEncode(const char* str); /** @brief UrlDecode * @param[in] 输入的字符串 * @return 返回的字符串 */ std::string UrlDecode(const char* str); /** @brief 获得当前时间 * @return 返回当前时间 */ double tmGetCurms(); /** @brief 获得app使用的内存 * @return 返回内存值 */ int getAppUsedMem(); int hashstr(const char *s); void mulMatrixArray(float* leftMatrixE, float* rightMatrix, float* outArray, int nOffset); void flipPixelsY(uint8_t* pixels, int bytesPerRow, int rows); bool IsTextUTF8(char* str, unsigned long length); }; //------------------------------------------------------------------------------ #endif //__JCCommonMethod_H__ //-----------------------------END FILE--------------------------------