From cb9232b3ab413fae7bcc2b94abd70f18ca02b263 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 03 十二月 2024 11:20:32 +0800
Subject: [PATCH] 增加铃声;增加TCP/UDP连接选择

---
 Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/linphone.framework/Headers/utils/utils.h |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/linphone.framework/Headers/utils/utils.h b/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/linphone.framework/Headers/utils/utils.h
index 6e0493d..46f195f 100755
--- a/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/linphone.framework/Headers/utils/utils.h
+++ b/Shared.IOS.HDLLinphoneSDK/Shared.IOS.HDLLinphoneSDK/Library/linphone.framework/Headers/utils/utils.h
@@ -26,6 +26,7 @@
 #include <string>
 #include <utility>
 #include <vector>
+#include <map>
 
 #include "linphone/utils/enum-generator.h"
 
@@ -105,6 +106,7 @@
 	LINPHONE_PUBLIC std::string stringToLower (const std::string &str);
 
 	LINPHONE_PUBLIC char *utf8ToChar (uint32_t ic);
+	LINPHONE_PUBLIC std::string utf8ToString (const std::vector<uint32_t>& chars);
 
 	LINPHONE_PUBLIC inline std::string cStringToCppString (const char *str) {
 		return str ? str : "";
@@ -153,8 +155,48 @@
 	LINPHONE_PUBLIC std::string localeToUtf8 (const std::string &str);
 	LINPHONE_PUBLIC std::string utf8ToLocale (const std::string &str);
 	LINPHONE_PUBLIC std::string convertAnyToUtf8 (const std::string &str, const std::string &encoding);
+	LINPHONE_PUBLIC std::string quoteStringIfNotAlready(const std::string &str);
+
+	
+	class Version{
+		public:
+			LINPHONE_PUBLIC Version() = default;
+			LINPHONE_PUBLIC Version(int major, int minor);
+			LINPHONE_PUBLIC Version(int major, int minor, int patch);
+			LINPHONE_PUBLIC Version(const std::string &version);
+			
+			LINPHONE_PUBLIC int compare(const Version &other) const;
+			LINPHONE_PUBLIC inline bool operator<(const Version &other)const{
+				return compare(other) < 0;
+			}
+			LINPHONE_PUBLIC inline bool operator<=(const Version &other)const{
+				return compare(other) <= 0;
+			}
+			LINPHONE_PUBLIC inline bool operator>(const Version &other)const{
+				return compare(other) > 0;
+			}
+			LINPHONE_PUBLIC inline bool operator>=(const Version &other)const{
+				return compare(other) >= 0;
+			}
+			LINPHONE_PUBLIC inline bool operator==(const Version &other)const{
+				return compare(other) == 0;
+			}
+			LINPHONE_PUBLIC inline int getMajor()const {return mMajor;};
+			LINPHONE_PUBLIC inline int getMinor()const {return mMinor;};
+			LINPHONE_PUBLIC inline int getPatch()const {return mPatch;};
+		private:
+			int mMajor = 0, mMinor = 0, mPatch = 0;
+	};
+	
+	/**
+	 * Parse a capability descriptor string such our org.linphone.specs, made of comma separated keyword with optional version numbers:
+	 * "lime,groupchat/1.1,ephemeral". If absent, the version number is arbitrary supposed to be 1.0.
+	 */
+	LINPHONE_PUBLIC std::map<std::string, Version> parseCapabilityDescriptor(const std::string &descriptor);
 }
 
+LINPHONE_PUBLIC std::ostream &operator<<(std::ostream & ostr, const Utils::Version &version);
+
 LINPHONE_END_NAMESPACE
 
 #endif // ifndef _L_UTILS_H_

--
Gitblit v1.8.0