From 62a049959c1a0cda84e3b3e5ec8b0fd9a2806818 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Fri, 20 May 2016 11:02:27 +0200 Subject: [PATCH 01/41] Addiing sqlite3_bctbx_vfs to Makefile.am. --- coreapi/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index 4d2f230d2..a4083deeb 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -43,6 +43,7 @@ linphone_include_HEADERS=\ lpc2xml.h \ lpconfig.h \ sipsetup.h \ + sqlite3_bctbx_vfs.h \ xml2lpc.h \ xmlrpc.h \ vcard.h \ @@ -90,6 +91,7 @@ liblinphone_la_SOURCES=\ sal.c \ siplogin.c \ sipsetup.c \ + sqlite3_bctbx_vfs.c \ xml2lpc.c \ xml.c \ xmlrpc.c \ From 8a25d2f703384a4daf5e48c6343aabf1723a1e66 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 20 May 2016 11:35:28 +0200 Subject: [PATCH 02/41] update for lastest bctoolbox --- coreapi/sqlite3_bctbx_vfs.c | 1 - 1 file changed, 1 deletion(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 940dfff2b..04203ed2c 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -267,7 +267,6 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file *pOutFlags = flags; } pFile->base.pMethods = &sqlite3_bctbx_io; - pFile->pbctbx_file->filename = (char*)fName; return SQLITE_OK; } From 9ae188f4c73e5a9130ba36df296e05ebcf872068 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 20 May 2016 12:05:14 +0200 Subject: [PATCH 03/41] fix compilation error --- coreapi/Makefile.am | 1 - coreapi/sqlite3_bctbx_vfs.c | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index a4083deeb..ae407244b 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -91,7 +91,6 @@ liblinphone_la_SOURCES=\ sal.c \ siplogin.c \ sipsetup.c \ - sqlite3_bctbx_vfs.c \ xml2lpc.c \ xml.c \ xmlrpc.c \ diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 04203ed2c..00de686d6 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -157,7 +157,9 @@ static int sqlite3bctbx_DeviceCharacteristics(sqlite3_file *p){ * @return SQLITE_OK on success, SALITE_NOTFOUND otherwise. */ static int sqlite3bctbx_FileControl(sqlite3_file *p, int op, void *pArg){ +#ifdef SQLITE_FCNTL_MMAP_SIZE if (op == SQLITE_FCNTL_MMAP_SIZE) return SQLITE_OK; +#endif return SQLITE_NOTFOUND; } From 57561bb120910d8c3a3d18a71d99fdd78c1b1e9c Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 20 May 2016 13:55:00 +0200 Subject: [PATCH 04/41] fix compilation error with no sqlite support --- coreapi/call_log.c | 2 -- coreapi/friend.c | 2 +- coreapi/linphonecore.c | 7 +++++++ coreapi/linphonecore.h | 1 - coreapi/lpconfig.c | 1 + coreapi/message_storage.c | 2 +- coreapi/private.h | 9 ++++++--- coreapi/sqlite3_bctbx_vfs.h | 11 ++++++++--- 8 files changed, 24 insertions(+), 11 deletions(-) diff --git a/coreapi/call_log.c b/coreapi/call_log.c index b90afcf74..1e8a3786c 100644 --- a/coreapi/call_log.c +++ b/coreapi/call_log.c @@ -373,8 +373,6 @@ void linphone_core_call_log_storage_init(LinphoneCore *lc) { int ret; const char *errmsg; sqlite3 *db; - - sqlite3_bctbx_vfs_register(1); linphone_core_call_log_storage_close(lc); diff --git a/coreapi/friend.c b/coreapi/friend.c index d9d5bbe7c..2251b370c 100644 --- a/coreapi/friend.c +++ b/coreapi/friend.c @@ -1138,7 +1138,7 @@ void linphone_core_friends_storage_init(LinphoneCore *lc) { const char *errmsg; sqlite3 *db; const MSList *friends_lists = NULL; - sqlite3_bctbx_vfs_register(1); + linphone_core_friends_storage_close(lc); ret = _linphone_sqlite3_open(lc->friends_db_file, &db); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index aedc39a40..36de8b3d0 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -26,6 +26,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "lime.h" #include "conference_private.h" +#ifdef SQLITE_STORAGE_ENABLED +#include "sqlite3_bctbx_vfs.h" +#endif + #include #include #include @@ -1777,6 +1781,9 @@ static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtab if (remote_provisioning_uri == NULL) { linphone_configuring_terminated(lc, LinphoneConfiguringSkipped, NULL); } // else linphone_core_start will be called after the remote provisioning (see linphone_core_iterate) +#ifdef SQLITE_STORAGE_ENABLED + sqlite3_bctbx_vfs_register(1); +#endif } LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable, diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 92b1eb09b..775ac4a86 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -25,7 +25,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "mediastreamer2/msvideo.h" #include "mediastreamer2/mediastream.h" #include "mediastreamer2/bitratecontrol.h" -#include "sqlite3_bctbx_vfs.h" #ifdef IN_LINPHONE #include "sipsetup.h" diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 131378cc0..39c2f9d7f 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -25,6 +25,7 @@ #define MAX_LEN 16384 #include "linphonecore.h" +#include "bctoolbox/bc_vfs.h" #include #include diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 7787734f4..60a759b45 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -662,7 +662,7 @@ void linphone_core_message_storage_init(LinphoneCore *lc){ int ret; const char *errmsg; sqlite3 *db = NULL; - sqlite3_bctbx_vfs_register(1); + linphone_core_message_storage_close(lc); ret=_linphone_sqlite3_open(lc->chat_db_file,&db); diff --git a/coreapi/private.h b/coreapi/private.h index 436228f3d..a85259154 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -38,6 +38,7 @@ #include "vcard.h" #include +#include #include #include @@ -53,9 +54,6 @@ #include "upnp.h" #endif //BUILD_UPNP -#ifdef SQLITE_STORAGE_ENABLED -#include "sqlite3.h" -#endif #ifndef LIBLINPHONE_VERSION #define LIBLINPHONE_VERSION LINPHONE_VERSION @@ -123,6 +121,11 @@ #include #include + +#ifdef SQLITE_STORAGE_ENABLED +#include +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/coreapi/sqlite3_bctbx_vfs.h b/coreapi/sqlite3_bctbx_vfs.h index 001c1b142..d1e533a27 100644 --- a/coreapi/sqlite3_bctbx_vfs.h +++ b/coreapi/sqlite3_bctbx_vfs.h @@ -17,15 +17,18 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef sqlite3_bctx_vfs_h +#define sqlite3_bctx_vfs_h + #include #include #include #include -#include -#include "sqlite3.h" #include +#include "sqlite3.h" + /* ** The maximum pathname length supported by this VFS. @@ -62,4 +65,6 @@ VFS API to register this VFS to sqlite3 VFS *****************************************************/ sqlite3_vfs *sqlite3_bctbx_vfs_create(void); void sqlite3_bctbx_vfs_register(int makeDefault); -void sqlite3_bctbx_vfs_unregister(void); \ No newline at end of file +void sqlite3_bctbx_vfs_unregister(void); + +#endif From 6649418220ea771f13092190d38dcb95383d6a78 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Fri, 20 May 2016 16:15:09 +0200 Subject: [PATCH 05/41] Cosmetic - renaming fun, moving doc . --- coreapi/lpconfig.c | 12 ++++++------ coreapi/sqlite3_bctbx_vfs.c | 32 +------------------------------- coreapi/sqlite3_bctbx_vfs.h | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 39c2f9d7f..6e7606adf 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -432,7 +432,7 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa #endif /*_WIN32*/ /*open with r+ to check if we can write on it later*/ - pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,lpconfig->filename, "r+"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->filename, "r+"); fd = pFile->fd; lpconfig->pFile = pFile; @@ -464,7 +464,7 @@ fail: int lp_config_read_file(LpConfig *lpconfig, const char *filename){ char* path = lp_realpath(filename, NULL); int fd=-1; - bctbx_vfs_file_t* pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs, path, "r"); + bctbx_vfs_file_t* pFile = bctbx_file_open(lpconfig->g_bctbx_vfs, path, "r"); fd = pFile->fd; if (fd != -1){ ms_message("Reading config information from %s", path); @@ -761,7 +761,7 @@ int lp_config_sync(LpConfig *lpconfig){ /* don't create group/world-accessible files */ (void) umask(S_IRWXG | S_IRWXO); #endif - pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "w"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "w"); lpconfig->pFile = pFile; fd = pFile->fd; if (fd == -1 ){ @@ -902,7 +902,7 @@ bool_t lp_config_relative_file_exists(const LpConfig *lpconfig, const char *file if(realfilepath == NULL) return FALSE; - pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath, "r"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath, "r"); ms_free(realfilepath); if (pFile->fd != -1) { bctbx_file_close(pFile); @@ -935,7 +935,7 @@ void lp_config_write_relative_file(const LpConfig *lpconfig, const char *filenam goto end; } - pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath, "w"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath, "w"); fd = pFile->fd; if(fd == -1) { @@ -971,7 +971,7 @@ int lp_config_read_relative_file(const LpConfig *lpconfig, const char *filename, goto err; } - pFile = bctbx_file_create_and_open(lpconfig->g_bctbx_vfs,realfilepath,"r"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,realfilepath,"r"); if (pFile !=NULL) fd = pFile->fd; diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 00de686d6..79512172e 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -273,27 +273,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file return SQLITE_OK; } -/** - * Returns a sqlite3_vfs pointer to the VFS named sqlite3bctbx_vfs - * implemented in this file. - * Methods not implemented: - * xDelete - * xAccess - * xFullPathname - * xDlOpen - * xDlError - * xDlSym - * xDlClose - * xRandomness - * xSleep - * xCurrentTime , xCurrentTimeInt64, - * xGetLastError - * xGetSystemCall - * xSetSystemCall - * xNextSystemCall - * To make the VFS available to SQLite - * @return Pointer to bctbx_vfs. - */ + sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ static sqlite3_vfs bctbx_vfs = { @@ -319,13 +299,6 @@ sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ } -/** - * Registers sqlite3bctbx_vfs to SQLite VFS. If makeDefault is 1, - * the VFS will be used by default. - * Methods not implemented by sqlite3_bctbx_vfs are initialized to the one - * used by the unix-none VFS where all locking file operations are no-ops. - * @param makeDefault set to 1 to make the newly registered VFS be the default one, set to 0 instead. - */ void sqlite3_bctbx_vfs_register( int makeDefault){ sqlite3_vfs* pVfsToUse = sqlite3_bctbx_vfs_create(); sqlite3_vfs* pDefault = sqlite3_vfs_find("unix-none"); @@ -353,9 +326,6 @@ void sqlite3_bctbx_vfs_register( int makeDefault){ } -/** - * Unregisters sqlite3bctbx_vfs from SQLite. - */ void sqlite3_bctbx_vfs_unregister(void) { sqlite3_vfs* pVfs = sqlite3_vfs_find("sqlite3bctbx_vfs"); diff --git a/coreapi/sqlite3_bctbx_vfs.h b/coreapi/sqlite3_bctbx_vfs.h index d1e533a27..701e5f975 100644 --- a/coreapi/sqlite3_bctbx_vfs.h +++ b/coreapi/sqlite3_bctbx_vfs.h @@ -63,8 +63,43 @@ struct sqlite3_bctbx_vfs { /**************************************************** VFS API to register this VFS to sqlite3 VFS *****************************************************/ + +/** + * Returns a sqlite3_vfs pointer to the VFS named sqlite3bctbx_vfs + * implemented in this file. + * Methods not implemented: + * xDelete + * xAccess + * xFullPathname + * xDlOpen + * xDlError + * xDlSym + * xDlClose + * xRandomness + * xSleep + * xCurrentTime , xCurrentTimeInt64, + * xGetLastError + * xGetSystemCall + * xSetSystemCall + * xNextSystemCall + * To make the VFS available to SQLite + * @return Pointer to bctbx_vfs. + */ sqlite3_vfs *sqlite3_bctbx_vfs_create(void); + +/** + * Registers sqlite3bctbx_vfs to SQLite VFS. If makeDefault is 1, + * the VFS will be used by default. + * Methods not implemented by sqlite3_bctbx_vfs are initialized to the one + * used by the unix-none VFS where all locking file operations are no-ops. + * @param makeDefault set to 1 to make the newly registered VFS be the default one, set to 0 instead. + */ void sqlite3_bctbx_vfs_register(int makeDefault); + + +/** + * Unregisters sqlite3bctbx_vfs from SQLite. + */ void sqlite3_bctbx_vfs_unregister(void); #endif From cdca50a17ef9be2c7a1f0f1eea4b6c646a408f14 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 20 May 2016 16:29:53 +0200 Subject: [PATCH 06/41] Fix sqlite storage when building with CMake. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 19932aa56..b6144be09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,7 +118,7 @@ if(ENABLE_TUNNEL) set(ENABLE_TUNNEL OFF CACHE BOOL "Enable tunnel support." FORCE) endif() endif() -if(SQLITE_STORAGE_ENABLED) +if(ENABLE_SQLITE_STORAGE) find_package(Sqlite3 REQUIRED) endif() if(ENABLE_NOTIFY) @@ -204,7 +204,7 @@ if(ZLIB_FOUND) endif() if(SQLITE3_FOUND) include_directories(${SQLITE3_INCLUDE_DIRS}) - if(SQLITE_STORAGE_ENABLED) + if(ENABLE_SQLITE_STORAGE) add_definitions("-DSQLITE_STORAGE_ENABLED") endif() endif() From f712c75b663fe4899fd3bad9c09a0e440fd3ea97 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 20 May 2016 16:44:03 +0200 Subject: [PATCH 07/41] fix bug in previous commit in CMakeList --- coreapi/sqlite3_bctbx_vfs.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 79512172e..26c3b981f 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -71,11 +71,10 @@ static int sqlite3bctbx_Read(sqlite3_file *p, void *buf, int count, sqlite_int64 return SQLITE_OK; } else if( ret >= 0 ){ - + /*fill in unread portion of buffer, as requested by sqlite3 documentation*/ + memset(((uint8_t*)buf) + ret, 0, count-ret); return SQLITE_IOERR_SHORT_READ; - } - - else { + }else { return SQLITE_IOERR_READ; } From 1a1440e2dc0028883d59439dd7aa520400737e78 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 20 May 2016 16:56:50 +0200 Subject: [PATCH 08/41] Fix compilation. --- coreapi/sqlite3_bctbx_vfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 26c3b981f..256e6cbca 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -259,7 +259,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file if( flags&SQLITE_OPEN_READONLY ) openFlags |= O_RDONLY; if( flags&SQLITE_OPEN_READWRITE ) openFlags |= O_RDWR; - pFile->pbctbx_file = bctbx_file_create_and_open2(bc_create_vfs(), fName, openFlags); + pFile->pbctbx_file = bctbx_file_open2(bc_create_vfs(), fName, openFlags); if( pFile->pbctbx_file == NULL){ return SQLITE_CANTOPEN; } From 4e274331e7d3c2689804286c25c640574283e650 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Fri, 20 May 2016 16:57:14 +0200 Subject: [PATCH 09/41] Update ortp and mediastreamer submodules. --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index ba1083047..c6310fe63 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ba1083047f6ec4e812fb3f6c13facb33ce4ab407 +Subproject commit c6310fe63c6af8e8c3fef49a671ab1acdbd4c06e diff --git a/oRTP b/oRTP index 5d4738492..5b1c601c7 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 5d4738492a9fd1018ad2508c1b7729766e980b29 +Subproject commit 5b1c601c74c2b3e0d4ab247c08a7b2ef3fb00e85 From 0a56f58fd702a518cbf53d4aab388f5c572e4ac1 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 23 May 2016 10:47:18 +0200 Subject: [PATCH 10/41] Update ms2 submodule. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index c6310fe63..24d1f4323 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit c6310fe63c6af8e8c3fef49a671ab1acdbd4c06e +Subproject commit 24d1f43234e9dcf07f6c803d9aa94317fe44dbf0 From 2575d9736e919b57ba007c0a88c4151da1d910f3 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 23 May 2016 11:27:39 +0200 Subject: [PATCH 11/41] Remove deprecated Visual Studio solution for Windows 10. --- build/windows10/liblinphone-tester/App.xaml | 16 - .../windows10/liblinphone-tester/App.xaml.cs | 132 ----- .../ApplicationInsights.config | 23 - .../liblinphone-tester/Assets/Logo.png | Bin 11783 -> 0 bytes .../liblinphone-tester/Assets/SmallLogo.png | Bin 2157 -> 0 bytes .../Assets/SplashScreen.png | Bin 29889 -> 0 bytes .../liblinphone-tester/Assets/StoreLogo.png | Bin 2682 -> 0 bytes .../liblinphone-tester/Assets/WideLogo.png | Bin 21480 -> 0 bytes .../DataModel/UnitTestDataSource.cs | 251 --------- .../liblinphone-tester/MainPage.xaml | 128 ----- .../liblinphone-tester/MainPage.xaml.cs | 200 ------- .../liblinphone-tester/Package.appxmanifest | 37 -- .../Properties/AssemblyInfo.cs | 29 -- .../Properties/Default.rd.xml | 31 -- ...blinphone-tester-runtime-component.vcxproj | 142 ----- .../liblinphone-tester-static.vcxproj | 130 ----- .../liblinphone-tester.csproj | 328 ------------ .../liblinphone-tester/liblinphone-tester.sln | 488 ------------------ .../liblinphone-tester_TemporaryKey.pfx | Bin 2803 -> 0 bytes .../windows10/liblinphone-tester/project.json | 19 - build/windows10/liblinphone/liblinphone.sln | 230 --------- .../windows10/liblinphone/liblinphone.vcxproj | 192 ------- build/windows10/liblinphone/version.bat | 22 - 23 files changed, 2398 deletions(-) delete mode 100644 build/windows10/liblinphone-tester/App.xaml delete mode 100644 build/windows10/liblinphone-tester/App.xaml.cs delete mode 100644 build/windows10/liblinphone-tester/ApplicationInsights.config delete mode 100644 build/windows10/liblinphone-tester/Assets/Logo.png delete mode 100644 build/windows10/liblinphone-tester/Assets/SmallLogo.png delete mode 100644 build/windows10/liblinphone-tester/Assets/SplashScreen.png delete mode 100644 build/windows10/liblinphone-tester/Assets/StoreLogo.png delete mode 100644 build/windows10/liblinphone-tester/Assets/WideLogo.png delete mode 100644 build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs delete mode 100644 build/windows10/liblinphone-tester/MainPage.xaml delete mode 100644 build/windows10/liblinphone-tester/MainPage.xaml.cs delete mode 100644 build/windows10/liblinphone-tester/Package.appxmanifest delete mode 100644 build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs delete mode 100644 build/windows10/liblinphone-tester/Properties/Default.rd.xml delete mode 100644 build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj delete mode 100644 build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj delete mode 100644 build/windows10/liblinphone-tester/liblinphone-tester.csproj delete mode 100644 build/windows10/liblinphone-tester/liblinphone-tester.sln delete mode 100644 build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx delete mode 100644 build/windows10/liblinphone-tester/project.json delete mode 100644 build/windows10/liblinphone/liblinphone.sln delete mode 100644 build/windows10/liblinphone/liblinphone.vcxproj delete mode 100644 build/windows10/liblinphone/version.bat diff --git a/build/windows10/liblinphone-tester/App.xaml b/build/windows10/liblinphone-tester/App.xaml deleted file mode 100644 index 8ed2e3f95..000000000 --- a/build/windows10/liblinphone-tester/App.xaml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - diff --git a/build/windows10/liblinphone-tester/App.xaml.cs b/build/windows10/liblinphone-tester/App.xaml.cs deleted file mode 100644 index f3c4d0801..000000000 --- a/build/windows10/liblinphone-tester/App.xaml.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.ApplicationModel; -using Windows.ApplicationModel.Activation; -using Windows.Foundation; -using Windows.Foundation.Collections; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Controls.Primitives; -using Windows.UI.Xaml.Data; -using Windows.UI.Xaml.Input; -using Windows.UI.Xaml.Media; -using Windows.UI.Xaml.Navigation; - -// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=402347&clcid=0x409 - -namespace liblinphone_tester -{ - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - sealed partial class App : Application - { - /// - /// Allows tracking page views, exceptions and other telemetry through the Microsoft Application Insights service. - /// - public static Microsoft.ApplicationInsights.TelemetryClient TelemetryClient; - - /// - /// Initializes the singleton application object. This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - TelemetryClient = new Microsoft.ApplicationInsights.TelemetryClient(); - - this.InitializeComponent(); - this.Suspending += OnSuspending; - } - - /// - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used such as when the application is launched to open a specific file. - /// - /// Details about the launch request and process. - protected override void OnLaunched(LaunchActivatedEventArgs e) - { - -#if DEBUG - if (System.Diagnostics.Debugger.IsAttached) - { - this.DebugSettings.EnableFrameRateCounter = true; - } -#endif - - Frame rootFrame = Window.Current.Content as Frame; - - // Do not repeat app initialization when the Window already has content, - // just ensure that the window is active - if (rootFrame == null) - { - // Create a Frame to act as the navigation context and navigate to the first page - rootFrame = new Frame(); - - rootFrame.NavigationFailed += OnNavigationFailed; - - if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) - { - //TODO: Load state from previously suspended application - } - - // Place the frame in the current Window - Window.Current.Content = rootFrame; - } - - if (rootFrame.Content == null) - { - // When the navigation stack isn't restored navigate to the first page, - // configuring the new page by passing required information as a navigation - // parameter - rootFrame.Navigate(typeof(MainPage), e.Arguments); - } - // Ensure the current window is active - Window.Current.Activate(); - } - - /// - /// Invoked when Navigation to a certain page fails - /// - /// The Frame which failed navigation - /// Details about the navigation failure - void OnNavigationFailed(object sender, NavigationFailedEventArgs e) - { - throw new Exception("Failed to load Page " + e.SourcePageType.FullName); - } - - /// - /// Invoked when application execution is being suspended. Application state is saved - /// without knowing whether the application will be terminated or resumed with the contents - /// of memory still intact. - /// - /// The source of the suspend request. - /// Details about the suspend request. - private void OnSuspending(object sender, SuspendingEventArgs e) - { - var deferral = e.SuspendingOperation.GetDeferral(); - //TODO: Save application state and stop any background activity - deferral.Complete(); - } - - protected override void OnActivated(IActivatedEventArgs args) - { - if (args.Kind == ActivationKind.Protocol) - { - var protocolArgs = (ProtocolActivatedEventArgs)args; - var uri = protocolArgs.Uri; - Frame rootFrame = Window.Current.Content as Frame; - if (rootFrame == null) - rootFrame = new Frame(); - - rootFrame.NavigationFailed += OnNavigationFailed; - rootFrame.Navigate(typeof(MainPage), uri); - Window.Current.Content = rootFrame; - Window.Current.Activate(); - } - base.OnActivated(args); - } - } -} diff --git a/build/windows10/liblinphone-tester/ApplicationInsights.config b/build/windows10/liblinphone-tester/ApplicationInsights.config deleted file mode 100644 index 8a6452a34..000000000 --- a/build/windows10/liblinphone-tester/ApplicationInsights.config +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/Assets/Logo.png b/build/windows10/liblinphone-tester/Assets/Logo.png deleted file mode 100644 index ecfbad551241f4c60fad2e52cadb3a6228252462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11783 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 R$o-F#Ei0uYSubu9`hRsbzRv&v diff --git a/build/windows10/liblinphone-tester/Assets/SmallLogo.png b/build/windows10/liblinphone-tester/Assets/SmallLogo.png deleted file mode 100644 index 18c25f038006d6e271262b4a5cea02bafc042471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2157 zcmV-z2$J`SP)u%rf+d04A;~)2~O(imH z2PWDlIl1Sa-^=-&?|FXD^ZX7>+N4d|r2S8sOlb7_c39I~Jb$FE93yogRX7cZELhDE zMQJ*Zr1sOG6da=n9NHiqnPD6CSP0=I~a3hQD<8b7plJmo`?@G_{MuS77bRk3r!L?X4)+pHWlJ6(=U~J;TG>Q(U`n2G`85rDL$bOI>{o zhL*Tzm>R^Wi+jwgF5{GG<@5~Y8Hn8XFP>NXy^mJm_3bf4-W0=v8|K%N0iN#c<5TrX ze)-7-e0}3?UOLdvnng4C&eBr++g>nnlEZSOot+ zasy#ULiD6{&2zZ-^%SX0fvulEoj>mB<1l1T0hZ*!tF-nhsOtaeH&O^ zaYk+VrnRTk@!;RPsZMyjaQUgUJhh#MxW|1L%qJQ1xoP7rrUxEYi$fK~sS-I#3OjOE z$vDSgr1VCXldH>k`m$3{XcXu=R`ie$;|g_8Y}tA1=?x28x1|^;M09;+39WCuOO+8m zJ+GF~Iqq-YN15;82_qrPX%W~urC=Qe2U+XLTE~!e3`EKyYgsk7hKE|_ZWWPb6Ib|- zKP|lTl2doyy)8v!;PdpVMI^+~kPHCmOlP@gb0<^dF?<7_k&#K2l1n%xbV}Y970z1A zuvG>lM_=UFnJw_t1t)P?Q_WNn>Hi=cb1dG?*DhcGqmDyV`G)i7RP(EyJ#-F^CauTc zc$aC37;zs0&yethL@D+Lo{;bifiJ{8L*Nr122qyQB}clr(j+HT z1k{$t5Co5+sxc#o6zhhW6#)&&1j)c>IC6LfjDT;7;BkQ?k(F<}u&a6^i6a2v7w0x{ z*Vg^`BHX@g_LvS!>XKa8R5RwmOuH?s2ml77G5 zb2ymLq9d{xr@YoX%&@}Zx+K}ijWqu&EWmklr*ZLu>0Gklg!jP$)KvyNe(6GHRtE2j zS$UQ5FFHb-yK?qa9`5Mj#Dq^W;S(2O)4Ky>x((zb+V`jF>d%f`o0Uv3x4LZP|K4<# zE!}BCTYT7;_osO$odqqrRa9K%fab>U68*#JdzYS}S8d!aL!ssVvl`g2;~-0>SBwF< zuWc_46#)gStZ1D2KGmP<=wVBDKO*q6SG&1>$t><|-%FY2k&Y}@m4cQ+x1(>|3g5VR zc52?Vayo|ch{Ez&RXo$#N8F6QwkJD!s40sPsS^0YmhSYJIeIe%b{-lc?g>tzI_~r6 zKMqh8_lQueLSB_2)nYJN+uSp5;0G^0Irqf2)N`RKwUq%*p%7X!ZZxdrLPx^ht(DR*KzBFfw|@UE}XtT ze@eiCfjmQ2dFM!Gr1_?0jbu;;Ld(HS$XCy-A2U1|_}tt)n^Z33y+VYI`&@VSY`St0 zSyj^3G3*o^n^@bNKMv((J7mIzKVCU!=b~g8H?-}g%oDa?Lo{X+#(R*4kO|HGRlzbn-g zF>eg)-EDh$=+*AgaAafz7NFb+Sv;q@BP`r}Tst~CXDilzLtk-Nkb%8jAc2o(Zx5j>F*KU0dp#W)Lxog?EEJ?aLlo7a7eUw+ye z5%W6?XH!x)AwnRd=`#Xy3K=aas;W5JaPA7$F7F-BZOyoWk$tQ_XBk#&2;F002}g4ZPF&~|JeQscv81Hc^V6100000NkvXXu0mjfatIg> diff --git a/build/windows10/liblinphone-tester/Assets/SplashScreen.png b/build/windows10/liblinphone-tester/Assets/SplashScreen.png deleted file mode 100644 index 0d83a79808b3739c0ec0dbfbbdd308256e52fd91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29889 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 EA2)jil>h($ diff --git a/build/windows10/liblinphone-tester/Assets/StoreLogo.png b/build/windows10/liblinphone-tester/Assets/StoreLogo.png deleted file mode 100644 index bdbfc51e2c9148a21a270a414141ae158ec79ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2682 zcmV-=3WfEFP)ylg4dI8#;C-AuTp3 zE;CJM=(L@*`6DmFKw&zKO+sM8c<7KgOqjMLB%~>+Er=WJ8jLO5vSs-t$$INP_U_&N zo&2#^vV><6KSYv0^qu+5-rYU>`~AN6oU`Y#Fpqi6V;=LE$HhbDWR|U6u(9*(`IfE* z3^|ZAR$W31)>epYky0?q->)6}{Ub7y#Fnnj7}bj=@R232V9TAx#u(d0Ta1Y4WLCxj030Bo4xVbIMbqzK2<;$EX z1x%De>P1+b_Gqk2(o&nmKq2Lt%_k>H&)t4yb79MCeQf&Rl8f4ob4et&bbSINKScTC zr5R7Q-M9>Z*M#>7Vd9IZ-C*nnZgx{qb=>{FHz5 zhTUIVdu8v<&;F9$?N9s`HS$E)=TRPROuKr|vW4=Vh8i~SI7&xDhJU%Xjka8xM_)g| z_m7YBzHEw(E1S7}NeLQc=cjF-m!>m(&dH2L;R#~jHAUerBJaz zHsNr6a~+%C+e$hyZ5)q_$O9MZH*yg^@p*CN;rlxl5-5DXXP9@@r+D&~4t_C^=b>GF ztZJ;~+qZV$xP})Fo?+{o{nQzu)-@^?~;h-j`&^86jk`Sec@acrc>Czm(#H`iRw&yJ01ccA zdhEa%8dO-A@p%6B<*a*gKUr1QEpKA|$`-!0=Oi!njL@3#P>rWh6sr(vl}H4EwfI&k zSxYg3qP6q{AwRxj1=lv$^;%_x5&ZMfia9@%T7!6U&$b(vH9dad3|R%wGrVx;3cm5i zX>Mz-+ zU;8;SURr8|kIlJh{pHKux@)+|m>&^Y<)`abv8+CYnX%9#uO6d!v_y?-aExH&>;ei{ zoncy$#u|wfKeCh}r4U&rB4seL)FuqC|H)OSldiM)eD-I~N9g(PfxoJ8T@Dp0Bv77N zdj&r~K2Cojn3nm;kzsnrO4KGC5{@D17*dWQ={O{-T9~??F!Aq%F(i!48c8G63LGg` z_>bO^R#m-Y&WMag_A`&|J5AOY+81W1H-<;|o+4q+YUA`|K-x8U1`>{taN=XqjfZE1 zq;vM3XX0y#>d~7f0x4stcMN~=N)N#2&S#JAZxXojx!nz$cJ{Wo=>%hbz_)H(#m4{c z;i}psI>Rzu1Fi_3F?dFBjo^qN5*x6J5UGMH7=u;Cst~E*S)n3|D}sxV5T!q$3BOqyzbYsG0!@Ha4{N7$xq&@y%QO#8F zns(<>#q#cjwKQiEjQb(S#(h$*!JX0umI>d|wjf1YeTs5qdGk!3J%f2_JqKf}#6)mW zj6f-}nNR=E;hH%hf(vSHY0U8S{s9&^hJ${EXRo<@mQYJ=k}rLv8PA!mqLxIZ{C;mwJ&Qx5sN_qOuAqobsZ zux?3?bkeQ<%Q0?R+HejDfE$-Ku(o3ntD5Wh#H!|5B&Lu{dwl(t4sKYICA4_wLeRBT*h>%FQ)Fm9Y9~r@$@$|vrB8P_ylp{+yR3^(I+us^E zXS!E#oJ#t$v!&~jqT=d=I0AJ4|Ay;UVr@Ks~ewTz-Va_L0=VeOcN_W0h>B9qqg z!KMuT6Fx)baF*B`1CvxNRIDXbB~nZGaFNLBEV&)WM*)pf6&r6h?FhkC>Y_@ZN>O!6 zBmd8)HRU;R_AmTz?>BKB2FoGqmgM+u?4Yu6P=eBB5nVnCjX7%FC!C&5e&EnPH-6J-zh!J+*{r*=wjUVepLX`5GXiK_aGhQLvKo)Zx!GfrJousZpY0khe5PP6r>rtzm3@PG*8bp4cAOeN=b3?gnfqQo#ItYpvwvWcKmTDj z`v%Vq2`?QT;o9wQ@T1d{akRAhQ8ukP#MZ8NrX4ih)!4e@F&yWw#Rv->LyKb=4+> zgAKY3hR#1=T#N oBj=Ml&0`+(n8!Tk@!Q0&0HgZjdXS3oU;qFB07*qoM6N<$g6#4vQ~&?~ diff --git a/build/windows10/liblinphone-tester/Assets/WideLogo.png b/build/windows10/liblinphone-tester/Assets/WideLogo.png deleted file mode 100644 index 85fd4db8fa81ab0e982fbd2e0b7a23344c6dce57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21480 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%0A8Bkzzr10@TZ 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 diff --git a/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs b/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs deleted file mode 100644 index a5bc5bdc3..000000000 --- a/build/windows10/liblinphone-tester/DataModel/UnitTestDataSource.cs +++ /dev/null @@ -1,251 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using liblinphone_tester_runtime_component; -using System.Collections.ObjectModel; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Data; -using Windows.UI.Xaml.Media; -using System.ComponentModel; -using Windows.UI; -using Windows.UI.Xaml.Documents; -using Windows.UI.Core; - -namespace liblinphone_tester.DataModel -{ - public class OutputTrace - { - public OutputTrace(String lev, String msg) - { - Level = lev; - Msg = msg; - } - - public String Level { get; private set; } - public String Msg { get; private set; } - } - - public class UnitTestSuite - { - public UnitTestSuite(string name) - { - Name = name; - Cases = new ObservableCollection(); - Selected = false; - } - - public string Name { get; private set; } - public bool Selected - { - get { return Cases.All(x => x.Selected); } - set - { - foreach (UnitTestCase c in Cases) - { - c.Selected = value; - } - } - } - public ObservableCollection Cases { get; private set; } - } - - public enum UnitTestCaseState - { - NotRun, - Success, - Failure - } - - public class UnitTestCase : INotifyPropertyChanged - { - public UnitTestCase(UnitTestSuite suite, string name) - { - _suite = new WeakReference(suite); - Name = name; - Selected = false; - State = UnitTestCaseState.NotRun; - Traces = new ObservableCollection(); - } - - public UnitTestSuite Suite - { - get { return _suite.Target as UnitTestSuite; } - } - public string Name { get; private set; } - public bool Selected - { - get { return _selected; } - set - { - _selected = value; - RaisePropertyChanged("Selected"); - } - } - public UnitTestCaseState State - { - get { return _state; } - set - { - _state = value; - RaisePropertyChanged("State"); - } - } - public ObservableCollection Traces - { - get { return _traces; } - set - { - _traces = value; - RaisePropertyChanged("Traces"); - } - } - public CoreDispatcher Dispatcher { get; set; } - - public event PropertyChangedEventHandler PropertyChanged; - - protected void RaisePropertyChanged(string name) - { - if (PropertyChanged != null) - { - PropertyChanged(this, new PropertyChangedEventArgs(name)); - } - } - - private WeakReference _suite; - private bool _selected; - private UnitTestCaseState _state; - private ObservableCollection _traces; - } - - public sealed class UnitTestDataSource - { - private static UnitTestDataSource _unitTestDataSource = new UnitTestDataSource(); - private ObservableCollection _suites = new ObservableCollection(); - - public ObservableCollection Suites - { - get { return this._suites; } - } - - public static IEnumerable GetSuites(LibLinphoneTester tester) - { - return _unitTestDataSource.FillSuites(tester); - } - - private IEnumerable FillSuites(LibLinphoneTester tester) - { - if (this.Suites.Count != 0) return this.Suites; - for (int i = 0; i < tester.nbTestSuites(); i++) - { - UnitTestSuite suite = new UnitTestSuite(tester.testSuiteName(i)); - for (int j = 0; j < tester.nbTests(suite.Name); j++) - { - suite.Cases.Add(new UnitTestCase(suite, tester.testName(suite.Name, j))); - } - this.Suites.Add(suite); - } - return this.Suites; - } - } - - public sealed class UnitTestCaseStateToSymbolConverter : IValueConverter - { - object IValueConverter.Convert(object value, Type targetType, object parametr, string language) - { - if (!value.GetType().Equals(typeof(UnitTestCaseState))) - { - throw new ArgumentException("Only UnitTestCaseState is supported"); - } - if (targetType.Equals(typeof(Symbol))) - { - switch ((UnitTestCaseState)value) - { - case UnitTestCaseState.Success: - return Symbol.Like; - case UnitTestCaseState.Failure: - return Symbol.Dislike; - case UnitTestCaseState.NotRun: - default: - return Symbol.Help; - } - } - else - { - throw new ArgumentException(string.Format("Unsupported type {0}", targetType.FullName)); - } - } - - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language) - { - throw new NotImplementedException(); - } - } - - public sealed class UnitTestCaseStateToSymbolColorConverter : IValueConverter - { - object IValueConverter.Convert(object value, Type targetType, object parameter, string language) - { - if (!value.GetType().Equals(typeof(UnitTestCaseState))) - { - throw new ArgumentException("Only UnitTestCaseState is supported"); - } - if (targetType.Equals(typeof(Brush))) - { - switch ((UnitTestCaseState)value) - { - case UnitTestCaseState.Success: - return new SolidColorBrush(Colors.ForestGreen); - case UnitTestCaseState.Failure: - return new SolidColorBrush(Colors.IndianRed); - case UnitTestCaseState.NotRun: - default: - return new SolidColorBrush(Colors.LightGray); - } - } - else - { - throw new ArgumentException(string.Format("Unsupported format {0}", targetType.FullName)); - } - } - - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language) - { - throw new NotImplementedException(); - } - } - - public sealed class OutputTraceLevelToColorConverter : IValueConverter - { - object IValueConverter.Convert(object value, Type targetType, object parameter, string language) - { - if (!value.GetType().Equals(typeof(String))) - { - throw new ArgumentException("Only String is supported"); - } - if (targetType.Equals(typeof(Brush))) - { - if ((String)value == "Error") - { - return new SolidColorBrush(Colors.IndianRed); - } - else if ((String)value == "Warning") - { - return new SolidColorBrush(Colors.Orange); - } - return new SolidColorBrush(Colors.Black); - } - else - { - throw new ArgumentException(string.Format("Unsupported format {0}", targetType.FullName)); - } - } - - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, string language) - { - throw new NotImplementedException(); - } - } -} diff --git a/build/windows10/liblinphone-tester/MainPage.xaml b/build/windows10/liblinphone-tester/MainPage.xaml deleted file mode 100644 index 2cdea219c..000000000 --- a/build/windows10/liblinphone-tester/MainPage.xaml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/windows10/liblinphone-tester/MainPage.xaml.cs b/build/windows10/liblinphone-tester/MainPage.xaml.cs deleted file mode 100644 index 930e6d5eb..000000000 --- a/build/windows10/liblinphone-tester/MainPage.xaml.cs +++ /dev/null @@ -1,200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Foundation; -using Windows.Foundation.Collections; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Controls.Primitives; -using Windows.UI.Xaml.Data; -using Windows.UI.Xaml.Input; -using Windows.UI.Xaml.Media; -using Windows.UI.Xaml.Navigation; -using liblinphone_tester.DataModel; -using liblinphone_tester_runtime_component; -using System.Threading.Tasks; -using Windows.UI.Core; -using Windows.UI.Xaml.Documents; -using Windows.Storage; - -// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 - -namespace liblinphone_tester -{ - /// - /// An empty page that can be used on its own or navigated to within a Frame. - /// - public sealed partial class MainPage : Page, OutputTraceListener - { - public MainPage() - { - this.InitializeComponent(); - } - - protected override void OnNavigatedTo(NavigationEventArgs e) - { - base.OnNavigatedTo(e); - if ((e.Parameter is Uri) && (e.Parameter.ToString().Equals("liblinphone-tester:autolaunch"))) - { - AutoLaunch(); - } - else - { - LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, true); - _suites = UnitTestDataSource.GetSuites(LibLinphoneTester.Instance); - } - } - - public IEnumerable Suites - { - get { return _suites; } - } - - private IEnumerable _suites; - - private void SelectAll_Click(object sender, RoutedEventArgs e) - { - bool allSelected = Suites.All(x => x.Selected); - foreach (UnitTestSuite suite in Suites) - { - suite.Selected = !allSelected; - } - } - - private void RunSelected_Click(object sender, RoutedEventArgs e) - { - int nbCases = 0; - foreach (UnitTestSuite suite in Suites) - { - foreach (UnitTestCase c in suite.Cases) - { - if (c.Selected) nbCases++; - } - } - if (nbCases == 0) return; - - PrepareRun(nbCases); - - var tup = new Tuple, bool?>(Suites, Verbose.IsChecked); - var t = Task.Factory.StartNew(async (object parameters) => - { - var p = parameters as Tuple, bool?>; - IEnumerable suites = p.Item1; - bool verbose = p.Item2 != null ? (bool)p.Item2 : false; - foreach (UnitTestSuite suite in suites) - { - foreach (UnitTestCase c in suite.Cases) - { - if (c.Selected) - { - await RunUnitTestCase(c, verbose); - } - } - } - }, tup); - } - - private void RunSingle_Click(object sender, RoutedEventArgs e) - { - PrepareRun(1); - - var tup = new Tuple(DisplayedTestCase, Verbose.IsChecked); - var t = Task.Factory.StartNew(async (object parameters) => - { - var p = parameters as Tuple; - UnitTestCase c = p.Item1; - bool verbose = p.Item2 != null ? (bool)p.Item2 : false; - await RunUnitTestCase(c, verbose); - }, tup); - } - - private void PrepareRun(int nbCases) - { - CommandBar.IsEnabled = false; - ProgressIndicator.IsEnabled = true; - ProgressIndicator.Minimum = 0; - ProgressIndicator.Maximum = nbCases; - ProgressIndicator.Value = 0; - LibLinphoneTester.Instance.setOutputTraceListener(this); - } - - private async Task RunUnitTestCase(UnitTestCase c, bool verbose) - { - UnitTestCaseState newState = UnitTestCaseState.NotRun; - await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => - { - RunningTestCase = c; - }); - await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => - { - c.Traces.Clear(); - }); - c.Dispatcher = Dispatcher; - if (LibLinphoneTester.Instance.run(c.Suite.Name, c.Name, verbose)) - { - newState = UnitTestCaseState.Failure; - } - else - { - newState = UnitTestCaseState.Success; - } - await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => - { - c.State = newState; - ProgressIndicator.Value += 1; - if (ProgressIndicator.Value == ProgressIndicator.Maximum) - { - UnprepareRun(); - } - }); - } - - private void UnprepareRun() - { - LibLinphoneTester.Instance.setOutputTraceListener(null); - RunningTestCase = null; - ProgressIndicator.IsEnabled = false; - CommandBar.IsEnabled = true; - } - - private void UnitTestCase_Click(object sender, ItemClickEventArgs e) - { - DisplayedTestCase = (e.ClickedItem as UnitTestCase); - TestResultPage.DataContext = DisplayedTestCase; - TestResultState.Visibility = Visibility.Visible; - TestResultRun.Visibility = Visibility.Visible; - } - - public async void outputTrace(String lev, String msg) - { - await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => - { - if (RunningTestCase != null) - { - RunningTestCase.Traces.Add(new OutputTrace(lev, msg)); - } - }); - } - - private void AutoLaunch() - { - CommandBar.IsEnabled = false; - ProgressIndicator.IsIndeterminate = true; - ProgressIndicator.IsEnabled = true; - LibLinphoneTester.Instance.initialize(ApplicationData.Current.LocalFolder, false); - LibLinphoneTester.Instance.runAllToXml(); - if (LibLinphoneTester.Instance.AsyncAction != null) - { - LibLinphoneTester.Instance.AsyncAction.Completed += (asyncInfo, asyncStatus) => { - App.Current.Exit(); - }; - } - } - - private UnitTestCase RunningTestCase; - private UnitTestCase DisplayedTestCase; - } -} diff --git a/build/windows10/liblinphone-tester/Package.appxmanifest b/build/windows10/liblinphone-tester/Package.appxmanifest deleted file mode 100644 index b8acf8233..000000000 --- a/build/windows10/liblinphone-tester/Package.appxmanifest +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - liblinphone-tester - Belledonne Communications - Assets\StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs b/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs deleted file mode 100644 index d4b2a0c81..000000000 --- a/build/windows10/liblinphone-tester/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("liblinphone-tester")] -[assembly: AssemblyDescription("LibLinphone tester for Windows 10")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Belledonne Communications")] -[assembly: AssemblyProduct("liblinphone-tester-windows10")] -[assembly: AssemblyCopyright("Copyright © 2015 Belledonne Communications")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: ComVisible(false)] \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/Properties/Default.rd.xml b/build/windows10/liblinphone-tester/Properties/Default.rd.xml deleted file mode 100644 index 80a960ce3..000000000 --- a/build/windows10/liblinphone-tester/Properties/Default.rd.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj b/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj deleted file mode 100644 index c1c1fa623..000000000 --- a/build/windows10/liblinphone-tester/liblinphone-tester-runtime-component/liblinphone-tester-runtime-component.vcxproj +++ /dev/null @@ -1,142 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - {acf5ea95-d647-4d0c-8f97-2cd9aae8a2e0} - - - {74cad9d0-d8ae-4896-b71b-b2d9b48f30aa} - - - {8c1bc968-c5c8-4d4b-9ef3-d6a065fc7c97} - - - {6a18bbb9-08d1-41a8-be57-17fc992cc36f} - - - {bb8ebb21-f22c-4a68-99cb-67fa36c495e3} - - - {b84d5c3b-6de5-49c8-b3dd-5eb67b01a527} - - - {266b769a-c04e-424c-9033-7209f0425bc0} - - - {878cf9d3-9761-479e-a715-a1de9f99cb78} - - - {2d0e44c4-e51d-4911-b876-345d1e5e5209} - - - {a34f450d-392d-4660-9618-810bd695b3b0} - - - {545f846d-7f19-4d6d-a50b-172a7c9b61e7} - - - {9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7} - - - - {1ce10f06-8fad-437f-b3d7-3b7a8909a190} - WindowsRuntimeComponent - liblinphone-tester-runtime-component - liblinphone_tester_runtime_component - en-US - 14.0 - true - Windows Store - 10 - 10.0.10240.0 - 10.0.10069.0 - - - - DynamicLibrary - true - v140 - - - DynamicLibrary - false - true - v140 - - - - - - - - - - - - false - $(SolutionDir)$(Platform)\$(Configuration)\ - - - - NotUsing - IN_LINPHONE;_WINRT_DLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - 28204 - $(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories) - - - Console - false - - - - - NotUsing - IN_LINPHONE;_WINRT_DLL;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - 28204 - $(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;%(AdditionalIncludeDirectories) - - - Console - false - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj b/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj deleted file mode 100644 index b5cb1b46c..000000000 --- a/build/windows10/liblinphone-tester/liblinphone-tester-static/liblinphone-tester-static.vcxproj +++ /dev/null @@ -1,130 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {b6cdf482-7da3-43d4-9b12-70150106c191} - - - {025e28a8-9dfb-4015-ad56-19896aa6cc9b} - - - {88e3c241-eb6f-4c84-80dc-89b8961daf80} - - - {2e56b851-9d8d-40e5-84bb-e4ee63b71d25} - - - {c7139899-d8bc-48a3-a437-6844a8baabef} - - - - {9eb3fe8d-2d91-4d29-a3bb-98ddb51d45b7} - StaticLibrary - liblinphone-tester-static - liblinphone_tester_static - en-US - 14.0 - true - Windows Store - 10 - 10.0.10240.0 - 10.0.10069.0 - - - - StaticLibrary - true - v140 - - - StaticLibrary - false - true - v140 - - - - - - - - - - - - false - $(SolutionDir)$(Platform)\$(Configuration)\ - - - - NotUsing - false - true - $(SolutionDir)$(Platform)\$(Configuration)\include;$(ProjectDir)..\..\..\..\tester;$(ProjectDir)..\..\..\..\tester\common;$(ProjectDir)..\..\liblinphone;$(ProjectDir)..\..\..\..\coreapi;$(ProjectDir)..\..\..\..\include;$(ProjectDir)..\..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\..\belle-sip\include;$(ProjectDir)..\..\..\..\..\sqlite;$(ProjectDir)..\..\..\..\..\zlib;$(ProjectDir)..\..\..\..\..\cunit\build\windows10\cunit\$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) - BC_CONFIG_FILE="config.h";IN_LINPHONE;MSG_STORAGE_ENABLED;VIDEO_ENABLED;HAVE_CU_GET_SUITE;HAVE_ZLIB;_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - false - false - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone-tester/liblinphone-tester.csproj b/build/windows10/liblinphone-tester/liblinphone-tester.csproj deleted file mode 100644 index 7cf0be904..000000000 --- a/build/windows10/liblinphone-tester/liblinphone-tester.csproj +++ /dev/null @@ -1,328 +0,0 @@ - - - - - Debug - x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5} - AppContainerExe - Properties - liblinphone_tester - liblinphone-tester - en-US - UAP - 10.0.10240.0 - 10.0.10069.0 - 14 - true - 512 - {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - liblinphone-tester_TemporaryKey.pfx - - - true - bin\ARM\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - ARM - false - prompt - true - true - - - true - bin\x64\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - x64 - false - prompt - true - - - bin\x64\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - x64 - false - prompt - true - true - - - true - bin\x86\Debug\ - DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP - ;2008 - full - x86 - false - prompt - true - - - bin\x86\Release\ - TRACE;NETFX_CORE;WINDOWS_UWP - true - ;2008 - pdbonly - x86 - false - prompt - true - true - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - App.xaml - - - - MainPage.xaml - - - - - - Designer - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - - - {1ce10f06-8fad-437f-b3d7-3b7a8909a190} - liblinphone-tester-runtime-component - - - - - 14.0 - - - - XCopy /I /Y $(ProjectDir)..\..\..\tester\messages.db $(ProjectDir)Assets\ -XCopy /I /Y $(ProjectDir)..\..\..\tester\tester_hosts $(ProjectDir)Assets\ -XCopy /I /Y $(ProjectDir)..\..\..\tester\certificates\altname $(ProjectDir)Assets\certificates\altname -XCopy /I /Y $(ProjectDir)..\..\..\tester\certificates\cn $(ProjectDir)Assets\certificates\cn -XCopy /I /Y $(ProjectDir)..\..\..\tester\images $(ProjectDir)Assets\images -XCopy /I /Y $(ProjectDir)..\..\..\tester\rcfiles $(ProjectDir)Assets\rcfiles -XCopy /I /Y $(ProjectDir)..\..\..\tester\sounds $(ProjectDir)Assets\sounds -XCopy /I /Y $(ProjectDir)..\..\..\tester\common $(ProjectDir)Assets\common - - - diff --git a/build/windows10/liblinphone-tester/liblinphone-tester.sln b/build/windows10/liblinphone-tester/liblinphone-tester.sln deleted file mode 100644 index 376919bff..000000000 --- a/build/windows10/liblinphone-tester/liblinphone-tester.sln +++ /dev/null @@ -1,488 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "liblinphone-tester", "liblinphone-tester.csproj", "{EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone-tester-static", "liblinphone-tester-static\liblinphone-tester-static.vcxproj", "{9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone", "..\liblinphone\liblinphone.vcxproj", "{C7139899-D8BC-48A3-A437-6844A8BAABEF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj", "{88E3C241-EB6F-4C84-80DC-89B8961DAF80}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ortp", "..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj", "{2E56B851-9D8D-40E5-84BB-E4EE63B71D25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srtp", "..\..\..\..\srtp\build\windows10\srtp\srtp.vcxproj", "{59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml2", "..\..\..\..\build\xml2\xml2.vcxproj", "{2B04DE79-4D33-4405-AC01-C89E0593A71D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polarssl", "..\..\..\..\polarssl\build\windows10\polarssl\polarssl.vcxproj", "{88768DD9-5110-4AC8-8B0E-41CD7713E1A2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "..\..\..\..\speex\build\windows10\speex\speex.vcxproj", "{971DD379-1C2D-44D2-9285-FDA556C48176}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speexdsp", "..\..\..\..\speex\build\windows10\speexdsp\speexdsp.vcxproj", "{104BF91B-8314-4328-A996-90B8DF6052AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "..\..\..\..\opus\build\windows10\opus\opus.vcxproj", "{81AF1025-E0EE-4AD6-988D-2EF162778693}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzrtp", "..\..\..\..\bzrtp\build\windows10\bzrtp\bzrtp.vcxproj", "{45C7723D-3107-4906-9633-F43ABE8A7147}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsm", "..\..\..\..\gsm\build\windows10\gsm\gsm.vcxproj", "{EF1103C7-8AAC-464B-BA31-86B87246FA72}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "belle-sip", "..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj", "{B6CDF482-7DA3-43D4-9B12-70150106C191}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "antlr3c", "..\..\..\..\antlr3\runtime\C\build\windows10\antlr3c\antlr3c.vcxproj", "{01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj", "{A34F450D-392D-4660-9618-810BD695B3B0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "..\..\..\..\build\sqlite\sqlite.vcxproj", "{74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone-tester-runtime-component", "liblinphone-tester-runtime-component\liblinphone-tester-runtime-component.vcxproj", "{1CE10F06-8FAD-437F-B3D7-3B7A8909A190}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cunit", "..\..\..\..\cunit\build\windows10\cunit\cunit.vcxproj", "{025E28A8-9DFB-4015-AD56-19896AA6CC9B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsamr", "..\..\..\..\msamr\build\windows10\libmsamr\libmsamr.vcxproj", "{8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsilbc", "..\..\..\..\msilbc\build\windows10\libmsilbc\libmsilbc.vcxproj", "{6A18BBB9-08D1-41A8-BE57-17FC992CC36F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmssilk", "..\..\..\..\mssilk\build\windows10\libmssilk\libmssilk.vcxproj", "{B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswasapi", "..\..\..\..\mswasapi\windows10\libmswasapi\libmswasapi.vcxproj", "{266B769A-C04E-424C-9033-7209F0425BC0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswebrtc", "..\..\..\..\mswebrtc\build\windows10\libmswebrtc\libmswebrtc.vcxproj", "{878CF9D3-9761-479E-A715-A1DE9F99CB78}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ilbc", "..\..\..\..\libilbc-rfc3951\build\windows10\ilbc\ilbc.vcxproj", "{995B01AF-C568-453E-9E5F-8AE81FB79B4B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore_amrnb", "..\..\..\..\msamr\build\windows10\opencore_amrnb\opencore_amrnb.vcxproj", "{71A5F1C8-F76D-4297-95AA-75E1C967DC79}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencore_amrwb", "..\..\..\..\msamr\build\windows10\opencore_amrwb\opencore_amrwb.vcxproj", "{3CC91899-3E98-49FD-BED5-FA290A9A5C8E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vo-amrwbenc", "..\..\..\..\msamr\build\windows10\vo-amrwbenc\vo-amrwbenc.vcxproj", "{D829672F-3775-4718-A991-1ABC42CBA67C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "webrtc", "..\..\..\..\mswebrtc\webrtc\build\windows10\webrtc\webrtc.vcxproj", "{C5895B75-BDCF-406C-B803-9CB954E90F0C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsbcg729", "..\..\..\..\bcg729\build\windows10\libmsbcg729\libmsbcg729.vcxproj", "{ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmsopenh264", "..\..\..\..\msopenh264\build\windows10\libmsopenh264\libmsopenh264.vcxproj", "{BB8EBB21-F22C-4A68-99CB-67FA36C495E3}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmswinrtvid", "..\..\..\..\mswinrtvid\windows10\libmswinrtvid\libmswinrtvid.vcxproj", "{2D0E44C4-E51D-4911-B876-345D1E5E5209}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mswinrtjpeg2yuv", "..\..\..\mediastreamer2\build\windows10\mswinrtjpeg2yuv\mswinrtjpeg2yuv.vcxproj", "{545F846D-7F19-4D6D-A50B-172A7C9B61E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|ARM = Release|ARM - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.ActiveCfg = Debug|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.Build.0 = Debug|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|ARM.Deploy.0 = Debug|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.ActiveCfg = Debug|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.Build.0 = Debug|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x64.Deploy.0 = Debug|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.ActiveCfg = Debug|x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.Build.0 = Debug|x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Debug|x86.Deploy.0 = Debug|x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.ActiveCfg = Release|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.Build.0 = Release|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|ARM.Deploy.0 = Release|ARM - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.ActiveCfg = Release|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.Build.0 = Release|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x64.Deploy.0 = Release|x64 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.ActiveCfg = Release|x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.Build.0 = Release|x86 - {EC78E1D3-6FD8-4CAF-8D3F-6F4F97093BE5}.Release|x86.Deploy.0 = Release|x86 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|ARM.ActiveCfg = Debug|ARM - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|ARM.Build.0 = Debug|ARM - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x64.ActiveCfg = Debug|x64 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x64.Build.0 = Debug|x64 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x86.ActiveCfg = Debug|Win32 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Debug|x86.Build.0 = Debug|Win32 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|ARM.ActiveCfg = Release|ARM - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|ARM.Build.0 = Release|ARM - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x64.ActiveCfg = Release|x64 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x64.Build.0 = Release|x64 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x86.ActiveCfg = Release|Win32 - {9EB3FE8D-2D91-4D29-A3BB-98DDB51D45B7}.Release|x86.Build.0 = Release|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.ActiveCfg = Debug|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.Build.0 = Debug|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.ActiveCfg = Debug|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.Build.0 = Debug|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.ActiveCfg = Debug|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.Build.0 = Debug|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.ActiveCfg = Release|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.Build.0 = Release|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.ActiveCfg = Release|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.Build.0 = Release|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.ActiveCfg = Release|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.Build.0 = Release|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.ActiveCfg = Debug|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.Build.0 = Debug|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.ActiveCfg = Debug|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.Build.0 = Debug|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.ActiveCfg = Debug|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.Build.0 = Debug|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.ActiveCfg = Release|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.Build.0 = Release|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.ActiveCfg = Release|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.Build.0 = Release|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.ActiveCfg = Release|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.Build.0 = Release|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.ActiveCfg = Debug|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.Build.0 = Debug|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.ActiveCfg = Debug|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.Build.0 = Debug|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.ActiveCfg = Debug|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.Build.0 = Debug|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.ActiveCfg = Release|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.Build.0 = Release|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.ActiveCfg = Release|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.Build.0 = Release|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.ActiveCfg = Release|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.Build.0 = Release|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.ActiveCfg = Debug|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.Build.0 = Debug|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.ActiveCfg = Debug|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.Build.0 = Debug|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.ActiveCfg = Debug|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.Build.0 = Debug|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.ActiveCfg = Release|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.Build.0 = Release|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.ActiveCfg = Release|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.Build.0 = Release|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.ActiveCfg = Release|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.Build.0 = Release|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.ActiveCfg = Debug|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.Build.0 = Debug|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.ActiveCfg = Debug|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.Build.0 = Debug|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.ActiveCfg = Debug|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.Build.0 = Debug|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.ActiveCfg = Release|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.Build.0 = Release|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.ActiveCfg = Release|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.Build.0 = Release|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.ActiveCfg = Release|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.Build.0 = Release|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.ActiveCfg = Debug|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.Build.0 = Debug|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.ActiveCfg = Debug|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.Build.0 = Debug|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.ActiveCfg = Debug|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.Build.0 = Debug|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.ActiveCfg = Release|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.Build.0 = Release|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.ActiveCfg = Release|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.Build.0 = Release|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.ActiveCfg = Release|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.Build.0 = Release|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.ActiveCfg = Debug|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.Build.0 = Debug|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.ActiveCfg = Debug|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.Build.0 = Debug|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.ActiveCfg = Debug|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.Build.0 = Debug|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.ActiveCfg = Release|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.Build.0 = Release|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.ActiveCfg = Release|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.Build.0 = Release|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.ActiveCfg = Release|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.Build.0 = Release|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.ActiveCfg = Debug|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.Build.0 = Debug|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.ActiveCfg = Debug|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.Build.0 = Debug|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.ActiveCfg = Debug|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.Build.0 = Debug|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.ActiveCfg = Release|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.Build.0 = Release|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.ActiveCfg = Release|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.Build.0 = Release|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.ActiveCfg = Release|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.Build.0 = Release|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.ActiveCfg = Debug|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.Build.0 = Debug|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.ActiveCfg = Debug|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.Build.0 = Debug|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.ActiveCfg = Debug|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.Build.0 = Debug|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.ActiveCfg = Release|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.Build.0 = Release|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.ActiveCfg = Release|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.Build.0 = Release|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.ActiveCfg = Release|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.Build.0 = Release|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.ActiveCfg = Debug|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.Build.0 = Debug|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.ActiveCfg = Debug|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.Build.0 = Debug|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.ActiveCfg = Debug|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.Build.0 = Debug|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.ActiveCfg = Release|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.Build.0 = Release|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.ActiveCfg = Release|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.Build.0 = Release|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.ActiveCfg = Release|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.Build.0 = Release|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.ActiveCfg = Debug|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.Build.0 = Debug|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.ActiveCfg = Debug|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.Build.0 = Debug|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.ActiveCfg = Debug|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.Build.0 = Debug|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.ActiveCfg = Release|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.Build.0 = Release|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.ActiveCfg = Release|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.Build.0 = Release|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.ActiveCfg = Release|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.Build.0 = Release|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.ActiveCfg = Debug|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.Build.0 = Debug|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.ActiveCfg = Debug|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.Build.0 = Debug|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.ActiveCfg = Debug|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.Build.0 = Debug|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.ActiveCfg = Release|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.Build.0 = Release|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.ActiveCfg = Release|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.Build.0 = Release|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.ActiveCfg = Release|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.Build.0 = Release|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.ActiveCfg = Debug|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.Build.0 = Debug|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.ActiveCfg = Debug|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.Build.0 = Debug|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.ActiveCfg = Debug|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.Build.0 = Debug|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.ActiveCfg = Release|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.Build.0 = Release|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.ActiveCfg = Release|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.Build.0 = Release|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.ActiveCfg = Release|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.Build.0 = Release|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.ActiveCfg = Debug|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.Build.0 = Debug|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.ActiveCfg = Debug|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.Build.0 = Debug|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.ActiveCfg = Debug|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.Build.0 = Debug|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.ActiveCfg = Release|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.Build.0 = Release|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.ActiveCfg = Release|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.Build.0 = Release|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.ActiveCfg = Release|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.Build.0 = Release|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.ActiveCfg = Debug|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.Build.0 = Debug|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.ActiveCfg = Debug|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.Build.0 = Debug|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.ActiveCfg = Debug|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.Build.0 = Debug|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.ActiveCfg = Release|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.Build.0 = Release|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.ActiveCfg = Release|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.Build.0 = Release|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.ActiveCfg = Release|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.Build.0 = Release|Win32 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|ARM.ActiveCfg = Debug|ARM - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|ARM.Build.0 = Debug|ARM - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x64.ActiveCfg = Debug|x64 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x64.Build.0 = Debug|x64 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x86.ActiveCfg = Debug|Win32 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Debug|x86.Build.0 = Debug|Win32 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|ARM.ActiveCfg = Release|ARM - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|ARM.Build.0 = Release|ARM - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x64.ActiveCfg = Release|x64 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x64.Build.0 = Release|x64 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x86.ActiveCfg = Release|Win32 - {1CE10F06-8FAD-437F-B3D7-3B7A8909A190}.Release|x86.Build.0 = Release|Win32 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|ARM.ActiveCfg = Debug|ARM - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|ARM.Build.0 = Debug|ARM - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x64.ActiveCfg = Debug|x64 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x64.Build.0 = Debug|x64 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x86.ActiveCfg = Debug|Win32 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Debug|x86.Build.0 = Debug|Win32 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|ARM.ActiveCfg = Release|ARM - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|ARM.Build.0 = Release|ARM - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x64.ActiveCfg = Release|x64 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x64.Build.0 = Release|x64 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x86.ActiveCfg = Release|Win32 - {025E28A8-9DFB-4015-AD56-19896AA6CC9B}.Release|x86.Build.0 = Release|Win32 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|ARM.ActiveCfg = Debug|ARM - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|ARM.Build.0 = Debug|ARM - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x64.ActiveCfg = Debug|x64 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x64.Build.0 = Debug|x64 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x86.ActiveCfg = Debug|Win32 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Debug|x86.Build.0 = Debug|Win32 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|ARM.ActiveCfg = Release|ARM - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|ARM.Build.0 = Release|ARM - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x64.ActiveCfg = Release|x64 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x64.Build.0 = Release|x64 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x86.ActiveCfg = Release|Win32 - {8C1BC968-C5C8-4D4B-9EF3-D6A065FC7C97}.Release|x86.Build.0 = Release|Win32 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|ARM.ActiveCfg = Debug|ARM - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|ARM.Build.0 = Debug|ARM - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x64.ActiveCfg = Debug|x64 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x64.Build.0 = Debug|x64 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x86.ActiveCfg = Debug|Win32 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Debug|x86.Build.0 = Debug|Win32 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|ARM.ActiveCfg = Release|ARM - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|ARM.Build.0 = Release|ARM - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x64.ActiveCfg = Release|x64 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x64.Build.0 = Release|x64 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x86.ActiveCfg = Release|Win32 - {6A18BBB9-08D1-41A8-BE57-17FC992CC36F}.Release|x86.Build.0 = Release|Win32 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|ARM.ActiveCfg = Debug|ARM - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|ARM.Build.0 = Debug|ARM - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x64.ActiveCfg = Debug|x64 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x64.Build.0 = Debug|x64 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x86.ActiveCfg = Debug|Win32 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Debug|x86.Build.0 = Debug|Win32 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|ARM.ActiveCfg = Release|ARM - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|ARM.Build.0 = Release|ARM - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x64.ActiveCfg = Release|x64 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x64.Build.0 = Release|x64 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x86.ActiveCfg = Release|Win32 - {B84D5C3B-6DE5-49C8-B3DD-5EB67B01A527}.Release|x86.Build.0 = Release|Win32 - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|ARM.ActiveCfg = Debug|ARM - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|ARM.Build.0 = Debug|ARM - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x64.ActiveCfg = Debug|x64 - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x64.Build.0 = Debug|x64 - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x86.ActiveCfg = Debug|Win32 - {266B769A-C04E-424C-9033-7209F0425BC0}.Debug|x86.Build.0 = Debug|Win32 - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|ARM.ActiveCfg = Release|ARM - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|ARM.Build.0 = Release|ARM - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x64.ActiveCfg = Release|x64 - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x64.Build.0 = Release|x64 - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x86.ActiveCfg = Release|Win32 - {266B769A-C04E-424C-9033-7209F0425BC0}.Release|x86.Build.0 = Release|Win32 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|ARM.ActiveCfg = Debug|ARM - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|ARM.Build.0 = Debug|ARM - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x64.ActiveCfg = Debug|x64 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x64.Build.0 = Debug|x64 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x86.ActiveCfg = Debug|Win32 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Debug|x86.Build.0 = Debug|Win32 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|ARM.ActiveCfg = Release|ARM - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|ARM.Build.0 = Release|ARM - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x64.ActiveCfg = Release|x64 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x64.Build.0 = Release|x64 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x86.ActiveCfg = Release|Win32 - {878CF9D3-9761-479E-A715-A1DE9F99CB78}.Release|x86.Build.0 = Release|Win32 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|ARM.ActiveCfg = Debug|ARM - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|ARM.Build.0 = Debug|ARM - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x64.ActiveCfg = Debug|x64 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x64.Build.0 = Debug|x64 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x86.ActiveCfg = Debug|Win32 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Debug|x86.Build.0 = Debug|Win32 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|ARM.ActiveCfg = Release|ARM - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|ARM.Build.0 = Release|ARM - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x64.ActiveCfg = Release|x64 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x64.Build.0 = Release|x64 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x86.ActiveCfg = Release|Win32 - {995B01AF-C568-453E-9E5F-8AE81FB79B4B}.Release|x86.Build.0 = Release|Win32 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|ARM.ActiveCfg = Debug|ARM - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|ARM.Build.0 = Debug|ARM - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x64.ActiveCfg = Debug|x64 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x64.Build.0 = Debug|x64 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x86.ActiveCfg = Debug|Win32 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Debug|x86.Build.0 = Debug|Win32 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|ARM.ActiveCfg = Release|ARM - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|ARM.Build.0 = Release|ARM - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x64.ActiveCfg = Release|x64 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x64.Build.0 = Release|x64 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x86.ActiveCfg = Release|Win32 - {71A5F1C8-F76D-4297-95AA-75E1C967DC79}.Release|x86.Build.0 = Release|Win32 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|ARM.ActiveCfg = Debug|ARM - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|ARM.Build.0 = Debug|ARM - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x64.ActiveCfg = Debug|x64 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x64.Build.0 = Debug|x64 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x86.ActiveCfg = Debug|Win32 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Debug|x86.Build.0 = Debug|Win32 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|ARM.ActiveCfg = Release|ARM - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|ARM.Build.0 = Release|ARM - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x64.ActiveCfg = Release|x64 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x64.Build.0 = Release|x64 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x86.ActiveCfg = Release|Win32 - {3CC91899-3E98-49FD-BED5-FA290A9A5C8E}.Release|x86.Build.0 = Release|Win32 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|ARM.ActiveCfg = Debug|ARM - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|ARM.Build.0 = Debug|ARM - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x64.ActiveCfg = Debug|x64 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x64.Build.0 = Debug|x64 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x86.ActiveCfg = Debug|Win32 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Debug|x86.Build.0 = Debug|Win32 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|ARM.ActiveCfg = Release|ARM - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|ARM.Build.0 = Release|ARM - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x64.ActiveCfg = Release|x64 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x64.Build.0 = Release|x64 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x86.ActiveCfg = Release|Win32 - {D829672F-3775-4718-A991-1ABC42CBA67C}.Release|x86.Build.0 = Release|Win32 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|ARM.ActiveCfg = Debug|ARM - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|ARM.Build.0 = Debug|ARM - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x64.ActiveCfg = Debug|x64 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x64.Build.0 = Debug|x64 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x86.ActiveCfg = Debug|Win32 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Debug|x86.Build.0 = Debug|Win32 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|ARM.ActiveCfg = Release|ARM - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|ARM.Build.0 = Release|ARM - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x64.ActiveCfg = Release|x64 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x64.Build.0 = Release|x64 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x86.ActiveCfg = Release|Win32 - {C5895B75-BDCF-406C-B803-9CB954E90F0C}.Release|x86.Build.0 = Release|Win32 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|ARM.ActiveCfg = Debug|ARM - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|ARM.Build.0 = Debug|ARM - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x64.ActiveCfg = Debug|x64 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x64.Build.0 = Debug|x64 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x86.ActiveCfg = Debug|Win32 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Debug|x86.Build.0 = Debug|Win32 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|ARM.ActiveCfg = Release|ARM - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|ARM.Build.0 = Release|ARM - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x64.ActiveCfg = Release|x64 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x64.Build.0 = Release|x64 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x86.ActiveCfg = Release|Win32 - {ACF5EA95-D647-4D0C-8F97-2CD9AAE8A2E0}.Release|x86.Build.0 = Release|Win32 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|ARM.ActiveCfg = Debug|ARM - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|ARM.Build.0 = Debug|ARM - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x64.ActiveCfg = Debug|x64 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x64.Build.0 = Debug|x64 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x86.ActiveCfg = Debug|Win32 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Debug|x86.Build.0 = Debug|Win32 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|ARM.ActiveCfg = Release|ARM - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|ARM.Build.0 = Release|ARM - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x64.ActiveCfg = Release|x64 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x64.Build.0 = Release|x64 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x86.ActiveCfg = Release|Win32 - {BB8EBB21-F22C-4A68-99CB-67FA36C495E3}.Release|x86.Build.0 = Release|Win32 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|ARM.ActiveCfg = Debug|ARM - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|ARM.Build.0 = Debug|ARM - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x64.ActiveCfg = Debug|x64 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x64.Build.0 = Debug|x64 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x86.ActiveCfg = Debug|Win32 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Debug|x86.Build.0 = Debug|Win32 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|ARM.ActiveCfg = Release|ARM - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|ARM.Build.0 = Release|ARM - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x64.ActiveCfg = Release|x64 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x64.Build.0 = Release|x64 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x86.ActiveCfg = Release|Win32 - {2D0E44C4-E51D-4911-B876-345D1E5E5209}.Release|x86.Build.0 = Release|Win32 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|ARM.ActiveCfg = Debug|ARM - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|ARM.Build.0 = Debug|ARM - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x64.ActiveCfg = Debug|x64 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x64.Build.0 = Debug|x64 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x86.ActiveCfg = Debug|Win32 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Debug|x86.Build.0 = Debug|Win32 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|ARM.ActiveCfg = Release|ARM - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|ARM.Build.0 = Release|ARM - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x64.ActiveCfg = Release|x64 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x64.Build.0 = Release|x64 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x86.ActiveCfg = Release|Win32 - {545F846D-7F19-4D6D-A50B-172A7C9B61E7}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx b/build/windows10/liblinphone-tester/liblinphone-tester_TemporaryKey.pfx deleted file mode 100644 index 3aeb9f3b92cdcf84e1dbd3627787b64d858b15db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2803 zcmcguX;c$g7OqN)1QNm`Ya?J}m4*zJ1dsqKq7g*wLD}~m0SO?hEH+658bL-85ENNN z1R^Smc32bxVynoG4YD)>%_brO0>d7r=;?N5&Y9CcyXw4G_xs*=->p;kz55Dg<7QDH z8fN3lF+$%anI$a~KrC3u#@&F}xEzGegxMIu{}~ckh1dd1Fk4_AX)_r7?_R<<5LL*A z_%It=J(`FmqaNzB)vXO7&!!ZfT%;=Pj+E|M^8c*Toc;?dCO`Df$_uNg zm9^dho+|d9T}@4bUebs3Z&r2b#4OT|9n*B%OESCtRvh{6bsBpbh!yeIlCx;33lnE( zMYl#>$?w<3xV4_oiq;LL&pXukLo18X3L!b6bRNfn zO;ooU99EDyw)vV8==NRYCDO~(pur8qs|P9Syb@rR;w~@ za=%!2`l|W8%-omURa*I3yKFf60{0`$Y@{@Au=Q&CnbFB!K)I?`!(?N8fw5I#l|>>{ zy;7|2RN6U?8Ns@!RokZ)hq#60k}H*>&^9 z=8Rm6?=#r=#R~ z(0&{n^#fMU*Q`-Dm=lQ4JG)_c&e1oJk)Fv=kdBFrxt(kx<<7vgJ~@XBZR^7s<=t%LID|TKWDe4=1I1} zOiEjG#7~cYCZ3a^cuVw{sSj{VlkzY3ziBY&BR^2uXUhmDFP(D3w{SPc zR4hDAR>Exn`%9@g0?`3Sn=15rN88I9=4hEo-T&zdJ|sc%3-g z@s@g2*EgKID!sTNam~nUi{ZndUdyoe>`@V1iy+L~(3(Plucr=|i}4%}d~BI8vQIagKm@FiewzsbP9f+JVn+iZ2p5dtP{0GR{eJTz0+zq&A`#>b z_yD1>&wpY{lI<035kVwy8n6Z!h?4<8LjsVI33L$oUgRbrp}i19K`b4F-?mABCjbL_ zNKZo4ROCrU5E-%dBD_AL@Iq>P!q-6C#{?9C6!S9(%|M#}f1d?tWbhzD?)!QY2uW`{ zkPrtAgja>xXz@Zc3PhpAHa;BT5S~`vG9J*pvbeh801IIRG)2%T1pxr|BjXW>wt+Ab zs3RxI;;`s8z)A?3hWZ2rdj|TDm0;pFg_HQk(ksi3TRh5XidlUYJJKp;9P1jQfM$cD z0L%t)C^iTJ0}q$(Ns4H_U{a~Fi32O=Ngn4*Ztvu+m;M~@5#zLOM^L?So~yp^3cBS3 zCfgIe=9;t9&-C!GcNj+{=6azB;yJlkvgq4NW~m;wp}jV~Jz_pDPh)Mi7qo0|*6Zii zLmrY~N3doEb-G=KV}c#>S#irsjF^s-cP5b-UvEXoB1W0sV~30e?&#WVavE@FJB~f*r|V$ z%IzxHvh7z1?@3YZD9L`}Ewj2|WwxLza@I2D$Gk0~p|P%PM_hL2kxoNPVUh1$IkPjf zqrxW(vQTIc0B^B6U{)(EjAUOy0tB}p6b!(-wvj3%3rk}JkqsvxfJLJ*xZk%P4o!er zx!Vd5Vr9Ur%S^FLs+3Q);x3$P1w)MbT~@U>1OB=+v;S=6BMAoqp6%|&wLG0F{D)Ul zjQlpbO?$vrjsDA1P3MOkIKPCi$GW3ug}U%@#c=RD3(vBV%WUQ8TGQGljFTKGR)x}e zr3AC!{)0}L>mn;Qf$Bi07*85{5&2XstjLasO?QiZ&BW>^x?G;xE%SJ=Sn4h3EKYIF zyh`%eLrffDj(zj{vndmvqF(#ba5GMdxK^qaVaCrvGwr#~q3+7t9R0D`CVU}XJ3D&X zx+$>x=m9yW96PNqPE#pu1Kn>7NZ|>j`6#)KLdK0-bJwob(Ale#lv4(G%o>f`pW6Z! zcJGBdI2nP7kH6&AM!!=#prn_U5Tz;Hw=%JRe&?{)#+P;%FS6ACucn6ZE*SgoA|VG! yT1q_(5X0b$)uNjjW0xAMaw8qjL6Xi6x|w)x?mG9$q-eac9{$G)=-Bq}=f41ryKm$G diff --git a/build/windows10/liblinphone-tester/project.json b/build/windows10/liblinphone-tester/project.json deleted file mode 100644 index e3b2dba25..000000000 --- a/build/windows10/liblinphone-tester/project.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "dependencies": { - "Microsoft.ApplicationInsights": "1.0.0", - "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0", - "Microsoft.ApplicationInsights.WindowsApps": "1.0.0", - "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" - }, - "frameworks": { - "uap10.0": {} - }, - "runtimes": { - "win10-arm": {}, - "win10-arm-aot": {}, - "win10-x86": {}, - "win10-x86-aot": {}, - "win10-x64": {}, - "win10-x64-aot": {} - } -} \ No newline at end of file diff --git a/build/windows10/liblinphone/liblinphone.sln b/build/windows10/liblinphone/liblinphone.sln deleted file mode 100644 index abfa15a85..000000000 --- a/build/windows10/liblinphone/liblinphone.sln +++ /dev/null @@ -1,230 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.22823.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblinphone", "liblinphone.vcxproj", "{C7139899-D8BC-48A3-A437-6844A8BAABEF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "..\..\..\mediastreamer2\build\windows10\mediastreamer2\mediastreamer2.vcxproj", "{88E3C241-EB6F-4C84-80DC-89B8961DAF80}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ortp", "..\..\..\oRTP\build\windows10\ortp\ortp.vcxproj", "{2E56B851-9D8D-40E5-84BB-E4EE63B71D25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srtp", "..\..\..\..\srtp\build\windows10\srtp\srtp.vcxproj", "{59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xml2", "..\..\..\..\build\xml2\xml2.vcxproj", "{2B04DE79-4D33-4405-AC01-C89E0593A71D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "polarssl", "..\..\..\..\polarssl\build\windows10\polarssl\polarssl.vcxproj", "{88768DD9-5110-4AC8-8B0E-41CD7713E1A2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speex", "..\..\..\..\speex\build\windows10\speex\speex.vcxproj", "{971DD379-1C2D-44D2-9285-FDA556C48176}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "speexdsp", "..\..\..\..\speex\build\windows10\speexdsp\speexdsp.vcxproj", "{104BF91B-8314-4328-A996-90B8DF6052AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "..\..\..\..\opus\build\windows10\opus\opus.vcxproj", "{81AF1025-E0EE-4AD6-988D-2EF162778693}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bzrtp", "..\..\..\..\bzrtp\build\windows10\bzrtp\bzrtp.vcxproj", "{45C7723D-3107-4906-9633-F43ABE8A7147}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsm", "..\..\..\..\gsm\build\windows10\gsm\gsm.vcxproj", "{EF1103C7-8AAC-464B-BA31-86B87246FA72}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "belle-sip", "..\..\..\..\belle-sip\build\windows10\belle-sip\belle-sip.vcxproj", "{B6CDF482-7DA3-43D4-9B12-70150106C191}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "antlr3c", "..\..\..\..\antlr3\runtime\C\build\windows10\antlr3c\antlr3c.vcxproj", "{01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\..\..\zlib\build\windows10\zlib\zlib.vcxproj", "{A34F450D-392D-4660-9618-810BD695B3B0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite", "..\..\..\..\build\sqlite\sqlite.vcxproj", "{74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|ARM = Debug|ARM - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|ARM = Release|ARM - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.ActiveCfg = Debug|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|ARM.Build.0 = Debug|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.ActiveCfg = Debug|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x64.Build.0 = Debug|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.ActiveCfg = Debug|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Debug|x86.Build.0 = Debug|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.ActiveCfg = Release|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|ARM.Build.0 = Release|ARM - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.ActiveCfg = Release|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x64.Build.0 = Release|x64 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.ActiveCfg = Release|Win32 - {C7139899-D8BC-48A3-A437-6844A8BAABEF}.Release|x86.Build.0 = Release|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.ActiveCfg = Debug|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|ARM.Build.0 = Debug|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.ActiveCfg = Debug|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x64.Build.0 = Debug|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.ActiveCfg = Debug|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Debug|x86.Build.0 = Debug|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.ActiveCfg = Release|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|ARM.Build.0 = Release|ARM - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.ActiveCfg = Release|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x64.Build.0 = Release|x64 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.ActiveCfg = Release|Win32 - {88E3C241-EB6F-4C84-80DC-89B8961DAF80}.Release|x86.Build.0 = Release|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.ActiveCfg = Debug|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|ARM.Build.0 = Debug|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.ActiveCfg = Debug|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x64.Build.0 = Debug|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.ActiveCfg = Debug|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Debug|x86.Build.0 = Debug|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.ActiveCfg = Release|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|ARM.Build.0 = Release|ARM - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.ActiveCfg = Release|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x64.Build.0 = Release|x64 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.ActiveCfg = Release|Win32 - {2E56B851-9D8D-40E5-84BB-E4EE63B71D25}.Release|x86.Build.0 = Release|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.ActiveCfg = Debug|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|ARM.Build.0 = Debug|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.ActiveCfg = Debug|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x64.Build.0 = Debug|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.ActiveCfg = Debug|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Debug|x86.Build.0 = Debug|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.ActiveCfg = Release|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|ARM.Build.0 = Release|ARM - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.ActiveCfg = Release|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x64.Build.0 = Release|x64 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.ActiveCfg = Release|Win32 - {59104E4F-A087-442E-ABD4-BCD2A1F0B0FE}.Release|x86.Build.0 = Release|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.ActiveCfg = Debug|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|ARM.Build.0 = Debug|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.ActiveCfg = Debug|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x64.Build.0 = Debug|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.ActiveCfg = Debug|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Debug|x86.Build.0 = Debug|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.ActiveCfg = Release|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|ARM.Build.0 = Release|ARM - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.ActiveCfg = Release|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x64.Build.0 = Release|x64 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.ActiveCfg = Release|Win32 - {2B04DE79-4D33-4405-AC01-C89E0593A71D}.Release|x86.Build.0 = Release|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.ActiveCfg = Debug|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|ARM.Build.0 = Debug|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.ActiveCfg = Debug|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x64.Build.0 = Debug|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.ActiveCfg = Debug|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Debug|x86.Build.0 = Debug|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.ActiveCfg = Release|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|ARM.Build.0 = Release|ARM - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.ActiveCfg = Release|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x64.Build.0 = Release|x64 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.ActiveCfg = Release|Win32 - {88768DD9-5110-4AC8-8B0E-41CD7713E1A2}.Release|x86.Build.0 = Release|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.ActiveCfg = Debug|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|ARM.Build.0 = Debug|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.ActiveCfg = Debug|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x64.Build.0 = Debug|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.ActiveCfg = Debug|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Debug|x86.Build.0 = Debug|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.ActiveCfg = Release|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|ARM.Build.0 = Release|ARM - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.ActiveCfg = Release|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x64.Build.0 = Release|x64 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.ActiveCfg = Release|Win32 - {971DD379-1C2D-44D2-9285-FDA556C48176}.Release|x86.Build.0 = Release|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.ActiveCfg = Debug|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|ARM.Build.0 = Debug|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.ActiveCfg = Debug|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x64.Build.0 = Debug|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.ActiveCfg = Debug|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Debug|x86.Build.0 = Debug|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.ActiveCfg = Release|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|ARM.Build.0 = Release|ARM - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.ActiveCfg = Release|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x64.Build.0 = Release|x64 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.ActiveCfg = Release|Win32 - {104BF91B-8314-4328-A996-90B8DF6052AF}.Release|x86.Build.0 = Release|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.ActiveCfg = Debug|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|ARM.Build.0 = Debug|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.ActiveCfg = Debug|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x64.Build.0 = Debug|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.ActiveCfg = Debug|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Debug|x86.Build.0 = Debug|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.ActiveCfg = Release|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|ARM.Build.0 = Release|ARM - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.ActiveCfg = Release|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x64.Build.0 = Release|x64 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.ActiveCfg = Release|Win32 - {81AF1025-E0EE-4AD6-988D-2EF162778693}.Release|x86.Build.0 = Release|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.ActiveCfg = Debug|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|ARM.Build.0 = Debug|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.ActiveCfg = Debug|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x64.Build.0 = Debug|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.ActiveCfg = Debug|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Debug|x86.Build.0 = Debug|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.ActiveCfg = Release|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|ARM.Build.0 = Release|ARM - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.ActiveCfg = Release|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x64.Build.0 = Release|x64 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.ActiveCfg = Release|Win32 - {45C7723D-3107-4906-9633-F43ABE8A7147}.Release|x86.Build.0 = Release|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.ActiveCfg = Debug|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|ARM.Build.0 = Debug|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.ActiveCfg = Debug|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x64.Build.0 = Debug|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.ActiveCfg = Debug|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Debug|x86.Build.0 = Debug|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.ActiveCfg = Release|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|ARM.Build.0 = Release|ARM - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.ActiveCfg = Release|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x64.Build.0 = Release|x64 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.ActiveCfg = Release|Win32 - {EF1103C7-8AAC-464B-BA31-86B87246FA72}.Release|x86.Build.0 = Release|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.ActiveCfg = Debug|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|ARM.Build.0 = Debug|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.ActiveCfg = Debug|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x64.Build.0 = Debug|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.ActiveCfg = Debug|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Debug|x86.Build.0 = Debug|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.ActiveCfg = Release|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|ARM.Build.0 = Release|ARM - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.ActiveCfg = Release|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x64.Build.0 = Release|x64 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.ActiveCfg = Release|Win32 - {B6CDF482-7DA3-43D4-9B12-70150106C191}.Release|x86.Build.0 = Release|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.ActiveCfg = Debug|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|ARM.Build.0 = Debug|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.ActiveCfg = Debug|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x64.Build.0 = Debug|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.ActiveCfg = Debug|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Debug|x86.Build.0 = Debug|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.ActiveCfg = Release|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|ARM.Build.0 = Release|ARM - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.ActiveCfg = Release|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x64.Build.0 = Release|x64 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.ActiveCfg = Release|Win32 - {01CCCCC9-CA0C-4528-92BC-5B8BE1D02D6D}.Release|x86.Build.0 = Release|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.ActiveCfg = Debug|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|ARM.Build.0 = Debug|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.ActiveCfg = Debug|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x64.Build.0 = Debug|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.ActiveCfg = Debug|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Debug|x86.Build.0 = Debug|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.ActiveCfg = Release|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|ARM.Build.0 = Release|ARM - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.ActiveCfg = Release|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x64.Build.0 = Release|x64 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.ActiveCfg = Release|Win32 - {A34F450D-392D-4660-9618-810BD695B3B0}.Release|x86.Build.0 = Release|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.ActiveCfg = Debug|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|ARM.Build.0 = Debug|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.ActiveCfg = Debug|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x64.Build.0 = Debug|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.ActiveCfg = Debug|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Debug|x86.Build.0 = Debug|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.ActiveCfg = Release|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|ARM.Build.0 = Release|ARM - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.ActiveCfg = Release|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x64.Build.0 = Release|x64 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.ActiveCfg = Release|Win32 - {74CAD9D0-D8AE-4896-B71B-B2D9B48F30AA}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/build/windows10/liblinphone/liblinphone.vcxproj b/build/windows10/liblinphone/liblinphone.vcxproj deleted file mode 100644 index b5922519b..000000000 --- a/build/windows10/liblinphone/liblinphone.vcxproj +++ /dev/null @@ -1,192 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {b6cdf482-7da3-43d4-9b12-70150106c191} - - - {74cad9d0-d8ae-4896-b71b-b2d9b48f30aa} - - - {2b04de79-4d33-4405-ac01-c89e0593a71d} - - - {a34f450d-392d-4660-9618-810bd695b3b0} - - - {88e3c241-eb6f-4c84-80dc-89b8961daf80} - - - {2e56b851-9d8d-40e5-84bb-e4ee63b71d25} - - - - {c7139899-d8bc-48a3-a437-6844a8baabef} - DynamicLibrary - liblinphone - liblinphone - en-US - 14.0 - true - Windows Store - 10 - 10.0.10240.0 - 10.0.10069.0 - - - - DynamicLibrary - true - v140 - - - DynamicLibrary - false - true - v140 - - - - - - - - - - - - false - false - $(SolutionDir)$(Platform)\$(Configuration)\ - - - - NotUsing - false - $(SolutionDir)$(Platform)\$(Configuration)\include;$(ProjectDir)..\..\..\include;$(ProjectDir)..\..\..\coreapi;$(ProjectDir)..\..\..\mediastreamer2\include;$(ProjectDir)..\..\..\..\belle-sip\include;$(ProjectDir)..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\sqlite;$(ProjectDir)..\..\..\..\zlib;%(AdditionalIncludeDirectories) - HAVE_CONFIG_H;HAVE_ZLIB;MSG_STORAGE_ENABLED;VIDEO_ENABLED;IN_LINPHONE;LINPHONE_PLUGINS_DIR="\\linphone\\plugins";_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions) - 4996 - - - Console - false - false - - - version.bat - - - Batch script to get the git version - - - - - - \ No newline at end of file diff --git a/build/windows10/liblinphone/version.bat b/build/windows10/liblinphone/version.bat deleted file mode 100644 index c015636e2..000000000 --- a/build/windows10/liblinphone/version.bat +++ /dev/null @@ -1,22 +0,0 @@ -@ECHO off - -SET gitlog= -FOR /f "delims=" %%a IN ('git log -1 "--pretty=format:%%H" ../../../configure.ac') DO SET gitlog=%%a - -IF [%gitlog%] == [] GOTO UnknownGitVersion - -FOR /f "delims=" %%a IN ('git describe --always') DO SET gitdescribe=%%a -GOTO End - -:UnknownGitVersion -SET gitdescribe=unknown - -:End -ECHO #define LIBLINPHONE_GIT_VERSION "%gitdescribe%" > liblinphone_gitversion.h - - -FOR /F "delims=" %%a IN ('findstr /B AC_INIT ..\..\..\configure.ac') DO ( - FOR /F "tokens=1,2,3 delims=[,]" %%1 IN ("%%a") DO ( - ECHO #define LIBLINPHONE_VERSION "%%3" > config.h - ) -) From 52b51b1ba769ffa25337b1b254c494db22835a50 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Mon, 23 May 2016 11:53:18 +0200 Subject: [PATCH 12/41] Use default vfs. --- coreapi/lpconfig.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 6e7606adf..b397140e2 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -402,7 +402,8 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa bctbx_vfs_file_t* pFile = NULL; LpConfig *lpconfig=lp_new0(LpConfig,1); - bctbx_vfs_register(bc_create_vfs(),&lpconfig->g_bctbx_vfs); + bctbx_vfs_set_default(NULL); + lpconfig->g_bctbx_vfs = bctbx_vfs_get_default(); lpconfig->refcnt=1; if (config_filename!=NULL){ From 8eab2381afb5ed6b2b13bc7ed65589bba4d0fa9e Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Mon, 23 May 2016 14:17:57 +0200 Subject: [PATCH 13/41] Using version 3 of SQLite3 VFS. --- coreapi/sqlite3_bctbx_vfs.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 256e6cbca..3ae117e9b 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -217,7 +217,7 @@ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ /** * Opens the file fName and populates the structure pointed by p * with the necessary io_methods - * Methods not implemented for version 1 : xTruncate, xSectorSize. + * Methods not implemented for version 3 : xTruncate, xSectorSize. * Initializes some fields in the p structure, some of which where already * initialized by SQLite. * @param pVfs sqlite3_vfs VFS pointer. @@ -229,7 +229,7 @@ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ */ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file *p, int flags, int *pOutFlags ){ static const sqlite3_io_methods sqlite3_bctbx_io = { - 1, /* iVersion Structure version number */ + 3, /* iVersion Structure version number */ sqlite3bctbx_Close, /* xClose */ sqlite3bctbx_Read, /* xRead */ sqlite3bctbx_Write, /* xWrite */ @@ -276,7 +276,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ static sqlite3_vfs bctbx_vfs = { - 1, /* iVersion */ + 3, /* iVersion */ sizeof(sqlite3_bctbx_file), /* szOsFile */ MAXPATHNAME, /* mxPathname */ 0, /* pNext */ @@ -310,8 +310,6 @@ void sqlite3_bctbx_vfs_register( int makeDefault){ pVfsToUse->xSleep = pDefault->xSleep; pVfsToUse->xRandomness = pDefault->xRandomness; pVfsToUse->xGetLastError = pDefault->xGetLastError; /* Not implemented by sqlite3 :place holder */ - /*Functions below should not be a problem sincve we are declaring ourselves - in version 1 */ /* used in version 2 */ pVfsToUse->xCurrentTimeInt64 = pDefault->xCurrentTimeInt64; From 76e45b56cb8fe13e54ee01bc36ff502a2c366288 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Mon, 23 May 2016 14:26:07 +0200 Subject: [PATCH 14/41] Revert "Using version 3 of SQLite3 VFS." This reverts commit 8eab2381afb5ed6b2b13bc7ed65589bba4d0fa9e. --- coreapi/sqlite3_bctbx_vfs.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 3ae117e9b..256e6cbca 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -217,7 +217,7 @@ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ /** * Opens the file fName and populates the structure pointed by p * with the necessary io_methods - * Methods not implemented for version 3 : xTruncate, xSectorSize. + * Methods not implemented for version 1 : xTruncate, xSectorSize. * Initializes some fields in the p structure, some of which where already * initialized by SQLite. * @param pVfs sqlite3_vfs VFS pointer. @@ -229,7 +229,7 @@ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ */ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file *p, int flags, int *pOutFlags ){ static const sqlite3_io_methods sqlite3_bctbx_io = { - 3, /* iVersion Structure version number */ + 1, /* iVersion Structure version number */ sqlite3bctbx_Close, /* xClose */ sqlite3bctbx_Read, /* xRead */ sqlite3bctbx_Write, /* xWrite */ @@ -276,7 +276,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ static sqlite3_vfs bctbx_vfs = { - 3, /* iVersion */ + 1, /* iVersion */ sizeof(sqlite3_bctbx_file), /* szOsFile */ MAXPATHNAME, /* mxPathname */ 0, /* pNext */ @@ -310,6 +310,8 @@ void sqlite3_bctbx_vfs_register( int makeDefault){ pVfsToUse->xSleep = pDefault->xSleep; pVfsToUse->xRandomness = pDefault->xRandomness; pVfsToUse->xGetLastError = pDefault->xGetLastError; /* Not implemented by sqlite3 :place holder */ + /*Functions below should not be a problem sincve we are declaring ourselves + in version 1 */ /* used in version 2 */ pVfsToUse->xCurrentTimeInt64 = pDefault->xCurrentTimeInt64; From c95fb27ecf29329e033898a0a131f0844be0e326 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Mon, 23 May 2016 14:27:34 +0200 Subject: [PATCH 15/41] Removing unused function pointer for sqlite vfs version 2 and 3. --- coreapi/sqlite3_bctbx_vfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 256e6cbca..006bd2e8e 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -313,12 +313,12 @@ void sqlite3_bctbx_vfs_register( int makeDefault){ /*Functions below should not be a problem sincve we are declaring ourselves in version 1 */ - /* used in version 2 */ - pVfsToUse->xCurrentTimeInt64 = pDefault->xCurrentTimeInt64; - /* used in version 3 */ - pVfsToUse->xGetSystemCall = pDefault->xGetSystemCall; - pVfsToUse->xSetSystemCall = pDefault->xSetSystemCall; - pVfsToUse->xNextSystemCall = pDefault->xNextSystemCall; + /* used in version 2 + xCurrentTimeInt64;*/ + /* used in version 3 + xGetSystemCall + xSetSystemCall + xNextSystemCall*/ sqlite3_vfs_register(pVfsToUse, makeDefault); From d2b8cb2dd5e084ee97b120c5aec1f0f903a520d4 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 23 May 2016 17:37:30 +0200 Subject: [PATCH 16/41] Fix compilation on Windows. --- coreapi/lpconfig.c | 2 +- coreapi/sqlite3_bctbx_vfs.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index b397140e2..88070bb9d 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -439,7 +439,7 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa #ifdef RENAME_REQUIRES_NONEXISTENT_NEW_PATH if (fd == -1){ - pFile = bctbx_filecreate_and_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "r+"); + pFile = bctbx_file_open(lpconfig->g_bctbx_vfs,lpconfig->tmpfilename, "r+"); if (fd){ ms_warning("Could not open %s but %s works, app may have crashed during last sync.",lpconfig->filename,lpconfig->tmpfilename); } diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 006bd2e8e..a1178f101 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -206,11 +206,13 @@ static int sqlite3bctbx_nolockUnlock(sqlite3_file *pUnused, int unused){ * @return SQLITE_OK on success, SLITE_IOERR_FSYNC if an error occurred. */ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*)p; - int rc; - - rc = fsync(pFile->pbctbx_file->fd); - return (rc==0 ? SQLITE_OK : SQLITE_IOERR_FSYNC); + sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*)p; +#if _WIN32 + return (FlushFileBuffers(pFile->pbctbx_file->fd) ? SQLITE_OK : SQLITE_IOERR_FSYNC); +#else + int rc = fsync(pFile->pbctbx_file->fd); + return (rc==0 ? SQLITE_OK : SQLITE_IOERR_FSYNC); +#endif } From f17014999b5d20909dee05472818b0fa2704dd5d Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 23 May 2016 21:59:41 +0200 Subject: [PATCH 17/41] fix crash at linphone_core_destroy() when add_missing_audio_codecs or add_missing_video_codec is set to 0. --- coreapi/linphonecore.c | 44 ++++++++++++++++++++++++++++++++++-------- mediastreamer2 | 2 +- oRTP | 2 +- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 36de8b3d0..7ab2f4d05 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1264,6 +1264,38 @@ static MSList *add_missing_supported_codecs(LinphoneCore *lc, const MSList *defa return newlist; } +/* + * This function adds missing codecs, if required by configuration. + * This 'l' list is entirely destroyed and a new list is returned. + */ +static MSList *handle_missing_codecs(LinphoneCore *lc, const MSList *default_list, MSList *l, MSFormatType ft){ + const char *name = "unknown"; + int add_missing; + MSList *ret; + + switch(ft){ + case MSAudio: + name = "add_missing_audio_codecs"; + break; + case MSVideo: + name = "add_missing_video_codecs"; + break; + case MSText: + name = "add_missing_text_codecs"; + break; + case MSUnknownMedia: + break; + } + add_missing = lp_config_get_int(lc->config, "misc", name, 1); + if (add_missing){ + ret = add_missing_supported_codecs(lc, default_list, l); + }else{ + ret = ms_list_copy_with_data(l,(void *(*)(void*))payload_type_clone); + ms_list_free(l); + } + return ret; +} + static MSList *codec_append_if_new(MSList *l, PayloadType *pt){ MSList *elem; for (elem=l;elem!=NULL;elem=elem->next){ @@ -1275,8 +1307,7 @@ static MSList *codec_append_if_new(MSList *l, PayloadType *pt){ return l; } -static void codecs_config_read(LinphoneCore *lc) -{ +static void codecs_config_read(LinphoneCore *lc){ int i; PayloadType *pt; MSList *audio_codecs=NULL; @@ -1291,18 +1322,15 @@ static void codecs_config_read(LinphoneCore *lc) audio_codecs=codec_append_if_new(audio_codecs, pt); } } - if( lp_config_get_int(lc->config, "misc", "add_missing_audio_codecs", 1) == 1 ){ - audio_codecs=add_missing_supported_codecs(lc, lc->default_audio_codecs,audio_codecs); - } + audio_codecs = handle_missing_codecs(lc, lc->default_audio_codecs,audio_codecs, MSAudio); for (i=0;get_codec(lc,SalVideo,i,&pt);i++){ if (pt){ video_codecs=codec_append_if_new(video_codecs, pt); } } - if( lp_config_get_int(lc->config, "misc", "add_missing_video_codecs", 1) == 1 ){ - video_codecs=add_missing_supported_codecs(lc, lc->default_video_codecs,video_codecs); - } + + video_codecs = handle_missing_codecs(lc, lc->default_video_codecs, video_codecs, MSVideo); for (i=0;get_codec(lc,SalText,i,&pt);i++){ if (pt){ diff --git a/mediastreamer2 b/mediastreamer2 index 24d1f4323..fd9850039 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 24d1f43234e9dcf07f6c803d9aa94317fe44dbf0 +Subproject commit fd98500399f8105534696deb7f3196b7b213aedd diff --git a/oRTP b/oRTP index 5b1c601c7..d10bdd483 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 5b1c601c74c2b3e0d4ab247c08a7b2ef3fb00e85 +Subproject commit d10bdd4832efa9b3bd6ce99b71873ca33326e812 From 21167aea4eb452f7609b3944aca303304fc8be16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Tue, 24 May 2016 10:37:02 +0200 Subject: [PATCH 18/41] Update NEWS --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 4bc7aace8..587ba456e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +linphone-3.10.0 -- May xxth, 2016 + * Video conference support through a conference server (SDK only) + linphone-3.9.1 -- November 16th, 2015 * Fix crash when recording video calls with the VP8 codec * Fix H.264 codec support in Mac OS X package From 38ea7d0a6f76d30bfe105e0054ec7b64e2bb3542 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Tue, 24 May 2016 11:33:59 +0200 Subject: [PATCH 19/41] Update translations. --- po/ar.po | 8 ++++---- po/cs.po | 8 ++++---- po/de.po | 8 ++++---- po/es.po | 8 ++++---- po/fi.po | 8 ++++---- po/fr.po | 14 +++++++------- po/he.po | 10 +++++----- po/hu.po | 8 ++++---- po/it.po | 8 ++++---- po/ja.po | 8 ++++---- po/lt.po | 8 ++++---- po/nb_NO.po | 8 ++++---- po/nl.po | 8 ++++---- po/pl.po | 8 ++++---- po/pt_BR.po | 8 ++++---- po/ru.po | 14 +++++++------- po/sr.po | 8 ++++---- po/sv.po | 8 ++++---- po/tr.po | 8 ++++---- po/zh_CN.po | 8 ++++---- po/zh_TW.po | 8 ++++---- 21 files changed, 91 insertions(+), 91 deletions(-) diff --git a/po/ar.po b/po/ar.po index 69b2dfb11..6fff00113 100644 --- a/po/ar.po +++ b/po/ar.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Arabic (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ar/)\n" @@ -2047,16 +2047,16 @@ msgstr "خدمة غير متاحة، تجري الإعادة" msgid "Authentication token is %s" msgstr "شارة التحقق من الهوية هي %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "‫لم تُعدَّل معاملات المكالمات : %s.‬" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "عُدِّلت معاملات المكالمات بنجاج." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/cs.po b/po/cs.po index e099b19d2..70d394fa7 100644 --- a/po/cs.po +++ b/po/cs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Czech (http://www.transifex.com/belledonne-communications/linphone-gtk/language/cs/)\n" @@ -2038,16 +2038,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "Klíč k ověření totožnosti je %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/de.po b/po/de.po index 4c99e91c5..50aef056b 100644 --- a/po/de.po +++ b/po/de.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: German (http://www.transifex.com/belledonne-communications/linphone-gtk/language/de/)\n" @@ -2038,16 +2038,16 @@ msgstr "Service nicht verfügbar, versuche erneut" msgid "Authentication token is %s" msgstr "Authentifizierungs-Token ist %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Anrufparameter konnten nicht geändert werden: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Anrufparameter wurden erfolgreich geändert." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/es.po b/po/es.po index 0d3cfb6af..d166e8cb1 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Spanish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/es/)\n" @@ -2034,16 +2034,16 @@ msgstr "Servicio no disponible, reintentando" msgid "Authentication token is %s" msgstr "El tóken de autenticación es%s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Parámetros de llamada no pudieron ser modificados: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Parámetros de llamada modificados correctamente." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/fi.po b/po/fi.po index 3361e2d15..5f8ffbe18 100644 --- a/po/fi.po +++ b/po/fi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Finnish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fi/)\n" @@ -2034,16 +2034,16 @@ msgstr "Palvelin saavuttamattomissa, uudelleen yritetään" msgid "Authentication token is %s" msgstr "Todennus merkki on %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Soiton raja-arvoja ei voitu muokata: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Soiton raja-arvot ovat onnistuneesti muokattu." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/fr.po b/po/fr.po index ad7beb948..0b8c6ae59 100644 --- a/po/fr.po +++ b/po/fr.po @@ -4,15 +4,15 @@ # # Translators: # Belledonne Communications , 2015-2016 -# Gautier Pelloux-Prayer , 2014 -# Gautier Pelloux-Prayer , 2014 -# Gautier Pelloux-Prayer , 2014-2016 +# Gautier Pelloux , 2014 +# Gautier Pelloux , 2014 +# Gautier Pelloux , 2014-2016 # Simon Morlat , 2001 msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:59+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: French (http://www.transifex.com/belledonne-communications/linphone-gtk/language/fr/)\n" @@ -2038,16 +2038,16 @@ msgstr "Service indisponible, nouvelle tentative" msgid "Authentication token is %s" msgstr "Le jeton d'authentification est %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Les paramètres d'appel n'ont pas pu être modifiés : %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Les paramètres d'appel ont été modifiés avec succès." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/he.po b/po/he.po index 28b648bfe..bb53d7e06 100644 --- a/po/he.po +++ b/po/he.po @@ -4,7 +4,7 @@ # # Translators: # Eli Zaretskii , 2012 -# Gautier Pelloux-Prayer , 2015 +# Gautier Pelloux , 2015 # GenghisKhan , 2014 # GenghisKhan , 2014,2016 # GenghisKhan , 2012-2013 @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Hebrew (http://www.transifex.com/belledonne-communications/linphone-gtk/language/he/)\n" @@ -2038,16 +2038,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "אות האימות הינה %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/hu.po b/po/hu.po index daa8b8909..bee6d8fdf 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Hungarian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/hu/)\n" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "Hitelesítési jel: %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/it.po b/po/it.po index c22d60aac..63dc17acb 100644 --- a/po/it.po +++ b/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Italian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/it/)\n" @@ -2035,16 +2035,16 @@ msgstr "Servizio non disponibile, nuovo tentativo in corso" msgid "Authentication token is %s" msgstr "Il codice di autenticazione è %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "I parametri della chiamata sono stati modificati con successo: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "I parametri della chiamata sono stati modificati con successo." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/ja.po b/po/ja.po index dac47a32a..851003f4e 100644 --- a/po/ja.po +++ b/po/ja.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Japanese (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ja/)\n" @@ -2032,16 +2032,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/lt.po b/po/lt.po index 8a9ead05e..70a798dbf 100644 --- a/po/lt.po +++ b/po/lt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Lithuanian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/lt/)\n" @@ -2037,16 +2037,16 @@ msgstr "Paslauga neprieinama, bandoma iš naujo" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Nepavyko modifikuoti skambučio parametrų: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Skambučio parametrai buvo sėkmingai modifikuoti." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/nb_NO.po b/po/nb_NO.po index a080f28ff..87aff17c0 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nb_NO/)\n" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/nl.po b/po/nl.po index d6f2d22a9..a833e03b7 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Dutch (http://www.transifex.com/belledonne-communications/linphone-gtk/language/nl/)\n" @@ -2034,16 +2034,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pl.po b/po/pl.po index f7b85227f..00d4e22cd 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Polish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pl/)\n" @@ -2036,16 +2036,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/pt_BR.po b/po/pt_BR.po index 840ff80e5..2fa82eac4 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/pt_BR/)\n" @@ -2033,16 +2033,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/ru.po b/po/ru.po index c89042ca3..294f2f35a 100644 --- a/po/ru.po +++ b/po/ru.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" -"PO-Revision-Date: 2016-05-10 09:58+0000\n" -"Last-Translator: Belledonne Communications \n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" +"PO-Revision-Date: 2016-05-10 12:36+0000\n" +"Last-Translator: AlexL \n" "Language-Team: Russian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2044,16 +2044,16 @@ msgstr "Сервис недоступен, повтор" msgid "Authentication token is %s" msgstr "Маркер проверки подлинности: %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Параметры звонка не были изменены: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Параметры звонка были успешно изменены." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." @@ -2099,4 +2099,4 @@ msgstr "Невозможно воспроизвести %s." #: ../gtk/videowindow.c:252 msgid "Take screenshot" -msgstr "" +msgstr "Сделать скриншот" diff --git a/po/sr.po b/po/sr.po index 5b81e540d..eb96493a2 100644 --- a/po/sr.po +++ b/po/sr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Serbian (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sr/)\n" @@ -2037,16 +2037,16 @@ msgstr "Услуга није доступна, поново покушавам" msgid "Authentication token is %s" msgstr "Симбол потврђивања идентитета је „%s“" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Параметри позива не могу бити измењени: %s." -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Параметри позива су успешно измењени." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/sv.po b/po/sv.po index 03816e5ce..983966d5a 100644 --- a/po/sv.po +++ b/po/sv.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Swedish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/sv/)\n" @@ -2035,16 +2035,16 @@ msgstr "Tjänst ej tillgänglig, försöker igen" msgid "Authentication token is %s" msgstr "Autentiseringstecken är %s" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "Samtalsparametrar kunde inte ändras: %s" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "Samtalsparametrar ändrades framgångsrikt." -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/tr.po b/po/tr.po index 8fb11ee8f..4b27eecfa 100644 --- a/po/tr.po +++ b/po/tr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Turkish (http://www.transifex.com/belledonne-communications/linphone-gtk/language/tr/)\n" @@ -2035,16 +2035,16 @@ msgstr "Servis kullanımdışı, tekrar deneyin" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/zh_CN.po b/po/zh_CN.po index c52be6fd2..3ae8176a3 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Chinese (China) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_CN/)\n" @@ -2030,16 +2030,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." diff --git a/po/zh_TW.po b/po/zh_TW.po index 7c095bb7b..581911162 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linphone-gtk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-05-10 11:54+0200\n" +"POT-Creation-Date: 2016-05-19 14:01+0200\n" "PO-Revision-Date: 2016-05-10 09:58+0000\n" "Last-Translator: Belledonne Communications \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/belledonne-communications/linphone-gtk/language/zh_TW/)\n" @@ -2030,16 +2030,16 @@ msgstr "" msgid "Authentication token is %s" msgstr "" -#: ../coreapi/linphonecall.c:1646 +#: ../coreapi/linphonecall.c:1663 #, c-format msgid "Call parameters could not be modified: %s." msgstr "" -#: ../coreapi/linphonecall.c:1648 +#: ../coreapi/linphonecall.c:1665 msgid "Call parameters were successfully modified." msgstr "" -#: ../coreapi/linphonecall.c:4619 +#: ../coreapi/linphonecall.c:4636 #, c-format msgid "You have missed %i call." msgid_plural "You have missed %i calls." From 69a125b9fea806faac82e390444d08c0a7c67b8c Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Wed, 25 May 2016 14:10:23 +0200 Subject: [PATCH 20/41] Propagating structures renaming. --- coreapi/lpconfig.c | 1 - coreapi/sqlite3_bctbx_vfs.c | 16 ++++++++-------- coreapi/sqlite3_bctbx_vfs.h | 16 ++++++++-------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 88070bb9d..55d4708f3 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -402,7 +402,6 @@ LpConfig *lp_config_new_with_factory(const char *config_filename, const char *fa bctbx_vfs_file_t* pFile = NULL; LpConfig *lpconfig=lp_new0(LpConfig,1); - bctbx_vfs_set_default(NULL); lpconfig->g_bctbx_vfs = bctbx_vfs_get_default(); lpconfig->refcnt=1; diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index a1178f101..c6ed261d5 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -36,7 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. static int sqlite3bctbx_Close(sqlite3_file *p){ int ret; - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p; + sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p; ret = bctbx_file_close(pFile->pbctbx_file); if (!ret){ @@ -64,7 +64,7 @@ static int sqlite3bctbx_Close(sqlite3_file *p){ */ static int sqlite3bctbx_Read(sqlite3_file *p, void *buf, int count, sqlite_int64 offset){ int ret; - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p; + sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p; if (pFile){ ret = bctbx_file_read(pFile->pbctbx_file, buf, count, offset); if( ret==count ){ @@ -92,7 +92,7 @@ static int sqlite3bctbx_Read(sqlite3_file *p, void *buf, int count, sqlite_int64 * @return SQLITE_OK on success, SQLITE_IOERR_WRITE if an error occurred. */ static int sqlite3bctbx_Write(sqlite3_file *p, const void *buf, int count, sqlite_int64 offset){ - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p; + sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p; int ret; if (pFile ){ ret = bctbx_file_write(pFile->pbctbx_file, buf, count, offset); @@ -115,7 +115,7 @@ static int sqlite3bctbx_Write(sqlite3_file *p, const void *buf, int count, sqlit static int sqlite3bctbx_FileSize(sqlite3_file *p, sqlite_int64 *pSize){ int rc; /* Return code from fstat() call */ - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*) p; + sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*) p; if (pFile->pbctbx_file){ rc = bctbx_file_size(pFile->pbctbx_file); if( rc < 0 ) { @@ -206,7 +206,7 @@ static int sqlite3bctbx_nolockUnlock(sqlite3_file *pUnused, int unused){ * @return SQLITE_OK on success, SLITE_IOERR_FSYNC if an error occurred. */ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ - sqlite3_bctbx_file *pFile = (sqlite3_bctbx_file*)p; + sqlite3_bctbx_file_t *pFile = (sqlite3_bctbx_file_t*)p; #if _WIN32 return (FlushFileBuffers(pFile->pbctbx_file->fd) ? SQLITE_OK : SQLITE_IOERR_FSYNC); #else @@ -246,7 +246,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file sqlite3bctbx_DeviceCharacteristics, }; - sqlite3_bctbx_file * pFile = (sqlite3_bctbx_file*)p; /*File handle sqlite3_bctbx_file*/ + sqlite3_bctbx_file_t * pFile = (sqlite3_bctbx_file_t*)p; /*File handle sqlite3_bctbx_file_t*/ int openFlags = 0; @@ -261,7 +261,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file if( flags&SQLITE_OPEN_READONLY ) openFlags |= O_RDONLY; if( flags&SQLITE_OPEN_READWRITE ) openFlags |= O_RDWR; - pFile->pbctbx_file = bctbx_file_open2(bc_create_vfs(), fName, openFlags); + pFile->pbctbx_file = bctbx_file_open2(bctbx_vfs_get_default(), fName, openFlags); if( pFile->pbctbx_file == NULL){ return SQLITE_CANTOPEN; } @@ -279,7 +279,7 @@ static int sqlite3bctbx_Open(sqlite3_vfs *pVfs, const char *fName, sqlite3_file sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ static sqlite3_vfs bctbx_vfs = { 1, /* iVersion */ - sizeof(sqlite3_bctbx_file), /* szOsFile */ + sizeof(sqlite3_bctbx_file_t), /* szOsFile */ MAXPATHNAME, /* mxPathname */ 0, /* pNext */ "sqlite3bctbx_vfs", /* zName */ diff --git a/coreapi/sqlite3_bctbx_vfs.h b/coreapi/sqlite3_bctbx_vfs.h index 701e5f975..0b1fb9d8a 100644 --- a/coreapi/sqlite3_bctbx_vfs.h +++ b/coreapi/sqlite3_bctbx_vfs.h @@ -1,5 +1,5 @@ /* -sqlite3_bctbx_vfs.h +sqlite3_bctbx_vfs_t.h Copyright (C) 2016 Belledonne Communications SARL This program is free software; you can redistribute it and/or @@ -37,10 +37,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** - * sqlite3_bctbx_file VFS file structure. + * sqlite3_bctbx_file_t VFS file structure. */ -typedef struct sqlite3_bctbx_file sqlite3_bctbx_file; -struct sqlite3_bctbx_file { +typedef struct sqlite3_bctbx_file_t sqlite3_bctbx_file_t; +struct sqlite3_bctbx_file_t { sqlite3_file base; /* Base class. Must be first. */ bctbx_vfs_file_t* pbctbx_file; }; @@ -51,9 +51,9 @@ struct sqlite3_bctbx_file { * Very simple VFS structure based on sqlite3_vfs. * Only the Open function is implemented, */ -typedef struct sqlite3_bctbx_vfs sqlite3_bctbx_vfs; -struct sqlite3_bctbx_vfs { - sqlite3_bctbx_vfs *pNext; /* Next registered VFS */ +typedef struct sqlite3_bctbx_vfs_t sqlite3_bctbx_vfs_t; +struct sqlite3_bctbx_vfs_t { + sqlite3_bctbx_vfs_t *pNext; /* Next registered VFS */ const char *vfsName; /* Virtual file system name */ int (*xOpen)(sqlite3_vfs* pVfs, const char *fName, sqlite3_file *pFile,int flags, int *pOutFlags); @@ -90,7 +90,7 @@ sqlite3_vfs *sqlite3_bctbx_vfs_create(void); /** * Registers sqlite3bctbx_vfs to SQLite VFS. If makeDefault is 1, * the VFS will be used by default. - * Methods not implemented by sqlite3_bctbx_vfs are initialized to the one + * Methods not implemented by sqlite3_bctbx_vfs_t are initialized to the one * used by the unix-none VFS where all locking file operations are no-ops. * @param makeDefault set to 1 to make the newly registered VFS be the default one, set to 0 instead. */ From 9eb98a78f9f44a5506d7ca627aaf5e6bbec3f0db Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 25 May 2016 15:35:46 +0200 Subject: [PATCH 21/41] linphonecore.c: stop refreshing deleted proxies in case of network loss to avoid automatic reconnection --- coreapi/linphonecore.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 7ab2f4d05..762d7aae9 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -6684,24 +6684,35 @@ static void linphone_core_uninit(LinphoneCore *lc) ms_factory_destroy(lc->factory); } +static void stop_refreshing_proxy_config(bool_t is_sip_reachable, LinphoneProxyConfig* cfg) { + if (linphone_proxy_config_register_enabled(cfg) ) { + if (!is_sip_reachable) { + linphone_proxy_config_stop_refreshing(cfg); + linphone_proxy_config_set_state(cfg, LinphoneRegistrationNone,"Registration impossible (network down)"); + }else{ + cfg->commit=TRUE; + } + } +} static void set_sip_network_reachable(LinphoneCore* lc,bool_t is_sip_reachable, time_t curtime){ // second get the list of available proxies - const MSList *elem=linphone_core_get_proxy_config_list(lc); + const MSList *elem = NULL; if (lc->sip_network_reachable==is_sip_reachable) return; // no change, ignore. lc->network_reachable_to_be_notified=TRUE; ms_message("SIP network reachability state is now [%s]",is_sip_reachable?"UP":"DOWN"); - for(;elem!=NULL;elem=elem->next){ + for(elem=linphone_core_get_proxy_config_list(lc);elem!=NULL;elem=elem->next){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data; - if (linphone_proxy_config_register_enabled(cfg) ) { - if (!is_sip_reachable) { - linphone_proxy_config_stop_refreshing(cfg); - linphone_proxy_config_set_state(cfg, LinphoneRegistrationNone,"Registration impossible (network down)"); - }else{ - cfg->commit=TRUE; - } - } + stop_refreshing_proxy_config(is_sip_reachable, cfg); } + for(elem=lc->sip_conf.deleted_proxies;elem!=NULL;elem=elem->next){ + LinphoneProxyConfig *deleted_cfg=(LinphoneProxyConfig*)elem->data; + stop_refreshing_proxy_config(is_sip_reachable, deleted_cfg); + } + + + + lc->netup_time=curtime; lc->sip_network_reachable=is_sip_reachable; From 9a3e0a4f1ea490455e6f6771c31f941abd909e0e Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 25 May 2016 18:26:10 +0200 Subject: [PATCH 22/41] add global ipv6 option to liblinphone_tester --- tester/liblinphone_tester.c | 2 ++ tester/liblinphone_tester.h | 2 +- tester/tester.c | 5 ++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tester/liblinphone_tester.c b/tester/liblinphone_tester.c index 684654e88..bbd1052bf 100644 --- a/tester/liblinphone_tester.c +++ b/tester/liblinphone_tester.c @@ -229,6 +229,8 @@ int main (int argc, char *argv[]) liblinphone_tester_keep_recorded_files(TRUE); } else if (strcmp(argv[i],"--disable-leak-detector")==0){ liblinphone_tester_disable_leak_detector(TRUE); + } else if (strcmp(argv[i],"--6")==0){ + liblinphonetester_ipv6=TRUE; } else { int bret = bc_tester_parse_args(argc, argv, i); if (bret>0) { diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h index 9718e3b1b..221df54a2 100644 --- a/tester/liblinphone_tester.h +++ b/tester/liblinphone_tester.h @@ -106,7 +106,7 @@ extern const char* test_username; extern const char* test_password; extern const char* test_route; extern const char* userhostsfile; - +extern bool_t liblinphonetester_ipv6; typedef struct _stats { int number_of_LinphoneRegistrationNone; diff --git a/tester/tester.c b/tester/tester.c index 56a4dab12..8d7070d35 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -53,6 +53,7 @@ const char* test_username="liblinphone_tester"; const char* test_password="secret"; const char* test_route="sip2.linphone.org"; const char *userhostsfile = "tester_hosts"; +bool_t liblinphonetester_ipv6 = FALSE; const char *liblinphone_tester_mire_id="Mire: Mire (synthetic moving picture)"; @@ -148,7 +149,9 @@ LinphoneCore* configure_lc_from(LinphoneCoreVTable* v_table, const char* path, c linphone_core_set_ringback(lc, ringbackpath); linphone_core_set_root_ca(lc,rootcapath); } - + + linphone_core_enable_ipv6(lc, liblinphonetester_ipv6); + sal_enable_test_features(lc->sal,TRUE); sal_set_dns_user_hosts_file(lc->sal, dnsuserhostspath); linphone_core_set_static_picture(lc,nowebcampath); From b208b2b003918a71ee2feb1e2726ea4cd29e2670 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Thu, 26 May 2016 09:25:22 +0200 Subject: [PATCH 23/41] tester: do not use a dummy vcard test if it is not available --- tester/liblinphone_tester.h | 4 +++- tester/tester.c | 2 ++ tester/vcard_tester.c | 34 ++++++++++++---------------------- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h index 221df54a2..b02861d6a 100644 --- a/tester/liblinphone_tester.h +++ b/tester/liblinphone_tester.h @@ -60,7 +60,9 @@ extern test_suite_t video_test_suite; extern test_suite_t multicast_call_test_suite; extern test_suite_t multi_call_test_suite; extern test_suite_t proxy_config_test_suite; +#ifdef VCARD_ENABLED extern test_suite_t vcard_test_suite; +#endif extern test_suite_t audio_bypass_suite; #if HAVE_SIPP extern test_suite_t complex_sip_call_test_suite; @@ -193,7 +195,7 @@ typedef struct _stats { int number_of_LinphonePresenceActivityWorking; int number_of_LinphonePresenceActivityWorship; const LinphonePresenceModel *last_received_presence; - + int number_of_LinphonePresenceBasicStatusOpen; int number_of_LinphonePresenceBasicStatusClosed; diff --git a/tester/tester.c b/tester/tester.c index 8d7070d35..928cff4a2 100644 --- a/tester/tester.c +++ b/tester/tester.c @@ -497,7 +497,9 @@ void liblinphone_tester_add_suites() { #if HAVE_SIPP bc_tester_add_suite(&complex_sip_call_test_suite); #endif +#ifdef VCARD_ENABLED bc_tester_add_suite(&vcard_test_suite); +#endif } static int linphone_core_manager_get_max_audio_bw_base(const int array[],int array_size) { diff --git a/tester/vcard_tester.c b/tester/vcard_tester.c index f49d6a31c..c1ef79f7a 100644 --- a/tester/vcard_tester.c +++ b/tester/vcard_tester.c @@ -16,6 +16,8 @@ along with this program. If not, see . */ +#ifdef VCARD_ENABLED + #include "linphonecore.h" #include "private.h" #include "liblinphone_tester.h" @@ -25,17 +27,12 @@ #define CARDDAV_SERVER "http://dav.linphone.org/card.php/addressbooks/tester/default" -#ifdef VCARD_ENABLED -static char *create_filepath(const char *dir, const char *filename, const char *ext) { - return ms_strdup_printf("%s/%s.%s", dir, filename, ext); -} - static void linphone_vcard_import_export_friends_test(void) { LinphoneCoreManager* manager = linphone_core_manager_new2("empty_rc", FALSE); LinphoneFriendList *lfl = linphone_core_get_default_friend_list(manager->lc); const MSList *friends = linphone_friend_list_get_friends(lfl); char *import_filepath = bc_tester_res("vcards/vcards.vcf"); - char *export_filepath = create_filepath(bc_tester_get_writable_dir_prefix(), "export_vcards", "vcf"); + char *export_filepath = bc_tester_file("export_vcards.vcf"); int count = 0; BC_ASSERT_EQUAL(ms_list_size(friends), 0, int, "%d"); @@ -212,7 +209,7 @@ static void friends_migration(void) { LinphoneFriendList *lfl = linphone_core_get_default_friend_list(manager->lc); const MSList *friends = linphone_friend_list_get_friends(lfl); MSList *friends_from_db = NULL; - char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db"); + char *friends_db = bc_tester_file("friends.db"); BC_ASSERT_EQUAL(ms_list_size(friends), 3, int, "%d"); BC_ASSERT_EQUAL(lp_config_get_int(lpc, "misc", "friends_migration_done", 0), 0, int, "%i"); @@ -261,7 +258,7 @@ static void friends_sqlite_storage(void) { const MSList *friends = NULL; MSList *friends_from_db = NULL; MSList *friends_lists_from_db = NULL; - char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db"); + char *friends_db = bc_tester_file("friends.db"); LinphoneFriendListStats *stats = (LinphoneFriendListStats *)ms_new0(LinphoneFriendListStats, 1); v_table->friend_list_created = friend_list_created_cb; @@ -414,7 +411,7 @@ static void carddav_sync_2(void) { LinphoneCoreManager *manager = linphone_core_manager_new2("carddav_rc", FALSE); LinphoneCardDAVStats *stats = (LinphoneCardDAVStats *)ms_new0(LinphoneCardDAVStats, 1); LinphoneFriend *lf = linphone_core_create_friend_with_address(manager->lc, "\"Sylvain\" "); - char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db"); + char *friends_db = bc_tester_file("friends.db"); LinphoneFriendList *lfl = linphone_core_create_friend_list(manager->lc); LinphoneCardDavContext *c = NULL; @@ -456,7 +453,7 @@ static void carddav_sync_3(void) { LinphoneCardDAVStats *stats = (LinphoneCardDAVStats *)ms_new0(LinphoneCardDAVStats, 1); LinphoneVcard *lvc = linphone_vcard_new_from_vcard4_buffer("BEGIN:VCARD\r\nVERSION:4.0\r\nUID:1f08dd48-29ac-4097-8e48-8596d7776283\r\nFN:Sylvain Berfini\r\nIMPP;TYPE=work:sip:sylvain@sip.linphone.org\r\nEND:VCARD\r\n"); LinphoneFriend *lf = linphone_friend_new_from_vcard(lvc); - char *friends_db = create_filepath(bc_tester_get_writable_dir_prefix(), "friends", "db"); + char *friends_db = bc_tester_file("friends.db"); LinphoneFriendList *lfl = linphone_core_create_friend_list(manager->lc); LinphoneCardDavContext *c = NULL; @@ -722,7 +719,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) { LinphoneVcard *lvc2 = linphone_vcard_new_from_vcard4_buffer("BEGIN:VCARD\r\nVERSION:4.0\r\nFN:Ghislain Mary\r\nIMPP;TYPE=work:sip:ghislain@sip.linphone.org\r\nEND:VCARD\r\n"); LinphoneFriend *lf2 = linphone_friend_new_from_vcard(lvc2); MSList *friends = NULL, *friends_iterator = NULL; - + linphone_friend_list_cbs_set_user_data(cbs, stats); linphone_friend_list_cbs_set_contact_created(cbs, carddav_contact_created); linphone_friend_list_cbs_set_contact_deleted(cbs, carddav_contact_deleted); @@ -730,7 +727,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) { linphone_friend_list_cbs_set_sync_status_changed(cbs, carddav_sync_status_changed); linphone_core_add_friend_list(manager->lc, lfl); linphone_friend_list_set_uri(lfl, CARDDAV_SERVER); - + linphone_friend_list_add_friend(lfl, lf1); linphone_friend_unref(lf1); linphone_friend_list_synchronize_friends_from_server(lfl); @@ -738,7 +735,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) { linphone_friend_unref(lf2); wait_for_until(manager->lc, NULL, &stats->sync_done_count, 3, 15000); BC_ASSERT_EQUAL(stats->sync_done_count, 3, int, "%i"); - + stats->sync_done_count = 0; friends = ms_list_copy(lfl->friends); friends_iterator = friends; @@ -759,13 +756,7 @@ static void carddav_server_to_client_and_client_to_sever_sync(void) { linphone_core_manager_destroy(manager); } -#else -static void dummy_test(void) { -} -#endif - test_t vcard_tests[] = { -#ifdef VCARD_ENABLED { "Import / Export friends from vCards", linphone_vcard_import_export_friends_test }, { "Import a lot of friends from vCards", linphone_vcard_import_a_lot_of_friends_test }, { "vCard creation for existing friends", linphone_vcard_update_existing_friends_test }, @@ -783,9 +774,6 @@ test_t vcard_tests[] = { { "CardDAV integration", carddav_integration }, { "CardDAV multiple synchronizations", carddav_multiple_sync }, { "CardDAV client to server and server to client sync", carddav_server_to_client_and_client_to_sever_sync }, -#else - { "Dummy test", dummy_test } -#endif }; test_suite_t vcard_test_suite = { @@ -793,3 +781,5 @@ test_suite_t vcard_test_suite = { liblinphone_tester_before_each, liblinphone_tester_after_each, sizeof(vcard_tests) / sizeof(vcard_tests[0]), vcard_tests }; + +#endif From 8efcd200c0a677e6a5f5ae653656389b5a109477 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Thu, 26 May 2016 09:34:45 +0200 Subject: [PATCH 24/41] cosmetic --- coreapi/sqlite3_bctbx_vfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index c6ed261d5..b7a86cabc 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -215,6 +215,7 @@ static int sqlite3bctbx_Sync(sqlite3_file *p, int flags){ #endif } +/************************ END OF PLACE HOLDER FUNCTIONS ***********************/ /** * Opens the file fName and populates the structure pointed by p From f34c01aa400309007b11b0e07b834e34206e41c4 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Thu, 26 May 2016 11:19:38 +0200 Subject: [PATCH 25/41] NEWS update. --- NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 587ba456e..275aaacba 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,12 @@ linphone-3.10.0 -- May xxth, 2016 * Video conference support through a conference server (SDK only) + * Disable dummy STUN packets sending when ICE is activated. + * Signal AVPF support as AVP : Enable rtcp feedback on RTP/AVP by default + * Adding linphone daemon +  * Bug Fixes : + -0002832: Date/time of calls not shown in call history on Windows. + -0002690: Bad SDP when no audio codec has been enabled + -0000750: DTMF RFC2833 event always goes up in the same LinphoneCoreListener linphone-3.9.1 -- November 16th, 2015 * Fix crash when recording video calls with the VP8 codec From 5d5d4890dee501fc238d4c86cb2ba9343d0edf48 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Thu, 26 May 2016 11:30:53 +0200 Subject: [PATCH 26/41] missing gtk updates --- NEWS | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 275aaacba..67738b71e 100644 --- a/NEWS +++ b/NEWS @@ -3,10 +3,13 @@ linphone-3.10.0 -- May xxth, 2016 * Disable dummy STUN packets sending when ICE is activated. * Signal AVPF support as AVP : Enable rtcp feedback on RTP/AVP by default * Adding linphone daemon -  * Bug Fixes : - -0002832: Date/time of calls not shown in call history on Windows. - -0002690: Bad SDP when no audio codec has been enabled - -0000750: DTMF RFC2833 event always goes up in the same LinphoneCoreListener + * gtk - Show links to files received in chat by file transfer + * gtk - Debug window now stores “scroll to end” preference + * gtk - Added button to take screenshot of video call +  * Fix - gtk : Fixed issue busy presence not displayed in red + * Fix 0002832: Date/time of calls not shown in call history on Windows. + * Fix 0002690: Bad SDP when no audio codec has been enabled + * Fix 0000750: DTMF RFC2833 event always goes up in the same LinphoneCoreListener linphone-3.9.1 -- November 16th, 2015 * Fix crash when recording video calls with the VP8 codec From 7add04a59f7fe217e17cab81089a0dfc1c31a65e Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 26 May 2016 13:56:56 +0200 Subject: [PATCH 27/41] Enable ipv6 by default on IOS --- coreapi/linphonecore.c | 22 +++++++++++++--------- coreapi/lpconfig.c | 21 +++++++++++++++++++++ coreapi/lpconfig.h | 20 ++++++++++++++++++++ 3 files changed, 54 insertions(+), 9 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 762d7aae9..7083d37dd 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -940,7 +940,10 @@ static void sip_config_read(LinphoneCore *lc) const char *tmpstr; LCSipTransports tr; int i,tmp; - int ipv6; + int ipv6_default = FALSE; +#if TARGET_OS_IPHONE + ipv6_default=TRUE; +#endif if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){ sal_use_session_timers(lc->sal,200); @@ -949,11 +952,16 @@ static void sip_config_read(LinphoneCore *lc) sal_use_no_initial_route(lc->sal,lp_config_get_int(lc->config,"sip","use_no_initial_route",0)); sal_use_rport(lc->sal,lp_config_get_int(lc->config,"sip","use_rport",1)); - ipv6=lp_config_get_int(lc->config,"sip","use_ipv6",-1); - if (ipv6==-1){ - ipv6=0; +#if TARGET_OS_IPHONE + if (!lp_config_get_int(lc->config,"sip","ipv6_migration_done",FALSE) && lp_config_has_entry(lc->config,"sip","use_ipv6")) { + lp_config_clean_entry(lc->config,"sip","use_ipv6"); + lp_config_set_int(lc->config, "sip", "ipv6_migration_done", TRUE); + ms_message("IPV6 settings migration done."); } - linphone_core_enable_ipv6(lc,ipv6); +#endif + + lc->sip_conf.ipv6_enabled=lp_config_get_int(lc->config,"sip","use_ipv6",ipv6_default); + memset(&tr,0,sizeof(tr)); tr.udp_port=lp_config_get_int(lc->config,"sip","sip_port",5060); @@ -2543,9 +2551,6 @@ bool_t linphone_core_ipv6_enabled(LinphoneCore *lc){ * * @ingroup network_parameters * - * @note IPv6 support is exclusive with IPv4 in liblinphone: - * when IPv6 is turned on, IPv4 calls won't be possible anymore. - * By default IPv6 support is off. **/ void linphone_core_enable_ipv6(LinphoneCore *lc, bool_t val){ if (lc->sip_conf.ipv6_enabled!=val){ @@ -6392,7 +6397,6 @@ void sip_config_uninit(LinphoneCore *lc) lp_config_set_int(lc->config,"sip","inc_timeout",config->inc_timeout); lp_config_set_int(lc->config,"sip","in_call_timeout",config->in_call_timeout); lp_config_set_int(lc->config,"sip","delayed_timeout",config->delayed_timeout); - lp_config_set_int(lc->config,"sip","use_ipv6",config->ipv6_enabled); lp_config_set_int(lc->config,"sip","register_only_when_network_is_up",config->register_only_when_network_is_up); lp_config_set_int(lc->config,"sip","register_only_when_upnp_is_ok",config->register_only_when_upnp_is_ok); diff --git a/coreapi/lpconfig.c b/coreapi/lpconfig.c index 55d4708f3..b5c547b1f 100644 --- a/coreapi/lpconfig.c +++ b/coreapi/lpconfig.c @@ -1056,3 +1056,24 @@ char* lp_config_dump(const LpConfig *lpconfig) { return buffer; } + +void lp_config_clean_entry(LpConfig *lpconfig, const char *section, const char *key) { + LpSection *sec; + LpItem *item; + sec=lp_config_find_section(lpconfig,section); + if (sec!=NULL){ + item=lp_section_find_item(sec,key); + if (item!=NULL) + lp_section_remove_item(sec,item); + } + return ; +} +int lp_config_has_entry(const LpConfig *lpconfig, const char *section, const char *key) { + LpSection *sec; + sec=lp_config_find_section(lpconfig,section); + if (sec!=NULL){ + return lp_section_find_item(sec,key) != NULL; + } else + return FALSE; + +} diff --git a/coreapi/lpconfig.h b/coreapi/lpconfig.h index d99264bed..86c1089a9 100644 --- a/coreapi/lpconfig.h +++ b/coreapi/lpconfig.h @@ -200,6 +200,26 @@ LINPHONE_PUBLIC int lp_config_has_section(const LpConfig *lpconfig, const char * **/ LINPHONE_PUBLIC void lp_config_clean_section(LpConfig *lpconfig, const char *section); +/** + * Returns 1 if a given section with a given key is present in the configuration. + * @param[in] lpconfig The LpConfig object + * @param[in] section + * @param[in] key + * + * @ingroup misc + **/ +LINPHONE_PUBLIC int lp_config_has_entry(const LpConfig *lpconfig, const char *section, const char *key); + +/** + * Removes entries for key,value in a section. + * @param[in] lpconfig The LpConfig object + * @param[in] section + * @param[in] key + * + * @ingroup misc + **/ +LINPHONE_PUBLIC void lp_config_clean_entry(LpConfig *lpconfig, const char *section, const char *key); + /** * Returns the list of sections' names in the LpConfig. * @param[in] lpconfig The LpConfig object From b08cdb221212bccc990458e9539a0424e29f8cdd Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 26 May 2016 17:57:29 +0200 Subject: [PATCH 28/41] Fix compilation error. --- coreapi/bellesip_sal/sal_op_call.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/coreapi/bellesip_sal/sal_op_call.c b/coreapi/bellesip_sal/sal_op_call.c index 7ff099f72..f8e42e211 100644 --- a/coreapi/bellesip_sal/sal_op_call.c +++ b/coreapi/bellesip_sal/sal_op_call.c @@ -68,9 +68,10 @@ static void sdp_process(SalOp *h){ if(h->cnx_ip_to_0000_if_sendonly_enabled && sal_media_description_has_dir(h->result,SalStreamSendOnly)) { set_addr_to_0000(h->result->addr); for(i=0;iresult->streams[i].dir == SalStreamSendOnly) - set_addr_to_0000(h->result->streams[i].rtp_addr); - set_addr_to_0000(h->result->streams[i].rtcp_addr); + if (h->result->streams[i].dir == SalStreamSendOnly) { + set_addr_to_0000(h->result->streams[i].rtp_addr); + set_addr_to_0000(h->result->streams[i].rtcp_addr); + } } } h->sdp_answer=(belle_sdp_session_description_t *)belle_sip_object_ref(media_description_to_sdp(h->result)); From fca10a6943637c80bcb9e8cf5467e88d2f540caa Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Fri, 27 May 2016 11:38:36 +0200 Subject: [PATCH 29/41] Fix SQLite3 vas on windows. --- coreapi/sqlite3_bctbx_vfs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index b7a86cabc..9e190106f 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -303,8 +303,11 @@ sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ void sqlite3_bctbx_vfs_register( int makeDefault){ sqlite3_vfs* pVfsToUse = sqlite3_bctbx_vfs_create(); + #if _WIN32 + sqlite3_vfs* pDefault = sqlite3_vfs_find("win32"); + #else sqlite3_vfs* pDefault = sqlite3_vfs_find("unix-none"); - + #endif pVfsToUse->xAccess = pDefault->xAccess; pVfsToUse->xCurrentTime = pDefault->xCurrentTime; From 4344bc3475541cf13b2e214b4d661cc84496cc6a Mon Sep 17 00:00:00 2001 From: Brieuc Viel Date: Fri, 27 May 2016 13:42:05 +0200 Subject: [PATCH 30/41] mediastreamer2 - updated - isVideoCapable() edited - hack.hasCamera removed --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index fd9850039..7bdbf3bf9 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit fd98500399f8105534696deb7f3196b7b213aedd +Subproject commit 7bdbf3bf93ab89b00eb2cc31ec08ef17d08eaed6 From e4c674c2e3887063aa2c73163c748acccd5fd12b Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 27 May 2016 23:03:05 +0200 Subject: [PATCH 31/41] implement the sending of out-of-dialog NOTIFYs, and add non-regression test This fixes a crash producing all the time when receiving such out-of-dialog NOTIFY. --- coreapi/bellesip_sal/sal_impl.c | 2 +- coreapi/bellesip_sal/sal_op_events.c | 69 ++++++++++++++++++++++++---- coreapi/bellesip_sal/sal_op_impl.c | 10 ++++ coreapi/callbacks.c | 37 +++++++++++---- coreapi/event.c | 16 +++++-- coreapi/event.h | 12 +++++ coreapi/linphonecore.h | 9 ++++ include/sal/sal.h | 4 ++ oRTP | 2 +- tester/eventapi_tester.c | 34 +++++++++++++- 10 files changed, 168 insertions(+), 27 deletions(-) diff --git a/coreapi/bellesip_sal/sal_impl.c b/coreapi/bellesip_sal/sal_impl.c index 90083418d..75071f1bc 100644 --- a/coreapi/bellesip_sal/sal_impl.c +++ b/coreapi/bellesip_sal/sal_impl.c @@ -292,7 +292,7 @@ static void process_request_event(void *ud, const belle_sip_request_event_t *eve belle_sip_provider_send_response(sal->prov,resp); return; }else if (sal->enable_test_features && strcmp("PUBLISH",method)==0) { - resp=belle_sip_response_create_from_request(req,200);/*out of dialog BYE */ + resp=belle_sip_response_create_from_request(req,200);/*out of dialog PUBLISH */ belle_sip_message_add_header((belle_sip_message_t*)resp,belle_sip_header_create("SIP-Etag","4441929FFFZQOA")); belle_sip_provider_send_response(sal->prov,resp); return; diff --git a/coreapi/bellesip_sal/sal_op_events.c b/coreapi/bellesip_sal/sal_op_events.c index a6d11b2aa..f1f6d20b1 100644 --- a/coreapi/bellesip_sal/sal_op_events.c +++ b/coreapi/bellesip_sal/sal_op_events.c @@ -61,7 +61,22 @@ static void subscribe_refresher_listener (belle_sip_refresher_t* refresher } static void subscribe_process_io_error(void *user_ctx, const belle_sip_io_error_event_t *event){ - ms_error("subscribe_process_io_error not implemented yet"); + SalOp *op = (SalOp*)user_ctx; + belle_sip_object_t *src = belle_sip_io_error_event_get_source(event); + if (BELLE_SIP_OBJECT_IS_INSTANCE_OF(src, belle_sip_client_transaction_t)){ + belle_sip_client_transaction_t *tr = BELLE_SIP_CLIENT_TRANSACTION(src); + belle_sip_request_t* req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr); + const char *method=belle_sip_request_get_method(req); + + if (!op->dialog) { + /*this is handling outgoing out-of-dialog notifies*/ + if (strcmp(method,"NOTIFY")==0){ + SalErrorInfo *ei=&op->error_info; + sal_error_info_set(ei,SalReasonIOError,0,NULL,NULL); + op->base.root->callbacks.on_notify_response(op); + } + } + } } static void subscribe_process_dialog_terminated(void *ctx, const belle_sip_dialog_terminated_event_t *event) { @@ -83,9 +98,41 @@ static void subscribe_process_dialog_terminated(void *ctx, const belle_sip_dialo } static void subscribe_response_event(void *op_base, const belle_sip_response_event_t *event){ + SalOp *op = (SalOp*)op_base; + belle_sip_request_t * req; + const char *method; + belle_sip_client_transaction_t *tr = belle_sip_response_event_get_client_transaction(event); + + if (!tr) return; + req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr); + method = belle_sip_request_get_method(req); + + if (!op->dialog) { + if (strcmp(method,"NOTIFY")==0){ + sal_op_set_error_info_from_response(op,belle_sip_response_event_get_response(event)); + op->base.root->callbacks.on_notify_response(op); + } + } } static void subscribe_process_timeout(void *user_ctx, const belle_sip_timeout_event_t *event) { + SalOp *op = (SalOp*)user_ctx; + belle_sip_request_t * req; + const char *method; + belle_sip_client_transaction_t *tr = belle_sip_timeout_event_get_client_transaction(event); + + if (!tr) return; + req = belle_sip_transaction_get_request((belle_sip_transaction_t*)tr); + method = belle_sip_request_get_method(req); + + if (!op->dialog) { + /*this is handling outgoing out-of-dialog notifies*/ + if (strcmp(method,"NOTIFY")==0){ + SalErrorInfo *ei=&op->error_info; + sal_error_info_set(ei,SalReasonRequestTimeout,0,NULL,NULL); + op->base.root->callbacks.on_notify_response(op); + } + } } static void subscribe_process_transaction_terminated(void *user_ctx, const belle_sip_transaction_terminated_event_t *event) { @@ -236,11 +283,7 @@ int sal_subscribe(SalOp *op, const char *from, const char *to, const char *event if( req == NULL ) { return -1; } - if (eventname){ - if (op->event) belle_sip_object_unref(op->event); - op->event=belle_sip_header_event_create(eventname); - belle_sip_object_ref(op->event); - } + sal_op_set_event(op, eventname); belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(belle_sip_header_expires_create(expires))); belle_sip_message_set_body_handler(BELLE_SIP_MESSAGE(req), BELLE_SIP_BODY_HANDLER(body_handler)); @@ -309,14 +352,20 @@ int sal_subscribe_decline(SalOp *op, SalReason reason){ int sal_notify(SalOp *op, const SalBodyHandler *body_handler){ belle_sip_request_t* notify; - if (!op->dialog) return -1; - - if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1; + if (op->dialog){ + if (!(notify=belle_sip_dialog_create_queued_request(op->dialog,"NOTIFY"))) return -1; + }else{ + sal_op_subscribe_fill_cbs(op); + notify = sal_op_build_request(op, "NOTIFY"); + } if (op->event) belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify),BELLE_SIP_HEADER(op->event)); belle_sip_message_add_header(BELLE_SIP_MESSAGE(notify) - ,BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_ACTIVE,600))); + ,op->dialog ? + BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_ACTIVE,600)) : + BELLE_SIP_HEADER(belle_sip_header_subscription_state_create(BELLE_SIP_SUBSCRIPTION_STATE_TERMINATED,0)) + ); belle_sip_message_set_body_handler(BELLE_SIP_MESSAGE(notify), BELLE_SIP_BODY_HANDLER(body_handler)); return sal_op_send_request(op,notify); } diff --git a/coreapi/bellesip_sal/sal_op_impl.c b/coreapi/bellesip_sal/sal_op_impl.c index b58be0f2b..51b7d23a5 100644 --- a/coreapi/bellesip_sal/sal_op_impl.c +++ b/coreapi/bellesip_sal/sal_op_impl.c @@ -799,3 +799,13 @@ int sal_op_refresh(SalOp *op) { ms_warning("sal_refresh on op [%p] of type [%s] no refresher",op,sal_op_type_to_string(op->type)); return -1; } + +void sal_op_set_event(SalOp *op, const char *eventname){ + belle_sip_header_event_t *header = NULL; + if (op->event) belle_sip_object_unref(op->event); + if (eventname){ + header = belle_sip_header_event_create(eventname); + belle_sip_object_ref(header); + } + op->event = header; +} diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 8f9f50690..9cb4572e6 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -1315,8 +1315,8 @@ static void notify(SalOp *op, SalSubscribeStatus st, const char *eventname, SalB LinphoneCore *lc=(LinphoneCore *)sal_get_user_pointer(sal_op_get_sal(op)); bool_t out_of_dialog = (lev==NULL); if (out_of_dialog) { - /*out of subscribe notify */ - lev=linphone_event_new_with_out_of_dialog_op(lc,op,LinphoneSubscriptionOutgoing,eventname); + /*out of dialog notify */ + lev = linphone_event_new_with_out_of_dialog_op(lc,op,LinphoneSubscriptionOutgoing,eventname); } { LinphoneContent *ct=linphone_content_from_sal_body_handler(body_handler); @@ -1325,14 +1325,12 @@ static void notify(SalOp *op, SalSubscribeStatus st, const char *eventname, SalB linphone_content_unref(ct); } } - if (st!=SalSubscribeNone){ + if (out_of_dialog){ + /*out of dialog NOTIFY do not create an implicit subscription*/ + linphone_event_set_state(lev, LinphoneSubscriptionTerminated); + }else if (st!=SalSubscribeNone){ linphone_event_set_state(lev,linphone_subscription_state_from_sal(st)); } - - if (out_of_dialog) { - linphone_event_unref(lev); - } - } static void subscribe_received(SalOp *op, const char *eventname, const SalBodyHandler *body_handler){ @@ -1373,6 +1371,7 @@ static void on_publish_response(SalOp* op){ } } + static void on_expire(SalOp *op){ LinphoneEvent *lev=(LinphoneEvent*)sal_op_get_user_pointer(op); @@ -1385,6 +1384,25 @@ static void on_expire(SalOp *op){ } } +static void on_notify_response(SalOp *op){ + LinphoneEvent *lev=(LinphoneEvent*)sal_op_get_user_pointer(op); + + if (lev==NULL) return; + /*this is actually handling out of dialogs notify - for the moment*/ + if (!lev->is_out_of_dialog_op) return; + switch (linphone_event_get_subscription_state(lev)){ + case LinphoneSubscriptionIncomingReceived: + if (sal_op_get_error_info(op)->reason == SalReasonNone){ + linphone_event_set_state(lev, LinphoneSubscriptionTerminated); + }else{ + linphone_event_set_state(lev, LinphoneSubscriptionError); + } + break; + default: + ms_warning("Unhandled on_notify_response() case %s", linphone_subscription_state_to_string(linphone_event_get_subscription_state(lev))); + } +} + SalCallbacks linphone_sal_callbacks={ call_received, call_ringing, @@ -1417,7 +1435,8 @@ SalCallbacks linphone_sal_callbacks={ auth_requested, info_received, on_publish_response, - on_expire + on_expire, + on_notify_response }; diff --git a/coreapi/event.c b/coreapi/event.c index 2d6e7eaf5..79d3845b3 100644 --- a/coreapi/event.c +++ b/coreapi/event.c @@ -161,13 +161,21 @@ LinphoneEvent *linphone_core_create_subscribe(LinphoneCore *lc, const LinphoneAd return lev; } +LinphoneEvent *linphone_core_create_notify(LinphoneCore *lc, const LinphoneAddress *resource, const char *event){ + LinphoneEvent *lev=linphone_event_new(lc, LinphoneSubscriptionIncoming, event, -1); + linphone_configure_op(lc,lev->op,resource,NULL,TRUE); + lev->subscription_state = LinphoneSubscriptionIncomingReceived; + sal_op_set_event(lev->op, event); + lev->is_out_of_dialog_op = TRUE; + return lev; +} + LinphoneEvent *linphone_core_subscribe(LinphoneCore *lc, const LinphoneAddress *resource, const char *event, int expires, const LinphoneContent *body){ LinphoneEvent *lev=linphone_core_create_subscribe(lc,resource,event,expires); linphone_event_send_subscribe(lev,body); return lev; } - int linphone_event_send_subscribe(LinphoneEvent *lev, const LinphoneContent *body){ SalBodyHandler *body_handler; int err; @@ -241,7 +249,7 @@ int linphone_event_deny_subscription(LinphoneEvent *lev, LinphoneReason reason){ int linphone_event_notify(LinphoneEvent *lev, const LinphoneContent *body){ SalBodyHandler *body_handler; - if (lev->subscription_state!=LinphoneSubscriptionActive){ + if (lev->subscription_state!=LinphoneSubscriptionActive && lev->subscription_state!=LinphoneSubscriptionIncomingReceived){ ms_error("linphone_event_notify(): cannot notify if subscription is not active."); return -1; } @@ -392,7 +400,7 @@ const char *linphone_event_get_name(const LinphoneEvent *lev){ } const LinphoneAddress *linphone_event_get_from(const LinphoneEvent *lev){ - if (lev->is_out_of_dialog_op){ + if (lev->is_out_of_dialog_op && lev->dir == LinphoneSubscriptionOutgoing){ return (LinphoneAddress*)sal_op_get_to_address(lev->op); }else{ return (LinphoneAddress*)sal_op_get_from_address(lev->op); @@ -400,7 +408,7 @@ const LinphoneAddress *linphone_event_get_from(const LinphoneEvent *lev){ } const LinphoneAddress *linphone_event_get_resource(const LinphoneEvent *lev){ - if (lev->is_out_of_dialog_op){ + if (lev->is_out_of_dialog_op && lev->dir == LinphoneSubscriptionOutgoing){ return (LinphoneAddress*)sal_op_get_from_address(lev->op); }else{ return (LinphoneAddress*)sal_op_get_to_address(lev->op); diff --git a/coreapi/event.h b/coreapi/event.h index d84d6d180..0c8c16215 100644 --- a/coreapi/event.h +++ b/coreapi/event.h @@ -129,6 +129,18 @@ LINPHONE_PUBLIC LinphoneEvent *linphone_core_subscribe(LinphoneCore *lc, const L **/ LINPHONE_PUBLIC LinphoneEvent *linphone_core_create_subscribe(LinphoneCore *lc, const LinphoneAddress *resource, const char *event, int expires); + +/** + * Create an out-of-dialog notification, specifying the destination resource, the event name. + * The notification can be send with linphone_event_notify(). + * @param lc the #LinphoneCore + * @param resource the destination resource + * @param event the event name + * @return a LinphoneEvent holding the context of the notification. +**/ +LinphoneEvent *linphone_core_create_notify(LinphoneCore *lc, const LinphoneAddress *resource, const char *event); + + /** * Send a subscription previously created by linphone_core_create_subscribe(). * @param ev the LinphoneEvent diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 775ac4a86..bbb170a83 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -4387,6 +4387,7 @@ LINPHONE_PUBLIC bool_t linphone_core_video_multicast_enabled(const LinphoneCore * @param lc the LinphoneCore * @param params the parameters used for the network simulation. * @return 0 if successful, -1 otherwise. + * @ingroup media_parameters **/ LINPHONE_PUBLIC int linphone_core_set_network_simulator_params(LinphoneCore *lc, const OrtpNetworkSimulatorParams *params); @@ -4395,6 +4396,7 @@ LINPHONE_PUBLIC int linphone_core_set_network_simulator_params(LinphoneCore *lc, * Get the previously set network simulation parameters. * @see linphone_core_set_network_simulator_params * @return a OrtpNetworkSimulatorParams structure. + * @ingroup media_parameters **/ LINPHONE_PUBLIC const OrtpNetworkSimulatorParams *linphone_core_get_network_simulator_params(const LinphoneCore *lc); @@ -4402,6 +4404,7 @@ LINPHONE_PUBLIC const OrtpNetworkSimulatorParams *linphone_core_get_network_simu * Set the video preset to be used for video calls. * @param[in] lc LinphoneCore object * @param[in] preset The name of the video preset to be used (can be NULL to use the default video preset). + * @ingroup media_parameters */ LINPHONE_PUBLIC void linphone_core_set_video_preset(LinphoneCore *lc, const char *preset); @@ -4409,6 +4412,7 @@ LINPHONE_PUBLIC void linphone_core_set_video_preset(LinphoneCore *lc, const char * Get the video preset used for video calls. * @param[in] lc LinphoneCore object * @return The name of the video preset used for video calls (can be NULL if the default video preset is used). + * @ingroup media_parameters */ LINPHONE_PUBLIC const char * linphone_core_get_video_preset(const LinphoneCore *lc); @@ -4416,6 +4420,7 @@ LINPHONE_PUBLIC const char * linphone_core_get_video_preset(const LinphoneCore * * Gets if realtime text is enabled or not * @param[in] lc LinphoneCore object * @return true if realtime text is enabled, false otherwise + * @ingroup media_parameters */ LINPHONE_PUBLIC bool_t linphone_core_realtime_text_enabled(LinphoneCore *lc); @@ -4423,6 +4428,7 @@ LINPHONE_PUBLIC bool_t linphone_core_realtime_text_enabled(LinphoneCore *lc); * Set http proxy address to be used for signaling during next channel connection. Use #linphone_core_set_network_reachable FASLE/TRUE to force channel restart. * @param[in] lc LinphoneCore object * @param[in] hostname of IP adress of the http proxy (can be NULL to disable). + * @ingroup network_parameters */ LINPHONE_PUBLIC void linphone_core_set_http_proxy_host(LinphoneCore *lc, const char *host) ; @@ -4430,6 +4436,7 @@ LINPHONE_PUBLIC void linphone_core_set_http_proxy_host(LinphoneCore *lc, const c * Set http proxy port to be used for signaling. * @param[in] lc LinphoneCore object * @param[in] port of the http proxy. + * @ingroup network_parameters */ LINPHONE_PUBLIC void linphone_core_set_http_proxy_port(LinphoneCore *lc, int port) ; @@ -4437,6 +4444,7 @@ LINPHONE_PUBLIC void linphone_core_set_http_proxy_port(LinphoneCore *lc, int por * Get http proxy address to be used for signaling. * @param[in] lc LinphoneCore object * @return hostname of IP adress of the http proxy (can be NULL to disable). + * @ingroup network_parameters */ LINPHONE_PUBLIC const char *linphone_core_get_http_proxy_host(const LinphoneCore *lc); @@ -4444,6 +4452,7 @@ LINPHONE_PUBLIC const char *linphone_core_get_http_proxy_host(const LinphoneCore * Get http proxy port to be used for signaling. * @param[in] lc LinphoneCore object * @return port of the http proxy. + * @ingroup network_parameters */ LINPHONE_PUBLIC int linphone_core_get_http_proxy_port(const LinphoneCore *lc); diff --git a/include/sal/sal.h b/include/sal/sal.h index 057c9d1b5..11b86d93b 100644 --- a/include/sal/sal.h +++ b/include/sal/sal.h @@ -508,6 +508,7 @@ typedef void (*SalOnSubscribePresenceClosed)(SalOp *salop, const char *from); typedef void (*SalOnPingReply)(SalOp *salop); typedef void (*SalOnInfoReceived)(SalOp *salop, SalBodyHandler *body); typedef void (*SalOnPublishResponse)(SalOp *salop); +typedef void (*SalOnNotifyResponse)(SalOp *salop); typedef void (*SalOnExpire)(SalOp *salop); /*allows sal implementation to access auth info if available, return TRUE if found*/ @@ -546,6 +547,7 @@ typedef struct SalCallbacks{ SalOnInfoReceived info_received; SalOnPublishResponse on_publish_response; SalOnExpire on_expire; + SalOnNotifyResponse on_notify_response; }SalCallbacks; @@ -700,6 +702,8 @@ void sal_error_info_set(SalErrorInfo *ei, SalReason reason, int code, const char /*entity tag used for publish (see RFC 3903)*/ const char *sal_op_get_entity_tag(const SalOp* op); void sal_op_set_entity_tag(SalOp *op, const char* entity_tag); +/*set the event header, for used with out of dialog SIP notify*/ +void sal_op_set_event(SalOp *op, const char *event); /*Call API*/ int sal_call_set_local_media_description(SalOp *h, SalMediaDescription *desc); diff --git a/oRTP b/oRTP index d10bdd483..d94f56bb3 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit d10bdd4832efa9b3bd6ce99b71873ca33326e812 +Subproject commit d94f56bb37b4575445206ef3ca784651ac81f83f diff --git a/tester/eventapi_tester.c b/tester/eventapi_tester.c index 170d749df..9ddf99ff6 100644 --- a/tester/eventapi_tester.c +++ b/tester/eventapi_tester.c @@ -39,7 +39,7 @@ void linphone_notify_received(LinphoneCore *lc, LinphoneEvent *lev, const char * LinphoneCoreManager *mgr; const char * ua = linphone_event_get_custom_header(lev, "User-Agent"); if (!BC_ASSERT_PTR_NOT_NULL(content)) return; - if (!linphone_content_is_multipart(content) && (!ua || !strstr(ua, "flexisip"))) { /*disable check for full presence serveur support*/ + if (!linphone_content_is_multipart(content) && (!ua || !strstr(ua, "flexisip"))) { /*disable check for full presence server support*/ /*hack to disable content checking for list notify */ BC_ASSERT_STRING_EQUAL(notify_content,(const char*)linphone_content_get_buffer(content)); } @@ -358,6 +358,35 @@ static void publish_without_expires(void){ publish_test_with_args(TRUE,-1); } +static void out_of_dialog_notify(void){ + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); + LinphoneContent* content; + LinphoneEvent *lev; + MSList* lcs=ms_list_append(NULL,marie->lc); + lcs=ms_list_append(lcs,pauline->lc); + + content = linphone_core_create_content(marie->lc); + linphone_content_set_type(content,"application"); + linphone_content_set_subtype(content,"somexml"); + linphone_content_set_buffer(content,notify_content,strlen(notify_content)); + + lev = linphone_core_create_notify(marie->lc,pauline->identity,"dodo"); + linphone_event_ref(lev); + linphone_event_add_custom_header(lev,"CustomHeader","someValue"); + linphone_event_notify(lev,content); + + + BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_NotifyReceived,1,3000)); + BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneSubscriptionTerminated,1,3000)); + + linphone_event_unref(lev); + + linphone_content_unref(content); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + test_t event_tests[] = { TEST_ONE_TAG("Subscribe declined", subscribe_test_declined, "presence"), TEST_ONE_TAG("Subscribe terminated by subscriber", subscribe_test_terminated_by_subscriber, "presence"), @@ -367,7 +396,8 @@ test_t event_tests[] = { TEST_ONE_TAG("Subscribe terminated by notifier", subscribe_test_terminated_by_notifier, "LeaksMemory"), TEST_ONE_TAG("Publish", publish_test, "presence"), TEST_ONE_TAG("Publish without expires", publish_without_expires, "presence"), - TEST_ONE_TAG("Publish without automatic refresh",publish_no_auto_test, "presence") + TEST_ONE_TAG("Publish without automatic refresh",publish_no_auto_test, "presence"), + TEST_ONE_TAG("Out of dialog notify", out_of_dialog_notify, "presence") }; test_suite_t event_test_suite = {"Event", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each, From 9fdec0e9b2fdae4eefbb137a9882a18ae9d650b8 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 30 May 2016 17:25:44 +0200 Subject: [PATCH 32/41] Update ortp submodule. --- oRTP | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oRTP b/oRTP index d94f56bb3..027e6c979 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit d94f56bb37b4575445206ef3ca784651ac81f83f +Subproject commit 027e6c979399e8d584c58f6c4d62c6c6fb60baba From cd5b0de04adbc9d32d23a633a6a261dfa6c2ec21 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 31 May 2016 09:24:19 +0200 Subject: [PATCH 33/41] Fixed leak in call tester --- tester/call_tester.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tester/call_tester.c b/tester/call_tester.c index 1be87acb4..74373da5a 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -5799,6 +5799,9 @@ static void _call_with_network_switch(bool_t use_ice, bool_t with_socket_refresh /*pauline shall be able to end the call without problem now*/ end_call(pauline, marie); end: + if (pauline_params) { + linphone_call_params_unref(pauline_params); + } ms_list_free(lcs); linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); From aba70a4afa643a936d65e0db9360840d22aea0a8 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 31 May 2016 11:33:45 +0200 Subject: [PATCH 34/41] don't make our sqlite vfs the default for all the process, because it conflicts with other use of sqlite (in ios apis for example) --- coreapi/linphonecore.c | 2 +- coreapi/message_storage.c | 43 ++++++++++++++++++++++--------------- coreapi/private.h | 2 ++ coreapi/sqlite3_bctbx_vfs.c | 5 +++-- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 7083d37dd..52090f148 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -1818,7 +1818,7 @@ static void linphone_core_init(LinphoneCore * lc, const LinphoneCoreVTable *vtab linphone_configuring_terminated(lc, LinphoneConfiguringSkipped, NULL); } // else linphone_core_start will be called after the remote provisioning (see linphone_core_iterate) #ifdef SQLITE_STORAGE_ENABLED - sqlite3_bctbx_vfs_register(1); + sqlite3_bctbx_vfs_register(0); #endif } diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index 60a759b45..bf1883de6 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -42,28 +42,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "sqlite3.h" #include -int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) { - char* errmsg = NULL; - int ret; -#if defined(ANDROID) || defined(__QNXNTO__) - ret = sqlite3_open(db_file, db); -#elif TARGET_OS_IPHONE - /* the secured filesystem of the iPHone doesn't allow writing while the app is in background mode, which is problematic. - * We workaround by asking that the open is made with no protection*/ - ret = sqlite3_open_v2(db_file, db, SQLITE_OPEN_FILEPROTECTION_NONE|SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE, NULL); -#elif defined(_WIN32) - wchar_t db_file_utf16[MAX_PATH_SIZE]; - ret = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, db_file, -1, db_file_utf16, MAX_PATH_SIZE); - if(ret == 0) db_file_utf16[0] = '\0'; - ret = sqlite3_open16(db_file_utf16, db); +static char *utf8_convert(const char *filename){ + char db_file_utf8[MAX_PATH_SIZE] = ""; +#if defined(_WIN32) + wchar_t db_file_utf16[MAX_PATH_SIZE]={0}; + MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, filename, -1, db_file_utf16, MAX_PATH_SIZE); + WideCharToMultiByte(CP_UTF8, 0, db_file_utf16, -1, db_file_utf8, sizeof(db_file_utf8), NULL, NULL); #else char db_file_locale[MAX_PATH_SIZE] = {'\0'}; - char db_file_utf8[MAX_PATH_SIZE] = ""; char *inbuf=db_file_locale, *outbuf=db_file_utf8; size_t inbyteleft = MAX_PATH_SIZE, outbyteleft = MAX_PATH_SIZE; iconv_t cb; - strncpy(db_file_locale, db_file, MAX_PATH_SIZE-1); + strncpy(db_file_locale, filename, MAX_PATH_SIZE-1); cb = iconv_open("UTF-8", nl_langinfo(CODESET)); if(cb != (iconv_t)-1) { int ret; @@ -71,8 +62,26 @@ int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) { if(ret == -1) db_file_utf8[0] = '\0'; iconv_close(cb); } - ret = sqlite3_open(db_file_utf8, db); #endif + return ms_strdup(db_file_utf8); +} + + +int _linphone_sqlite3_open(const char *db_file, sqlite3 **db) { + char* errmsg = NULL; + int ret; + int flags = SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE; + +#if TARGET_OS_IPHONE + /* the secured filesystem of the iPHone doesn't allow writing while the app is in background mode, which is problematic. + * We workaround by asking that the open is made with no protection*/ + flags |= SQLITE_OPEN_FILEPROTECTION_NONE; +#endif + + char *utf8_filename = utf8_convert(db_file); + ret = sqlite3_open_v2(utf8_filename, db, flags, LINPHONE_SQLITE3_VFS); + ms_free(utf8_filename); + if (ret != SQLITE_OK) return ret; // Some platforms do not provide a way to create temporary files which are needed // for transactions... so we work in memory only diff --git a/coreapi/private.h b/coreapi/private.h index a85259154..4cf2ef61d 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -1521,6 +1521,8 @@ int linphone_core_get_default_proxy_config_index(LinphoneCore *lc); char *linphone_presence_model_to_xml(LinphonePresenceModel *model) ; +#define LINPHONE_SQLITE3_VFS "sqlite3bctbx_vfs" + #ifdef __cplusplus } #endif diff --git a/coreapi/sqlite3_bctbx_vfs.c b/coreapi/sqlite3_bctbx_vfs.c index 9e190106f..ae9d4e869 100644 --- a/coreapi/sqlite3_bctbx_vfs.c +++ b/coreapi/sqlite3_bctbx_vfs.c @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef SQLITE_STORAGE_ENABLED +#include "private.h" #include "sqlite3_bctbx_vfs.h" #include @@ -283,7 +284,7 @@ sqlite3_vfs *sqlite3_bctbx_vfs_create(void){ sizeof(sqlite3_bctbx_file_t), /* szOsFile */ MAXPATHNAME, /* mxPathname */ 0, /* pNext */ - "sqlite3bctbx_vfs", /* zName */ + LINPHONE_SQLITE3_VFS, /* zName */ 0, /* pAppData */ sqlite3bctbx_Open, /* xOpen */ 0, /* xDelete */ @@ -333,7 +334,7 @@ void sqlite3_bctbx_vfs_register( int makeDefault){ void sqlite3_bctbx_vfs_unregister(void) { - sqlite3_vfs* pVfs = sqlite3_vfs_find("sqlite3bctbx_vfs"); + sqlite3_vfs* pVfs = sqlite3_vfs_find(LINPHONE_SQLITE3_VFS); sqlite3_vfs_unregister(pVfs); } From 6574a95fd755216b8b91616772cdf4f986214cc6 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 31 May 2016 11:40:49 +0200 Subject: [PATCH 35/41] Update ms2 submodule. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index 7bdbf3bf9..ddef060fe 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 7bdbf3bf93ab89b00eb2cc31ec08ef17d08eaed6 +Subproject commit ddef060fe4c3a3e8f6dd4439da5064a03de2cbd1 From 78761186437e9cac99f7919cadcf2761eef20db9 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 31 May 2016 15:45:59 +0200 Subject: [PATCH 36/41] gtk: display seconds in chat message delivery time --- gtk/chat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gtk/chat.c b/gtk/chat.c index 8b5e8b289..008d356d3 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -180,7 +180,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, g_object_set_data(G_OBJECT(w),"from_message",g_strdup(from_str)); } ms_free(from_str); - + if (!message) { const char *external_body_url = linphone_chat_message_get_external_body_url(msg); if (external_body_url) message = external_body_url; @@ -216,7 +216,7 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, if(tnow_day != tm->tm_yday || (tnow_day == tm->tm_yday && tnow_year != tm->tm_year)) { strftime(buf,80,"%a %x, %H:%M",tm); } else { - strftime(buf,80,"%H:%M",tm); + strftime(buf,80,"%H:%M:%S",tm); } gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1,"status", me ? "me" : NULL, NULL); break; @@ -267,7 +267,7 @@ void update_chat_state_message(LinphoneChatMessageState state,LinphoneChatMessag case LinphoneChatMessageStateDelivered: t=time(NULL); tm=localtime(&t); - strftime(buf,80,"%H:%M",tm); + strftime(buf,80,"%H:%M:%S",tm); gtk_text_buffer_insert_with_tags_by_name(b,&iter,(gchar*)buf,-1,"status", "me", NULL); break; case LinphoneChatMessageStateNotDelivered: From cb9816e9fb0cdb8f91ac64f1e65b7fce7b05db20 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 31 May 2016 16:08:35 +0200 Subject: [PATCH 37/41] lime.c: implement "preferred" mode --- coreapi/chat.c | 55 ++++++++++++++++++++++++++++++++---- coreapi/chat_file_transfer.c | 12 ++++---- coreapi/lime.h | 10 +++---- coreapi/private.h | 2 +- 4 files changed, 61 insertions(+), 18 deletions(-) diff --git a/coreapi/chat.c b/coreapi/chat.c index 061e14fc6..3e6d374e2 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -27,6 +27,7 @@ #include "lpconfig.h" #include "belle-sip/belle-sip.h" #include "ortp/b64.h" +#include "lime.h" #include #include @@ -264,8 +265,50 @@ LinphoneChatRoom *linphone_core_get_chat_room_from_uri(LinphoneCore *lc, const c return _linphone_core_get_or_create_chat_room(lc, to); } -bool_t linphone_chat_room_lime_enabled(LinphoneChatRoom *cr) { - return linphone_core_lime_enabled(cr->lc) != LinphoneLimeDisabled/*&& TODO: check that cr->peer_url has a verified token */; +bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr) { + if (cr) { + switch (linphone_core_lime_enabled(cr->lc)) { + case LinphoneLimeDisabled: return FALSE; + case LinphoneLimeMandatory: return TRUE; + case LinphoneLimePreferred: { + FILE *CACHEFD = NULL; + if (cr->lc->zrtp_secrets_cache != NULL) { + CACHEFD = fopen(cr->lc->zrtp_secrets_cache, "rb+"); + if (CACHEFD) { + size_t cacheSize; + xmlDocPtr cacheXml; + char *cacheString=ms_load_file_content(CACHEFD, &cacheSize); + if (!cacheString){ + ms_warning("Unable to load content of ZRTP ZID cache to decrypt message"); + return FALSE; + } + cacheString[cacheSize] = '\0'; + cacheSize += 1; + fclose(CACHEFD); + cacheXml = xmlParseDoc((xmlChar*)cacheString); + ms_free(cacheString); + if (cacheXml) { + limeURIKeys_t associatedKeys; + /* retrieve keys associated to the peer URI */ + associatedKeys.peerURI = (uint8_t *)malloc(strlen(cr->peer)+1); + strcpy((char *)(associatedKeys.peerURI), cr->peer); + associatedKeys.associatedZIDNumber = 0; + associatedKeys.peerKeys = NULL; + + if (lime_getCachedSndKeysByURI(cacheXml, &associatedKeys) != 0) { + lime_freeKeys(associatedKeys); + return FALSE; + } + + xmlFreeDoc(cacheXml); + return TRUE; + } + } + } + } + } + } + return FALSE; } static void linphone_chat_room_delete_composing_idle_timer(LinphoneChatRoom *cr) { @@ -380,7 +423,7 @@ void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage char *peer_uri = linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)); const char *content_type; - if (linphone_chat_room_lime_enabled(cr)) { + if (linphone_chat_room_lime_available(cr)) { /* ref the msg or it may be destroyed by callback if the encryption failed */ if (msg->content_type && strcmp(msg->content_type, "application/vnd.gsma.rcs-ft-http+xml") == 0) { /* it's a file transfer, content type shall be set to @@ -877,7 +920,7 @@ void linphone_core_real_time_text_received(LinphoneCore *lc, LinphoneChatRoom *c msg->state = LinphoneChatMessageStateDelivered; msg->is_read = FALSE; msg->dir = LinphoneChatMessageIncoming; - + if (lp_config_get_int(lc->config, "misc", "store_rtt_messages", 1) == 1) { msg->storage_id = linphone_chat_message_store(msg); } @@ -924,7 +967,7 @@ int linphone_chat_message_put_char(LinphoneChatMessage *msg, uint32_t character) if (!call || !call->textstream) { return -1; } - + if (character == new_line || character == crlf || character == lf) { if (lc && lp_config_get_int(lc->config, "misc", "store_rtt_messages", 1) == 1) { ms_debug("New line sent, forge a message with content %s", msg->message); @@ -944,7 +987,7 @@ int linphone_chat_message_put_char(LinphoneChatMessage *msg, uint32_t character) ms_debug("Sent RTT character: %s (%lu), pending text is %s", value, (unsigned long)character, msg->message); ms_free(value); } - + text_stream_putchar32(call->textstream, character); return 0; } diff --git a/coreapi/chat_file_transfer.c b/coreapi/chat_file_transfer.c index e64839e35..21d003450 100644 --- a/coreapi/chat_file_transfer.c +++ b/coreapi/chat_file_transfer.c @@ -155,7 +155,7 @@ static int linphone_chat_message_file_transfer_on_send_body(belle_sip_user_body_ static void linphone_chat_message_process_response_from_post_file(void *data, const belle_http_response_event_t *event) { LinphoneChatMessage *msg = (LinphoneChatMessage *)data; - + if (msg->http_request && !file_transfer_in_progress_and_valid(msg)) { ms_warning("Cancelled request for %s msg [%p], ignoring %s", msg->chat_room?"":"ORPHAN", msg, __FUNCTION__); _release_http_request(msg); @@ -172,7 +172,7 @@ static void linphone_chat_message_process_response_from_post_file(void *data, belle_sip_body_handler_t *first_part_bh; /* shall we encrypt the file */ - if (linphone_chat_room_lime_enabled(msg->chat_room) && + if (linphone_chat_room_lime_available(msg->chat_room) && linphone_core_lime_for_file_sharing_enabled(msg->chat_room->lc)) { char keyBuffer [FILE_TRANSFER_KEY_SIZE]; /* temporary storage of generated key: 192 bits of key + 64 bits of @@ -317,22 +317,22 @@ static void on_recv_body(belle_sip_user_body_handler_t *bh, belle_sip_message_t const uint8_t *buffer, size_t size) { LinphoneChatMessage *msg = (LinphoneChatMessage *)data; LinphoneCore *lc; - + if (!msg->chat_room) { linphone_chat_message_cancel_file_transfer(msg); return; } lc = msg->chat_room->lc; - + if (lc == NULL){ return; /*might happen during linphone_core_destroy()*/ } - + if (!msg->http_request || belle_http_request_is_cancelled(msg->http_request)) { ms_warning("Cancelled request for msg [%p], ignoring %s", msg, __FUNCTION__); return; } - + /* first call may be with a zero size, ignore it */ if (size == 0) { return; diff --git a/coreapi/lime.h b/coreapi/lime.h index a5da93e34..1b5101018 100644 --- a/coreapi/lime.h +++ b/coreapi/lime.h @@ -69,7 +69,7 @@ LINPHONE_PUBLIC int lime_getCachedRcvKeyByZid(xmlDocPtr cacheBuffer, limeKey_t * * * @param[out] cacheBuffer The xmlDoc containing current cache to be updated * @param[in/out] associatedKey Structure containing the key and ZID to identify the peer node to be updated - * @param[in] role Can be LIME_SENDER or LIME_RECEIVER, specify which key we want to update + * @param[in] role Can be LIME_SENDER or LIME_RECEIVER, specify which key we want to update * * @return 0 on success, error code otherwise */ @@ -87,7 +87,7 @@ LINPHONE_PUBLIC void lime_freeKeys(limeURIKeys_t associatedKeys); /** * @brief encrypt a message with the given key - * + * * @param[in] key Key to use: first 192 bits are used as key, last 64 bits as init vector * @param[in] message The string to be encrypted * @param[in] messageLength The length in bytes of the message to be encrypted @@ -96,7 +96,7 @@ LINPHONE_PUBLIC void lime_freeKeys(limeURIKeys_t associatedKeys); * Authentication tag is set at the begining of the encrypted Message * * @return 0 on success, error code otherwise - * + * */ LINPHONE_PUBLIC int lime_encryptMessage(limeKey_t *key, uint8_t *plainMessage, uint32_t messageLength, uint8_t selfZID[12], uint8_t *encryptedMessage); @@ -130,7 +130,7 @@ LINPHONE_PUBLIC int lime_decryptFile(void **cryptoContext, unsigned char *key, s /** * @brief decrypt and authentify a message with the given key - * + * * @param[in] key Key to use: first 192 bits are used as key, last 64 bits as init vector * @param[in] message The string to be decrypted * @param[in] messageLength The length in bytes of the message to be decrypted (this include the 16 bytes tag at the begining of the message) @@ -139,7 +139,7 @@ LINPHONE_PUBLIC int lime_decryptFile(void **cryptoContext, unsigned char *key, s * Authentication tag is retrieved at the begining of the encrypted Message * * @return 0 on success, error code otherwise - * + * */ LINPHONE_PUBLIC int lime_decryptMessage(limeKey_t *key, uint8_t *encryptedMessage, uint32_t messageLength, uint8_t selfZID[12], uint8_t *plainMessage); diff --git a/coreapi/private.h b/coreapi/private.h index 4cf2ef61d..20a4c5b73 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -591,7 +591,7 @@ int linphone_chat_room_upload_file(LinphoneChatMessage *msg); void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage *msg); LinphoneChatMessageCbs *linphone_chat_message_cbs_new(void); LinphoneChatRoom *_linphone_core_create_chat_room_from_call(LinphoneCall *call); -bool_t linphone_chat_room_lime_enabled(LinphoneChatRoom *cr); +bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr); /**/ struct _LinphoneProxyConfig From 43997b3dadb5eb482c69ef8830e8c030ac2daf63 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 31 May 2016 17:01:28 +0200 Subject: [PATCH 38/41] update ms2 and ortp --- mediastreamer2 | 2 +- oRTP | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediastreamer2 b/mediastreamer2 index ddef060fe..a7bb55e0c 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ddef060fe4c3a3e8f6dd4439da5064a03de2cbd1 +Subproject commit a7bb55e0cca5f86feed2957ba4052901121fb181 diff --git a/oRTP b/oRTP index 027e6c979..846174f90 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 027e6c979399e8d584c58f6c4d62c6c6fb60baba +Subproject commit 846174f901b264e50c6dfb0f8c81fffffed90c52 From 2fc0aef1b9422716f3da95eb0c411137844f619d Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 31 May 2016 17:43:37 +0200 Subject: [PATCH 39/41] gtk: add lime icon in chat --- coreapi/chat.c | 10 ++++------ coreapi/linphonecore.h | 7 +++++++ coreapi/private.h | 1 - gtk/chat.c | 14 ++++++++++++++ gtk/chatroom_frame.ui | 18 ++++++++++++++++-- 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/coreapi/chat.c b/coreapi/chat.c index 3e6d374e2..1f8df2a14 100644 --- a/coreapi/chat.c +++ b/coreapi/chat.c @@ -288,6 +288,7 @@ bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr) { cacheXml = xmlParseDoc((xmlChar*)cacheString); ms_free(cacheString); if (cacheXml) { + bool_t res; limeURIKeys_t associatedKeys; /* retrieve keys associated to the peer URI */ associatedKeys.peerURI = (uint8_t *)malloc(strlen(cr->peer)+1); @@ -295,13 +296,10 @@ bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr) { associatedKeys.associatedZIDNumber = 0; associatedKeys.peerKeys = NULL; - if (lime_getCachedSndKeysByURI(cacheXml, &associatedKeys) != 0) { - lime_freeKeys(associatedKeys); - return FALSE; - } - + res = (lime_getCachedSndKeysByURI(cacheXml, &associatedKeys) == 0 && associatedKeys.associatedZIDNumber != 0); + lime_freeKeys(associatedKeys); xmlFreeDoc(cacheXml); - return TRUE; + return res; } } } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index bbb170a83..6c4f1dd6e 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1513,6 +1513,13 @@ LINPHONE_PUBLIC LinphoneCore* linphone_chat_room_get_core(LinphoneChatRoom *cr); */ LINPHONE_PUBLIC uint32_t linphone_chat_room_get_char(const LinphoneChatRoom *cr); +/** + * Returns true if lime is available for given peer + * + * @return true if zrtp secrets have already been shared and ready to use + */ + LINPHONE_PUBLIC bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr); + /** * Returns an list of chat rooms * @param[in] lc #LinphoneCore object diff --git a/coreapi/private.h b/coreapi/private.h index 20a4c5b73..d67c26341 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -591,7 +591,6 @@ int linphone_chat_room_upload_file(LinphoneChatMessage *msg); void _linphone_chat_room_send_message(LinphoneChatRoom *cr, LinphoneChatMessage *msg); LinphoneChatMessageCbs *linphone_chat_message_cbs_new(void); LinphoneChatRoom *_linphone_core_create_chat_room_from_call(LinphoneCall *call); -bool_t linphone_chat_room_lime_available(LinphoneChatRoom *cr); /**/ struct _LinphoneProxyConfig diff --git a/gtk/chat.c b/gtk/chat.c index 008d356d3..2a2287b2c 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -468,6 +468,15 @@ static gboolean copy_uri_into_clipboard_handler(GtkMenuItem *menuitem, gpointer return FALSE; } +static void refresh_lime_icon(GtkWidget* chat_view, LinphoneChatRoom*cr) { + GtkWidget *lime_icon = linphone_gtk_get_widget(chat_view, "lime_icon"); + if (linphone_chat_room_lime_available(cr)) { + gtk_widget_show(lime_icon); + } else { + gtk_widget_hide(lime_icon); + } +} + static gint linphone_gtk_window_focused(GtkWidget* widget, GdkEvent *event, gpointer user_data) { // if we are in a chat, mark it as read GtkWidget *main_window=linphone_gtk_get_main_window(); @@ -477,6 +486,7 @@ static gint linphone_gtk_window_focused(GtkWidget* widget, GdkEvent *event, gpoi if (cr) { linphone_gtk_mark_chat_read(cr); } + refresh_lime_icon(w, cr); return FALSE; } @@ -559,6 +569,8 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres gtk_signal_connect(GTK_OBJECT(main_window), "focus-in-event", GTK_SIGNAL_FUNC(linphone_gtk_window_focused), NULL); + refresh_lime_icon(chat_view, cr); + return chat_view; } @@ -595,6 +607,8 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri, gtk_text_buffer_get_end_iter(text_buffer,&end); gtk_text_view_scroll_to_iter(text_view,&end,0,FALSE,1.0,0); } + refresh_lime_icon(chat_view, cr); + ms_free(from_str); ms_free(uri_str); ms_free(uri_only); diff --git a/gtk/chatroom_frame.ui b/gtk/chatroom_frame.ui index 9f5b66ef7..d7b8137a3 100644 --- a/gtk/chatroom_frame.ui +++ b/gtk/chatroom_frame.ui @@ -37,6 +37,20 @@ True False + 10 + + + True + False + 16 + linphone-security-ok + + + False + False + 0 + + True @@ -51,7 +65,7 @@ True True - 0 + 1 @@ -94,7 +108,7 @@ False False - 1 + 2 From fad94bc04ca0f551b5470f1210a28042d20c7623 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 1 Jun 2016 12:32:57 +0200 Subject: [PATCH 40/41] Fix header includes for Android. --- coreapi/message_storage.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coreapi/message_storage.c b/coreapi/message_storage.c index bf1883de6..997c7f108 100644 --- a/coreapi/message_storage.c +++ b/coreapi/message_storage.c @@ -28,8 +28,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #ifndef _WIN32 -#if !defined(ANDROID) && !defined(__QNXNTO__) +#if !defined(__QNXNTO__) # include +# include # include # include #endif From 3db180608887401a066729eb88cbca30b94b138b Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Wed, 1 Jun 2016 12:35:08 +0200 Subject: [PATCH 41/41] Update ms2 submodule. --- mediastreamer2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediastreamer2 b/mediastreamer2 index a7bb55e0c..9dbf6cd97 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit a7bb55e0cca5f86feed2957ba4052901121fb181 +Subproject commit 9dbf6cd9723f359b8b1bc0fe2a06a3de5100e2ad