diff --git a/.gitmodules b/.gitmodules index 05f97dd5a..be0709523 100644 --- a/.gitmodules +++ b/.gitmodules @@ -54,7 +54,7 @@ url = git://git.linphone.org/polarssl.git [submodule "submodules/externals/opus"] path = submodules/externals/opus - url = git://git.opus-codec.org/opus.git + url = http://git.opus-codec.org/opus.git [submodule "submodules/externals/libxml2"] path = submodules/externals/libxml2 url = git://git.gnome.org/libxml2 diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index 28139ebb8..b4444efd6 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -75,6 +75,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); - (void)transformLinphoneCoreToKeys { LinphoneCore *lc=[LinphoneManager getLc]; LinphoneProxyConfig *cfg=NULL; + LpConfig* conf = linphone_core_get_config(lc); linphone_core_get_default_proxy(lc,&cfg); if (cfg){ const char *identity=linphone_proxy_config_get_identity(cfg); @@ -112,7 +113,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } } else { - [self setInteger: lp_config_get_int(linphone_core_get_config(lc),"default_values","reg_expires", 600) forKey:@"expire_preference"]; + [self setInteger: lp_config_get_int(conf,"default_values","reg_expires", 600) forKey:@"expire_preference"]; [self setObject:@"" forKey:@"username_preference"]; [self setObject:@"" forKey:@"domain_preference"]; [self setObject:@"" forKey:@"proxy_preference"]; @@ -122,7 +123,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } - [self setBool:lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "pushnotification_preference", 0) forKey:@"pushnotification_preference"]; + [self setBool:lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "pushnotification_preference", 0) forKey:@"pushnotification_preference"]; { LinphoneAddress *parsed = linphone_core_get_primary_contact_parsed(lc); if(parsed != NULL) { @@ -158,9 +159,10 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"]; } { - int port = lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "port_preference", 5060); + int port = lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "port_preference", 5060); [self setInteger:port forKey:@"port_preference"]; - [self setInteger:lp_config_get_int(linphone_core_get_config(lc),LINPHONERC_APPLICATION_KEY,"random_port_preference", 1) forKey:@"random_port_preference"]; + int random_port_preference = lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"random_port_preference", 1); + [self setInteger:random_port_preference forKey:@"random_port_preference"]; } { LinphoneAuthInfo *ai; @@ -180,8 +182,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self transformCodecsToKeys: linphone_core_get_audio_codecs(lc)]; [self transformCodecsToKeys: linphone_core_get_video_codecs(lc)]; [self setBool:linphone_core_adaptive_rate_control_enabled(lc) forKey:@"adaptive_rate_control_preference"]; - LpConfig *config = linphone_core_get_config(lc); - [self setInteger:lp_config_get_int(config, "audio", "codec_bitrate_limit", 36) forKey:@"audio_codec_bitrate_limit_preference"]; + [self setInteger:lp_config_get_int(conf, "audio", "codec_bitrate_limit", 36) forKey:@"audio_codec_bitrate_limit_preference"]; PayloadType *pt; const MSList *elem; @@ -203,15 +204,15 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } [self setString:val forKey:@"media_encryption_preference"]; } - [self setString: lp_config_get_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rotation_preference", "auto") forKey:@"rotation_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "edge_opt_preference", 0) forKey:@"edge_opt_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", 0) forKey:@"enable_first_login_view_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "debugenable_preference", 0) forKey:@"debugenable_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", 1) forKey:@"animations_preference"]; - [self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", 0) forKey:@"wifi_only_preference"]; - [self setString: lp_config_get_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "sharing_server_preference", NULL) forKey:@"sharing_server_preference"]; + [self setString: lp_config_get_string(conf, LINPHONERC_APPLICATION_KEY, "rotation_preference", "auto") forKey:@"rotation_preference"]; + [self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "edge_opt_preference", 0) forKey:@"edge_opt_preference"]; + [self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", 0) forKey:@"enable_first_login_view_preference"]; + [self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "debugenable_preference", 0) forKey:@"debugenable_preference"]; + [self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "animations_preference", 1) forKey:@"animations_preference"]; + [self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "wifi_only_preference", 0) forKey:@"wifi_only_preference"]; + [self setString: lp_config_get_string(conf, LINPHONERC_APPLICATION_KEY, "sharing_server_preference", NULL) forKey:@"sharing_server_preference"]; + [self setBool:lp_config_get_int(conf, "sip", "use_ipv6", 0) forKey:@"use_ipv6"]; - [self setBool:lp_config_get_int(linphone_core_get_config(lc), "sip", "use_ipv6", 0) forKey:@"use_ipv6"]; /*keep this one also in the standardUserDefaults so that it can be read before starting liblinphone*/ BOOL start_at_boot = TRUE; @@ -256,7 +257,6 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self setInteger:linphone_core_get_inc_timeout(lc) forKey:@"incoming_call_timeout_preference"]; [self setInteger:linphone_core_get_in_call_timeout(lc) forKey:@"in_call_timeout_preference"]; } - [changedDict release]; @@ -307,6 +307,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); int port_preference = [self integerForKey:@"port_preference"]; BOOL random_port_preference = [self boolForKey:@"random_port_preference"]; + lp_config_set_int(conf, LINPHONERC_APPLICATION_KEY, "random_port_preference", random_port_preference); if(random_port_preference) { port_preference = -1; } @@ -321,8 +322,9 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); port_preference = linphone_core_get_sip_port(lc); [self setInteger:port_preference forKey:@"port_preference"]; // Update back preference + BOOL enable_ipv6 = [self boolForKey:@"use_ipv6"]; - lp_config_set_int(linphone_core_get_config(lc), "sip", "use_ipv6", enable_ipv6); + lp_config_set_int(conf, "sip", "use_ipv6", enable_ipv6); if( linphone_core_ipv6_enabled(lc) != enable_ipv6){ [LinphoneLogger logc:LinphoneLoggerDebug format:"%@ IPV6", enable_ipv6?@"ENABLING":@"DISABLING"]; linphone_core_enable_ipv6(lc, enable_ipv6); @@ -415,7 +417,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } BOOL pushnotification = [self boolForKey:@"pushnotification_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "pushnotification_preference", pushnotification); + lp_config_set_int(conf, LINPHONERC_APPLICATION_KEY, "pushnotification_preference", pushnotification); [[LinphoneManager instance] addPushTokenToProxyConfig:proxyCfg]; @@ -625,20 +627,20 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); } else { isbackgroundModeEnabled = false; } - - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "backgroundmode_preference", isbackgroundModeEnabled); - + + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "backgroundmode_preference", isbackgroundModeEnabled); + BOOL firstloginview = [self boolForKey:@"enable_first_login_view_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", firstloginview); + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", firstloginview); BOOL edgeOpt = [self boolForKey:@"edge_opt_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "edge_opt_preference", edgeOpt); + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "edge_opt_preference", edgeOpt); NSString *landscape = [self stringForKey:@"rotation_preference"]; - lp_config_set_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rotation_preference", [landscape UTF8String]); + lp_config_set_string(config, LINPHONERC_APPLICATION_KEY, "rotation_preference", [landscape UTF8String]); BOOL debugmode = [self boolForKey:@"debugenable_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "debugenable_preference", debugmode); + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "debugenable_preference", debugmode); if (debugmode) { linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler); ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL); @@ -648,10 +650,10 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [[NSUserDefaults standardUserDefaults] setBool:debugmode forKey:@"debugenable_preference"]; //to be used at linphone core startup BOOL animations = [self boolForKey:@"animations_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", animations); + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "animations_preference", animations); BOOL wifiOnly = [self boolForKey:@"wifi_only_preference"]; - lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly); + lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly); if([self valueChangedForKey:@"wifi_only_preference"]) { [[LinphoneManager instance] setupNetworkReachabilityCallback]; } diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index efe77cb31..b50f77ebd 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -346,6 +346,7 @@ struct codec_name_pref_table codec_pref_table[]={ return theLinphoneCore != nil; } +#pragma mark Debug functions struct _entry_data { const LpConfig* conf; diff --git a/Classes/LinphoneUI/UIStateBar.m b/Classes/LinphoneUI/UIStateBar.m index 7e7e1d37d..99a8835fb 100644 --- a/Classes/LinphoneUI/UIStateBar.m +++ b/Classes/LinphoneUI/UIStateBar.m @@ -88,7 +88,7 @@ NSTimer *callSecurityTimer; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(globalStateUpdate:) - name:kLinphoneConfiguringStateUpdate + name:kLinphoneGlobalStateUpdate object:nil]; [callQualityImage setHidden: true]; [callSecurityImage setHidden: true]; @@ -108,7 +108,7 @@ NSTimer *callSecurityTimer; name:kLinphoneRegistrationUpdate object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self - name:kLinphoneConfiguringStateUpdate + name:kLinphoneGlobalStateUpdate object:nil]; if(callQualityTimer != nil) { [callQualityTimer invalidate]; diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index 42549d289..5bdb2fabf 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -18,6 +18,7 @@ */ #import +#import #import "LinphoneManager.h" #import "UICompositeViewController.h" @@ -54,6 +55,7 @@ @property (nonatomic, retain) IBOutlet UICompositeViewController *mainViewController; @property (readonly) UICompositeViewDescription *currentView; +@property (readonly, retain) MPVolumeView* volumeView; - (UIViewController*)changeCurrentView:(UICompositeViewDescription *)currentView; - (UIViewController*)changeCurrentView:(UICompositeViewDescription *)currentView push:(BOOL)push; diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index d931a296d..592b6f7c4 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -32,6 +32,7 @@ static PhoneMainView* phoneMainViewInstance=nil; @synthesize mainViewController; @synthesize currentView; @synthesize statusBarBG; +@synthesize volumeView; #pragma mark - Lifecycle Functions @@ -89,6 +90,12 @@ static PhoneMainView* phoneMainViewInstance=nil; [super viewDidLoad]; + // insert invisible volumeView to prevent iOS from displaying the volume notification all the time. + volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(-100,-100,16,16)]; + volumeView.showsRouteButton = false; + volumeView.userInteractionEnabled = false; + [self.view addSubview:volumeView]; + [self.view addSubview: mainViewController.view]; } diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index fefdf98e8..add23bf2a 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -666,8 +666,9 @@ static UICompositeViewDescription *compositeDescription = nil; [hiddenKeys addObjectsFromArray:[[LinphoneManager unsupportedCodecs] allObjects]]; - - if(lp_config_get_int(linphone_core_get_config([LinphoneManager getLc]),"app","random_port_preference",0)==1) { + + BOOL random_port = [[LinphoneManager instance] lpConfigBoolForKey:@"random_port_preference"]; + if(random_port) { [hiddenKeys addObject:@"port_preference"]; } diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings index 5cd722cdd..da3e56166 100644 --- a/Resources/en.lproj/Localizable.strings +++ b/Resources/en.lproj/Localizable.strings @@ -302,4 +302,3 @@ "Enter an address" = "Enter SIP address or phone number..."; "%@ is composing..." = "%@ is composing..."; "Resend" = "Resend"; -"Fetching remote configuration" = "Fetching remote configuration"; diff --git a/Resources/fr.lproj/Localizable.strings b/Resources/fr.lproj/Localizable.strings index 982311060..fd6db7002 100644 --- a/Resources/fr.lproj/Localizable.strings +++ b/Resources/fr.lproj/Localizable.strings @@ -302,4 +302,3 @@ "Enter an address" = "Entrez une addresse SIP ou un numéro de téléphone..."; "%@ is composing..." = "%@ rédige un message..."; "Resend" = "Renvoyer"; -"Fetching remote configuration" = "Récupération de la conf. distante"; diff --git a/Resources/ru.lproj/Localizable.strings b/Resources/ru.lproj/Localizable.strings index 454eab294..e8b5c0d8e 100644 --- a/Resources/ru.lproj/Localizable.strings +++ b/Resources/ru.lproj/Localizable.strings @@ -302,4 +302,3 @@ "Enter an address" = "Введите адрес SIP или номер телефона..."; "%@ is composing..." = "%@ is composing..."; "Resend" = "Resend"; -"Fetching remote configuration" = "Fetching remote configuration"; diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index bb6a8b561..687fcf205 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -1339,6 +1339,9 @@ D3F9A9DB15AEEB940045320F /* history_notification.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F9A9DA15AEEB940045320F /* history_notification.png */; }; D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; }; D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; }; + F01A77C518EBEC6200E287CA /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B89C2118DC89E30050B60E /* MediaPlayer.framework */; }; + F01A77C618EBECCB00E287CA /* libc++.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDEF14850AE9007420B6 /* libc++.1.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + F01A77C718EBECEA00E287CA /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; F03A9B1D18C0CF7000C4D7FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; F03A9B1E18C0CF7000C4D7FE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; F03A9B1F18C0CF7000C4D7FE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; @@ -2651,6 +2654,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + F01A77C718EBECEA00E287CA /* libstdc++.6.dylib in Frameworks */, + F01A77C518EBEC6200E287CA /* MediaPlayer.framework in Frameworks */, F04F1E9D1806A41800D080F2 /* libpolarssl.a in Frameworks */, 15017E71177357C500784ACB /* libxml2.a in Frameworks */, 2200C2DC174BBB24002E9A70 /* MobileCoreServices.framework in Frameworks */, @@ -2674,6 +2679,7 @@ 22D8F15C147548E2008C97DB /* QuartzCore.framework in Frameworks */, 22D8F173147548E2008C97DB /* SystemConfiguration.framework in Frameworks */, 22D8F166147548E2008C97DB /* UIKit.framework in Frameworks */, + F01A77C618EBECCB00E287CA /* libc++.1.dylib in Frameworks */, 22D8F178147548E2008C97DB /* libresolv.dylib in Frameworks */, D34BD61515C13B7B0070C209 /* libsqlite3.dylib in Frameworks */, 22D8F174147548E2008C97DB /* libilbc.a in Frameworks */, @@ -4153,6 +4159,498 @@ name = images; sourceTree = ""; }; + F0B89C2318DC90850050B60E /* images */ = { + isa = PBXGroup; + children = ( + 15AF3C4C16F37A3E00FC52EC /* route_bluetooth_off_default.png */, + 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */, + 15AF3C4D16F37A3E00FC52EC /* route_bluetooth_off_disabled.png */, + 1599104416F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png */, + 15AF3C4E16F37A3E00FC52EC /* route_bluetooth_off_over.png */, + 1599104516F746B2007BF52B /* route_bluetooth_off_over_landscape.png */, + 15AF3C5016F37A3E00FC52EC /* route_bluetooth_on_default.png */, + 1599104616F746B2007BF52B /* route_bluetooth_on_default_landscape.png */, + 15AF3C6416F37A4A00FC52EC /* route_phone_off_default.png */, + 1599104716F746B2007BF52B /* route_phone_off_default_landscape.png */, + 15AF3C6516F37A4A00FC52EC /* route_phone_off_disabled.png */, + 1599104816F746B2007BF52B /* route_phone_off_disabled_landscape.png */, + 15AF3C6616F37A4A00FC52EC /* route_phone_off_over.png */, + 1599104916F746B2007BF52B /* route_phone_off_over_landscape.png */, + 15AF3C6816F37A4A00FC52EC /* route_phone_on_default.png */, + 1599104A16F746B2007BF52B /* route_phone_on_default_landscape.png */, + 15AF3C7C16F37A5500FC52EC /* route_speaker_off_default.png */, + 1599104B16F746B2007BF52B /* route_speaker_off_default_landscape.png */, + 15AF3C7D16F37A5500FC52EC /* route_speaker_off_disabled.png */, + 1599104C16F746B2007BF52B /* route_speaker_off_disabled_landscape.png */, + 15AF3C7E16F37A5500FC52EC /* route_speaker_off_over.png */, + 1599104D16F746B2007BF52B /* route_speaker_off_over_landscape.png */, + 15AF3C8016F37A5500FC52EC /* route_speaker_on_default.png */, + 1599104E16F746B2007BF52B /* route_speaker_on_default_landscape.png */, + 15AF3C9416F37A5D00FC52EC /* routes_default.png */, + 1599104F16F746B2007BF52B /* routes_default_landscape.png */, + 15AF3C9516F37A5D00FC52EC /* routes_disabled.png */, + 1599105016F746B2007BF52B /* routes_disabled_landscape.png */, + 15AF3C9616F37A5D00FC52EC /* routes_over.png */, + 1599105116F746B2007BF52B /* routes_over_landscape.png */, + 15AF3C9716F37A5D00FC52EC /* routes_selected.png */, + 1599105216F746B2007BF52B /* routes_selected_landscape.png */, + D3D6A3A5159B0EFE005F692C /* security_ko.png */, + D3D6A3A7159B0EFE005F692C /* security_ok.png */, + D3D6A3A6159B0EFE005F692C /* security_pending.png */, + D38327EF1580FE3A00FA0D23 /* settings_default.png */, + D3A74E9C15C69392001500B9 /* settings_default_landscape~ipad.png */, + D3A74E9D15C69392001500B9 /* settings_default~ipad.png */, + D38327FE158100E400FA0D23 /* settings_over.png */, + D3A74E9E15C69392001500B9 /* settings_over_landscape~ipad.png */, + D3A74E9F15C69392001500B9 /* settings_over~ipad.png */, + D38327F01580FE3A00FA0D23 /* settings_selected.png */, + D3A74EA015C69392001500B9 /* settings_selected_landscape~ipad.png */, + D3A74EA115C69392001500B9 /* settings_selected~ipad.png */, + D350F21315A43D3400149E54 /* setup_back_default.png */, + D3F5F984160B1A0800D3DA1A /* setup_back_default_landscape~ipad.png */, + D3F5F985160B1A0800D3DA1A /* setup_back_default~ipad.png */, + D3A8BB7815A6CC3200F96BE5 /* setup_back_disabled.png */, + D3F5F986160B1A0900D3DA1A /* setup_back_disabled_landscape~ipad.png */, + D3F5F8E51609A86700D3DA1A /* setup_back_disabled~ipad.png */, + D350F21415A43D3400149E54 /* setup_back_over.png */, + D3F5F8E61609A86700D3DA1A /* setup_back_over_landscape~ipad.png */, + D3F5F8E71609A86700D3DA1A /* setup_back_over~ipad.png */, + D350F21515A43D3400149E54 /* setup_cancel_default.png */, + D3F5F8E81609A86700D3DA1A /* setup_cancel_default_landscape~ipad.png */, + D3D5124C160B213900946DF8 /* setup_cancel_default~ipad.png */, + D3A8BB7915A6CC3200F96BE5 /* setup_cancel_disabled.png */, + D3F5F8EA1609A86700D3DA1A /* setup_cancel_disabled_landscape~ipad.png */, + D3F5F8EB1609A86700D3DA1A /* setup_cancel_disabled~ipad.png */, + D350F21615A43D3400149E54 /* setup_cancel_over.png */, + D3F5F8EC1609A86700D3DA1A /* setup_cancel_over_landscape~ipad.png */, + D3D5124D160B213900946DF8 /* setup_cancel_over~ipad.png */, + D350F21815A43D3400149E54 /* setup_start_default.png */, + D3F5F8EE1609A86700D3DA1A /* setup_start_default_landscape~ipad.png */, + D3F5F8EF1609A86700D3DA1A /* setup_start_default~ipad.png */, + D3A8BB7A15A6CC3200F96BE5 /* setup_start_disabled.png */, + D3F5F8F01609A86700D3DA1A /* setup_start_disabled_landscape~ipad.png */, + D3F5F8F11609A86700D3DA1A /* setup_start_disabled~ipad.png */, + D350F21915A43D3400149E54 /* setup_start_over.png */, + D3F5F8F21609A86700D3DA1A /* setup_start_over_landscape~ipad.png */, + D3F5F8F31609A86700D3DA1A /* setup_start_over~ipad.png */, + D350F21B15A43D3400149E54 /* setup_welcome_logo.png */, + D3F5F8F41609A86700D3DA1A /* setup_welcome_logo~ipad.png */, + D3F83EFC158205A100336684 /* speaker_off_default.png */, + D3C31A2315BD8DED008ED271 /* speaker_off_default_landscape.png */, + D33988A615C6DD1600CAF1E4 /* speaker_off_default_landscape~ipad.png */, + D3A74EA215C69392001500B9 /* speaker_off_default~ipad.png */, + D365AA7915A2DE7500CAFE3F /* speaker_off_disabled.png */, + D3C31A2415BD8DED008ED271 /* speaker_off_disabled_landscape.png */, + D33988A715C6DD1600CAF1E4 /* speaker_off_disabled_landscape~ipad.png */, + D3A74EA315C69392001500B9 /* speaker_off_disabled~ipad.png */, + D3F83EFD158205A100336684 /* speaker_off_over.png */, + D3C31A2515BD8DED008ED271 /* speaker_off_over_landscape.png */, + D33988A815C6DD1600CAF1E4 /* speaker_off_over_landscape~ipad.png */, + D3A74EA415C69392001500B9 /* speaker_off_over~ipad.png */, + D3F83EFE158205A100336684 /* speaker_on_default.png */, + D3C31A2615BD8DED008ED271 /* speaker_on_default_landscape.png */, + D33988A915C6DD1600CAF1E4 /* speaker_on_default_landscape~ipad.png */, + D3A74EA515C69392001500B9 /* speaker_on_default~ipad.png */, + D365AA7A15A2DE7500CAFE3F /* speaker_on_disabled.png */, + D3C31A2715BD8DED008ED271 /* speaker_on_disabled_landscape.png */, + D33988AA15C6DD1600CAF1E4 /* speaker_on_disabled_landscape~ipad.png */, + D3A74EA615C69392001500B9 /* speaker_on_disabled~ipad.png */, + D3F83EFF158205A100336684 /* speaker_on_over.png */, + D3C31A2815BD8DED008ED271 /* speaker_on_over_landscape.png */, + D33988AB15C6DD1600CAF1E4 /* speaker_on_over_landscape~ipad.png */, + D3A74EA715C69392001500B9 /* speaker_on_over~ipad.png */, + D3ED3E511585FFFD006C0DE4 /* statebar_background.png */, + D3C31A2915BD8DED008ED271 /* statebar_background_landscape.png */, + D3A74EA815C69392001500B9 /* statebar_background_landscape~ipad.png */, + D3A74EA915C69392001500B9 /* statebar_background~ipad.png */, + D35E757515931E5D0066B1C1 /* switch_camera_default.png */, + D35E757615931E5D0066B1C1 /* switch_camera_over.png */, + D3A74E5815C68162001500B9 /* toolsbar_background.png */, + C9C8254115AE204D00D493FA /* transfer_call_default.png */, + D3A74EAA15C69392001500B9 /* transfer_call_default~ipad.png */, + C9C8254E15AE256100D493FA /* transfer_call_disabled.png */, + D3BDB9B815C6B5B1007BEAC1 /* transfer_call_disabled~ipad.png */, + C9C8254215AE204D00D493FA /* transfer_call_over.png */, + D3A74EAB15C69392001500B9 /* transfer_call_over~ipad.png */, + D3F83F00158205A100336684 /* video_off_default.png */, + D3C31A2C15BD8DED008ED271 /* video_off_default_landscape.png */, + D33988AE15C6DD1600CAF1E4 /* video_off_default_landscape~ipad.png */, + D3A74EAC15C69392001500B9 /* video_off_default~ipad.png */, + D37295DA158B3C9600D2C0C7 /* video_off_disabled.png */, + D3C31A2D15BD8DED008ED271 /* video_off_disabled_landscape.png */, + D33988AF15C6DD1600CAF1E4 /* video_off_disabled_landscape~ipad.png */, + D3A74EAD15C69392001500B9 /* video_off_disabled~ipad.png */, + D3F83F01158205A100336684 /* video_off_over.png */, + D3C31A2E15BD8DED008ED271 /* video_off_over_landscape.png */, + D33988B015C6DD1600CAF1E4 /* video_off_over_landscape~ipad.png */, + D3A74EAE15C69392001500B9 /* video_off_over~ipad.png */, + D3F83F02158205A100336684 /* video_on_default.png */, + D3C31A2F15BD8DED008ED271 /* video_on_default_landscape.png */, + D33988B115C6DD1600CAF1E4 /* video_on_default_landscape~ipad.png */, + D3A74EAF15C69392001500B9 /* video_on_default~ipad.png */, + D377BBF915A19DA6002B696B /* video_on_disabled.png */, + D3C31A3015BD8DED008ED271 /* video_on_disabled_landscape.png */, + D33988B215C6DD1600CAF1E4 /* video_on_disabled_landscape~ipad.png */, + D3A74EB015C69392001500B9 /* video_on_disabled~ipad.png */, + D3F83F03158205A100336684 /* video_on_over.png */, + D3C31A3115BD8DED008ED271 /* video_on_over_landscape.png */, + D33988B315C6DD1600CAF1E4 /* video_on_over_landscape~ipad.png */, + D3A74EB115C69392001500B9 /* video_on_over~ipad.png */, + D3F83F3C1582223B00336684 /* numpad_eight_default.png */, + D3F83F3D1582223B00336684 /* numpad_eight_over.png */, + D3F83F361582223B00336684 /* numpad_five_default.png */, + D3F83F371582223B00336684 /* numpad_five_over.png */, + D3F83F341582223B00336684 /* numpad_four_default.png */, + D3F83F351582223B00336684 /* numpad_four_over.png */, + D3F83F3E1582223B00336684 /* numpad_nine_default.png */, + D3F83F3F1582223B00336684 /* numpad_nine_over.png */, + D3F83F2E1582223B00336684 /* numpad_one_default.png */, + D3F83F2F1582223B00336684 /* numpad_one_over.png */, + D3F83F3A1582223B00336684 /* numpad_seven_default.png */, + D3F83F3B1582223B00336684 /* numpad_seven_over.png */, + D3F83F401582223B00336684 /* numpad_sharp_default.png */, + D3F83F411582223B00336684 /* numpad_sharp_over.png */, + D3F83F381582223B00336684 /* numpad_six_default.png */, + D3F83F391582223B00336684 /* numpad_six_over.png */, + D3F83F431582223B00336684 /* numpad_star_default.png */, + D3C2815115A2D64A0098AA42 /* numpad_star_over.png */, + D3F83F321582223B00336684 /* numpad_three_default.png */, + D3F83F331582223B00336684 /* numpad_three_over.png */, + D3F83F301582223B00336684 /* numpad_two_default.png */, + D3F83F311582223B00336684 /* numpad_two_over.png */, + D3F83F2C1582223B00336684 /* numpad_zero_default.png */, + D3F83F2D1582223B00336684 /* numpad_zero_over.png */, + D3196D3015A321E2007FEEBA /* options_add_default.png */, + D3C31A1515BD8DED008ED271 /* options_add_default_landscape.png */, + D339889815C6DD1600CAF1E4 /* options_add_default_landscape~ipad.png */, + D3A74E8E15C69392001500B9 /* options_add_default~ipad.png */, + C9C8253F15AE204D00D493FA /* options_add_disabled.png */, + D3C31A1615BD8DED008ED271 /* options_add_disabled_landscape.png */, + D339889915C6DD1600CAF1E4 /* options_add_disabled_landscape~ipad.png */, + D3A74E8F15C69392001500B9 /* options_add_disabled~ipad.png */, + D3196D3115A321E2007FEEBA /* options_add_over.png */, + D3C31A1715BD8DED008ED271 /* options_add_over_landscape.png */, + D339889A15C6DD1600CAF1E4 /* options_add_over_landscape~ipad.png */, + D3A74E9015C69392001500B9 /* options_add_over~ipad.png */, + D3D6A3A8159B0EFE005F692C /* options_default.png */, + D3C31A1815BD8DED008ED271 /* options_default_landscape.png */, + D339889B15C6DD1600CAF1E4 /* options_default_landscape~ipad.png */, + D3A74E9115C69392001500B9 /* options_default~ipad.png */, + D3D6A3A9159B0EFE005F692C /* options_disabled.png */, + D3C31A1915BD8DED008ED271 /* options_disabled_landscape.png */, + D339889C15C6DD1600CAF1E4 /* options_disabled_landscape~ipad.png */, + D3A74E9215C69392001500B9 /* options_disabled~ipad.png */, + D3D6A3AA159B0EFE005F692C /* options_over.png */, + D3C31A1A15BD8DED008ED271 /* options_over_landscape.png */, + D339889D15C6DD1600CAF1E4 /* options_over_landscape~ipad.png */, + D3A74E9315C69392001500B9 /* options_over~ipad.png */, + C9C8254B15AE207B00D493FA /* options_selected.png */, + D3C31A1B15BD8DED008ED271 /* options_selected_landscape.png */, + D339889E15C6DD1600CAF1E4 /* options_selected_landscape~ipad.png */, + D3A74E9415C69392001500B9 /* options_selected~ipad.png */, + D3196D3215A321E3007FEEBA /* options_transfer_default.png */, + D3C31A1C15BD8DED008ED271 /* options_transfer_default_landscape.png */, + D339889F15C6DD1600CAF1E4 /* options_transfer_default_landscape~ipad.png */, + D3A74E9515C69392001500B9 /* options_transfer_default~ipad.png */, + C9C8254015AE204D00D493FA /* options_transfer_disabled.png */, + D3C31A1D15BD8DED008ED271 /* options_transfer_disabled_landscape.png */, + D33988A015C6DD1600CAF1E4 /* options_transfer_disabled_landscape~ipad.png */, + D3A74E9615C69392001500B9 /* options_transfer_disabled~ipad.png */, + D3196D3315A321E3007FEEBA /* options_transfer_over.png */, + D3C31A1E15BD8DED008ED271 /* options_transfer_over_landscape.png */, + D33988A115C6DD1600CAF1E4 /* options_transfer_over_landscape~ipad.png */, + D3A74E9715C69392001500B9 /* options_transfer_over~ipad.png */, + D3F83EF8158205A100336684 /* pause_off_default.png */, + D3C31A1F15BD8DED008ED271 /* pause_off_default_landscape.png */, + D33988A215C6DD1600CAF1E4 /* pause_off_default_landscape~ipad.png */, + D3A74E9815C69392001500B9 /* pause_off_default~ipad.png */, + D3F83EF9158205A100336684 /* pause_off_over.png */, + D3C31A2015BD8DED008ED271 /* pause_off_over_landscape.png */, + D33988A315C6DD1600CAF1E4 /* pause_off_over_landscape~ipad.png */, + D3A74E9915C69392001500B9 /* pause_off_over~ipad.png */, + D36C43E7158F3F7E0048BA40 /* pause_on_default.png */, + D3C31A2115BD8DED008ED271 /* pause_on_default_landscape.png */, + D33988A415C6DD1600CAF1E4 /* pause_on_default_landscape~ipad.png */, + D3A74E9A15C69392001500B9 /* pause_on_default~ipad.png */, + D36C43E8158F3F7E0048BA40 /* pause_on_over.png */, + D3C31A2215BD8DED008ED271 /* pause_on_over_landscape.png */, + D33988A515C6DD1600CAF1E4 /* pause_on_over_landscape~ipad.png */, + D3A74E9B15C69392001500B9 /* pause_on_over~ipad.png */, + D3F5F8E41609A86700D3DA1A /* logo_linphone_trame_background.png */, + D3F83EF4158205A100336684 /* micro_off_default.png */, + D3C31A0F15BD8DED008ED271 /* micro_off_default_landscape.png */, + D339889215C6DD1600CAF1E4 /* micro_off_default_landscape~ipad.png */, + D3A74E8815C69392001500B9 /* micro_off_default~ipad.png */, + D35EA76115A2DF8D003E025D /* micro_off_disabled.png */, + D3C31A1015BD8DED008ED271 /* micro_off_disabled_landscape.png */, + D339889315C6DD1600CAF1E4 /* micro_off_disabled_landscape~ipad.png */, + D3A74E8915C69392001500B9 /* micro_off_disabled~ipad.png */, + D3F83EF5158205A100336684 /* micro_off_over.png */, + D3C31A1115BD8DED008ED271 /* micro_off_over_landscape.png */, + D339889415C6DD1600CAF1E4 /* micro_off_over_landscape~ipad.png */, + D3A74E8A15C69392001500B9 /* micro_off_over~ipad.png */, + D3F83EF6158205A100336684 /* micro_on_default.png */, + D3C31A1215BD8DED008ED271 /* micro_on_default_landscape.png */, + D339889515C6DD1600CAF1E4 /* micro_on_default_landscape~ipad.png */, + D3A74E8B15C69392001500B9 /* micro_on_default~ipad.png */, + D35EA76215A2DF8D003E025D /* micro_on_disabled.png */, + D3C31A1315BD8DED008ED271 /* micro_on_disabled_landscape.png */, + D339889615C6DD1600CAF1E4 /* micro_on_disabled_landscape~ipad.png */, + D3A74E8C15C69392001500B9 /* micro_on_disabled~ipad.png */, + D3F83EF7158205A100336684 /* micro_on_over.png */, + D3C31A1415BD8DED008ED271 /* micro_on_over_landscape.png */, + D339889715C6DD1600CAF1E4 /* micro_on_over_landscape~ipad.png */, + D3A74E8D15C69392001500B9 /* micro_on_over~ipad.png */, + D3EA5416159858A80037DC6B /* list_delete_default.png */, + D3EA5417159858A80037DC6B /* list_delete_over.png */, + D354981815876FE7000081D8 /* list_details_default.png */, + D354981915876FE7000081D8 /* list_details_over.png */, + 225CB2F911ABB76400628906 /* linphone-banner.png */, + F0818E7B17FC5160005A3330 /* linphone_icon_120.png */, + F0818E7D17FC51D8005A3330 /* linphone_icon_152.png */, + 22058C70116E305000B08DDD /* linphone_icon_57.png */, + D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */, + 34A6ECEA14CF13CB00460C04 /* linphone_icon_72.png */, + D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */, + F0818E7C17FC51D8005A3330 /* linphone_icon_76.png */, + D3012CC31610467D007CD926 /* linphone_logo.png */, + D38F46F1160C5CC8002D4C4A /* linphone_splashscreen-568h@2x.png */, + D3103920162C3C5100C00C18 /* linphone_splashscreen-Landscape.png */, + D3103921162C3C5100C00C18 /* linphone_splashscreen-Landscape@2x.png */, + D3103922162C3C5100C00C18 /* linphone_splashscreen-Portrait.png */, + D3103923162C3C5100C00C18 /* linphone_splashscreen-Portrait@2x.png */, + D354944A160B615A0027E44E /* linphone_splashscreen.png */, + D354944B160B615A0027E44E /* linphone_splashscreen@2x.png */, + D3866C261608CA1600830F95 /* image_back_default.png */, + D3866C271608CA1600830F95 /* image_back_over.png */, + D3432A5C158A4446001C6B0B /* led_connected.png */, + D3432A70158A45AF001C6B0B /* led_disconnected.png */, + D3432A5D158A4446001C6B0B /* led_error.png */, + D3432A6F158A45AF001C6B0B /* led_inprogress.png */, + D3F83F741582253100336684 /* accept_default.png */, + D3D52A751614495300DEB00A /* accept_default_landscape~ipad.png */, + D3D52A761614495300DEB00A /* accept_default~ipad.png */, + D3F83F751582253100336684 /* accept_over.png */, + D3D52A771614495300DEB00A /* accept_over_landscape~ipad.png */, + D3D52A781614495300DEB00A /* accept_over~ipad.png */, + D3D6A39B159B0EEF005F692C /* add_call_default.png */, + D3A74E5E15C69391001500B9 /* add_call_default~ipad.png */, + D3D6A39C159B0EEF005F692C /* add_call_disabled.png */, + D3A74E5F15C69391001500B9 /* add_call_disabled~ipad.png */, + D3D6A39D159B0EEF005F692C /* add_call_over.png */, + D3A74E6015C69391001500B9 /* add_call_over~ipad.png */, + D3ED3E6715861A53006C0DE4 /* add_contact_default.png */, + D3A74E6115C69391001500B9 /* add_contact_default~ipad.png */, + D3ED3E6815861A53006C0DE4 /* add_contact_disabled.png */, + D3A74E6215C69392001500B9 /* add_contact_disabled~ipad.png */, + D3ED3E6915861A53006C0DE4 /* add_contact_over.png */, + D3A74E6315C69392001500B9 /* add_contact_over~ipad.png */, + D3F34F2F1599B008005BE94F /* avatar_shadow.png */, + D3D14E7B15A711700074A527 /* avatar_shadow_small.png */, + D31B4B261598A390002E6C72 /* avatar_unknown.png */, + D31B4B271598A390002E6C72 /* avatar_unknown_small.png */, + D3211BBB159CBFD60098460B /* back_default.png */, + D3A74E6415C69392001500B9 /* back_default~ipad.png */, + D3211BBC159CBFD60098460B /* back_disabled.png */, + D3A74E6515C69392001500B9 /* back_disabled~ipad.png */, + D3211BBD159CBFD60098460B /* back_over.png */, + D3A74E6615C69392001500B9 /* back_over~ipad.png */, + D3ED3E401585FB4A006C0DE4 /* background.png */, + D3998D0316031937009DD22C /* background_alt.png */, + D3A74E6715C69392001500B9 /* background_top~ipad.png */, + D3ED3E7615861B1B006C0DE4 /* backspace_default.png */, + D3A74E6815C69392001500B9 /* backspace_default~ipad.png */, + D35E758815932DE60066B1C1 /* backspace_disabled.png */, + D3A74E6915C69392001500B9 /* backspace_disabled~ipad.png */, + D3ED3E7715861B1B006C0DE4 /* backspace_over.png */, + D3A74E6A15C69392001500B9 /* backspace_over~ipad.png */, + D3F5F8D91609A86700D3DA1A /* bubble.png */, + D32D5AA515ADE5D9008593F3 /* button_alert_background_default.png */, + D32D5AA615ADE5D9008593F3 /* button_alert_background_over.png */, + D35E920B160CABD70023116B /* button_background_default.9.png */, + D35E91EC160CA0C70023116B /* button_background_default.9@2x.png */, + D35406F515A47E9E007E7E81 /* button_background_default.png */, + D35E920C160CABD70023116B /* button_background_over.9.png */, + D35E91ED160CA0C70023116B /* button_background_over.9@2x.png */, + D35406F615A47E9E007E7E81 /* button_background_over.png */, + D3ED3E7015861ABD006C0DE4 /* call_default.png */, + D3A74E6B15C69392001500B9 /* call_default~ipad.png */, + D35E758C15934F360066B1C1 /* call_disabled.png */, + D3A74E6C15C69392001500B9 /* call_disabled~ipad.png */, + D3ED3E7115861ABD006C0DE4 /* call_over.png */, + D3A74E6D15C69392001500B9 /* call_over~ipad.png */, + D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */, + D3432A5F158A4446001C6B0B /* call_quality_indicator_1.png */, + D3432A60158A4446001C6B0B /* call_quality_indicator_2.png */, + D3432A61158A4446001C6B0B /* call_quality_indicator_3.png */, + D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */, + D37B96B615A1A6F20005CCD2 /* call_state_delete_over.png */, + D3211BA5159C3D410098460B /* call_state_outgoing_default.png */, + D36C43ED158F61EA0048BA40 /* call_state_pause_default.png */, + D36C43EE158F61EA0048BA40 /* call_state_pause_over.png */, + D36C43EF158F61EA0048BA40 /* call_state_play_default.png */, + D36C43F0158F61EA0048BA40 /* call_state_play_over.png */, + D31AAF6D159B65E1002C6B02 /* call_state_ringing_default.png */, + D31C9C8D158A1C1000756B45 /* call_status_incoming.png */, + D31C9C8E158A1C1000756B45 /* call_status_missed.png */, + D31C9C8F158A1C1000756B45 /* call_status_outgoing.png */, + D33E1F06164CF35100CFA363 /* callbar_left_padding.png */, + D33E1F07164CF35100CFA363 /* callbar_right_padding.png */, + D3E84F1715B00F4100420DAC /* cancel_default.png */, + D3E84F1815B00F4100420DAC /* cancel_over.png */, + D36C43CC158F2F370048BA40 /* cell_call.png */, + D3211BB8159C8A820098460B /* cell_call_first.png */, + D38D14AD15A30B3D008497E8 /* cell_call_first_highlight.png */, + D38D14AE15A30B3D008497E8 /* cell_call_highlight.png */, + D36C43CD158F2F370048BA40 /* cell_conference.png */, + D3EA5401159852080037DC6B /* chat_add_default.png */, + D3EA5402159852080037DC6B /* chat_add_over.png */, + D3F795DB15A5831C0077328B /* chat_back_default.png */, + D3F795DC15A5831C0077328B /* chat_back_over.png */, + D389363715A6D53200A3A3AA /* chat_bubble_incoming.9.png */, + D3A8BB7715A6CC3200F96BE5 /* chat_bubble_incoming.png */, + D389363815A6D53200A3A3AA /* chat_bubble_outgoing.9.png */, + D3A8BB7615A6CC3200F96BE5 /* chat_bubble_outgoing.png */, + D3F5F8DA1609A86700D3DA1A /* chat_cancel_default.png */, + D3F5F8DB1609A86700D3DA1A /* chat_cancel_over.png */, + D38327F11580FE3A00FA0D23 /* chat_default.png */, + D3A74E6E15C69392001500B9 /* chat_default_landscape~ipad.png */, + D3A74E6F15C69392001500B9 /* chat_default~ipad.png */, + D3EA53FF159852080037DC6B /* chat_edit_default.png */, + D3EA5400159852080037DC6B /* chat_edit_over.png */, + D3D51252160B35CB00946DF8 /* chat_message_background.9.png */, + D3D51253160B35CB00946DF8 /* chat_message_background.9@2x.png */, + D3D51254160B35CB00946DF8 /* chat_message_background.png */, + 2234C8E715EE2F7F00E18E83 /* chat_message_delivered.png */, + 2234C8ED15EE744200E18E83 /* chat_message_inprogress.png */, + 2234C8E815EE2F7F00E18E83 /* chat_message_not_delivered.png */, + D3B9A3DB15A58C440096EA4E /* chat_ok_default.png */, + D3B9A3DC15A58C440096EA4E /* chat_ok_over.png */, + D38327FF158100E400FA0D23 /* chat_over.png */, + D3A74E7015C69392001500B9 /* chat_over_landscape~ipad.png */, + D3A74E7115C69392001500B9 /* chat_over~ipad.png */, + D3F5F8DC1609A86700D3DA1A /* chat_photo_default.png */, + D3F5F8DD1609A86700D3DA1A /* chat_photo_disabled.png */, + D3F5F8DE1609A86700D3DA1A /* chat_photo_over.png */, + D3F5F983160B1A0800D3DA1A /* chat_progressbar_background.png */, + D38327F21580FE3A00FA0D23 /* chat_selected.png */, + D3A74E7215C69392001500B9 /* chat_selected_landscape~ipad.png */, + D3A74E7315C69392001500B9 /* chat_selected~ipad.png */, + D3B9A3DD15A58C440096EA4E /* chat_send_default.png */, + D32B6E2315A5B2020033019F /* chat_send_disabled.png */, + D3B9A3DE15A58C450096EA4E /* chat_send_over.png */, + D31AAF61159B5B6E002C6B02 /* conference_default.png */, + D3C31A0715BD8DED008ED271 /* conference_default_landscape.png */, + D339888C15C6DD1600CAF1E4 /* conference_default_landscape~ipad.png */, + D3A74E7415C69392001500B9 /* conference_default~ipad.png */, + D31AAF62159B5B6E002C6B02 /* conference_over.png */, + D3C31A0815BD8DED008ED271 /* conference_over_landscape.png */, + D339888D15C6DD1600CAF1E4 /* conference_over_landscape~ipad.png */, + D3A74E7515C69392001500B9 /* conference_over~ipad.png */, + D3128FE715AABE4E00A2147A /* contact_back_default.png */, + D3128FE815AABE4E00A2147A /* contact_back_over.png */, + D3E84F3615B011AF00420DAC /* contact_cancel_default.png */, + D3E84F3715B011AF00420DAC /* contact_cancel_over.png */, + D3128FE915AABE4E00A2147A /* contact_edit_default.png */, + D3128FEA15AABE4E00A2147A /* contact_edit_over.png */, + D37C638D15AAD251009D0BAC /* contact_number.png */, + D37C638C15AAD251009D0BAC /* contact_number_over.png */, + D3C6526915AC228A0092A874 /* contact_ok_default.png */, + D30BBD1715D402A7000F93DD /* contact_ok_disabled.png */, + D3C6526A15AC228A0092A874 /* contact_ok_over.png */, + D354980E15875608000081D8 /* contacts_add_default.png */, + D354980F15875608000081D8 /* contacts_add_over.png */, + D354980315875534000081D8 /* contacts_all_default.png */, + D354980215875534000081D8 /* contacts_all_selected.png */, + D3119E7015B6A4710005D4A4 /* contacts_back_default.png */, + D3119E7115B6A4710005D4A4 /* contacts_back_over.png */, + D38327EB1580FE3A00FA0D23 /* contacts_default.png */, + D3A74E7615C69392001500B9 /* contacts_default_landscape~ipad.png */, + D3A74E7715C69392001500B9 /* contacts_default~ipad.png */, + D354980515875534000081D8 /* contacts_linphone_default.png */, + D354980415875534000081D8 /* contacts_linphone_selected.png */, + D38327FC158100E400FA0D23 /* contacts_over.png */, + D3A74E7815C69392001500B9 /* contacts_over_landscape~ipad.png */, + D3A74E7915C69392001500B9 /* contacts_over~ipad.png */, + D38327EC1580FE3A00FA0D23 /* contacts_selected.png */, + D3A74E7A15C69392001500B9 /* contacts_selected_landscape~ipad.png */, + D3A74E7B15C69392001500B9 /* contacts_selected~ipad.png */, + D3F83F761582253100336684 /* decline_default.png */, + D3D52A791614495300DEB00A /* decline_default_landscape~ipad.png */, + D3D52A7A1614495300DEB00A /* decline_default~ipad.png */, + D3F83F771582253100336684 /* decline_over.png */, + D3D52A7B1614495300DEB00A /* decline_over_landscape~ipad.png */, + D3D52A7C1614495300DEB00A /* decline_over~ipad.png */, + D3ED3E441585FB8C006C0DE4 /* dialer_address_background.png */, + D3A74E7C15C69392001500B9 /* dialer_address_background_landscape~ipad.png */, + D3A74E7D15C69392001500B9 /* dialer_address_background~ipad.png */, + D3E84F1B15B00F4100420DAC /* dialer_alt_back_default.png */, + D3C31A0915BD8DED008ED271 /* dialer_alt_back_default_landscape.png */, + D339890415C6E16F00CAF1E4 /* dialer_alt_back_default_landscape~ipad.png */, + D3ACB09915C6D59500E15894 /* dialer_alt_back_default~ipad.png */, + D3E84F1C15B00F4100420DAC /* dialer_alt_back_over.png */, + D3C31A0A15BD8DED008ED271 /* dialer_alt_back_over_landscape.png */, + D339890515C6E16F00CAF1E4 /* dialer_alt_back_over_landscape~ipad.png */, + D3ACB09A15C6D59500E15894 /* dialer_alt_back_over~ipad.png */, + D3E84F1D15B00F4100420DAC /* dialer_alt_background.png */, + D36C43CF158F2F370048BA40 /* dialer_alt_default.png */, + D3C31A0B15BD8DED008ED271 /* dialer_alt_default_landscape.png */, + D339888E15C6DD1600CAF1E4 /* dialer_alt_default_landscape~ipad.png */, + D3A74E7E15C69392001500B9 /* dialer_alt_default~ipad.png */, + D3328644160B5BC300E6435D /* dialer_alt_disabled.png */, + D3328642160B5BC300E6435D /* dialer_alt_disabled_landscape.png */, + D3328643160B5BC300E6435D /* dialer_alt_disabled_landscape~ipad.png */, + D3328645160B5BC300E6435D /* dialer_alt_disabled~ipad.png */, + D36C43D0158F2F370048BA40 /* dialer_alt_over.png */, + D3C31A0C15BD8DED008ED271 /* dialer_alt_over_landscape.png */, + D339888F15C6DD1600CAF1E4 /* dialer_alt_over_landscape~ipad.png */, + D3A74E7F15C69392001500B9 /* dialer_alt_over~ipad.png */, + D38327ED1580FE3A00FA0D23 /* dialer_default.png */, + D38327EE1580FE3A00FA0D23 /* dialer_over.png */, + D3C2814A15A2D38D0098AA42 /* dialer_selected.png */, + D35E9208160CAA1F0023116B /* field_background.9.png */, + D35E91E9160CA0BD0023116B /* field_background.9@2x.png */, + D350F21715A43D3400149E54 /* field_background.png */, + D3F5F8E01609A86700D3DA1A /* form_invalid.png */, + D3F5F8E11609A86700D3DA1A /* form_valid.png */, + D3F83EFA158205A100336684 /* hangup_default.png */, + D3C31A0D15BD8DED008ED271 /* hangup_default_landscape.png */, + D339889015C6DD1600CAF1E4 /* hangup_default_landscape~ipad.png */, + D3A74E8015C69392001500B9 /* hangup_default~ipad.png */, + D3F83EFB158205A100336684 /* hangup_over.png */, + D3C31A0E15BD8DED008ED271 /* hangup_over_landscape.png */, + D339889115C6DD1600CAF1E4 /* hangup_over_landscape~ipad.png */, + D3A74E8115C69392001500B9 /* hangup_over~ipad.png */, + D36C43CE158F2F370048BA40 /* header_conference.png */, + D3F26BFB15987083005F9CAB /* header_incoming.png */, + D3ED3E9315872EF1006C0DE4 /* history_all_default.png */, + D3ED3E9215872EF1006C0DE4 /* history_all_selected.png */, + D347347C1580E5F8003C7B8C /* history_default.png */, + D3A74E8215C69392001500B9 /* history_default_landscape~ipad.png */, + D3A74E8315C69392001500B9 /* history_default~ipad.png */, + D3F5F8E21609A86700D3DA1A /* history_delete_default.png */, + D3F5F8E31609A86700D3DA1A /* history_delete_over.png */, + D3157A8815B4466F00DD8C4C /* history_details_add_default.png */, + D3157A8915B4466F00DD8C4C /* history_details_add_over.png */, + D3157A8E15B446CB00DD8C4C /* history_details_back_default.png */, + D3157A8F15B446CB00DD8C4C /* history_details_back_over.png */, + D3ED3E9415872EF1006C0DE4 /* history_edit_default.png */, + D3ED3E9515872EF1006C0DE4 /* history_edit_over.png */, + D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */, + D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */, + D3F9A9DA15AEEB940045320F /* history_notification.png */, + D3F26BF515986DAD005F9CAB /* history_ok_default.png */, + D3F26BF615986DAD005F9CAB /* history_ok_over.png */, + D38327FD158100E400FA0D23 /* history_over.png */, + D3A74E8415C69392001500B9 /* history_over_landscape~ipad.png */, + D3A74E8515C69392001500B9 /* history_over~ipad.png */, + D347347D1580E5F8003C7B8C /* history_selected.png */, + D3A74E8615C69392001500B9 /* history_selected_landscape~ipad.png */, + D3A74E8715C69392001500B9 /* history_selected~ipad.png */, + ); + name = images; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -6078,6 +6576,7 @@ Classes/Utils/XMLRPC/, ); INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", @@ -6113,6 +6612,7 @@ Classes/Utils/XMLRPC/, ); INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", @@ -6149,6 +6649,7 @@ Classes/Utils/XMLRPC/, ); INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", @@ -6185,6 +6686,7 @@ Classes/Utils/XMLRPC/, ); INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", diff --git a/submodules/belle-sip b/submodules/belle-sip index babaf602e..96560b40b 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit babaf602e7958cc9c54a77cd3669927246c88990 +Subproject commit 96560b40b4ef6bdfd891ed0765e98afefb238aec diff --git a/submodules/binaries/libvpx-armv7.a b/submodules/binaries/libvpx-armv7.a new file mode 100644 index 000000000..888bdc235 Binary files /dev/null and b/submodules/binaries/libvpx-armv7.a differ diff --git a/submodules/binaries/libvpx-armv7s.a b/submodules/binaries/libvpx-armv7s.a new file mode 100644 index 000000000..c36d5f299 Binary files /dev/null and b/submodules/binaries/libvpx-armv7s.a differ diff --git a/submodules/binaries/libvpx-i386.a b/submodules/binaries/libvpx-i386.a new file mode 100644 index 000000000..6d8042248 Binary files /dev/null and b/submodules/binaries/libvpx-i386.a differ diff --git a/submodules/binaries/why.txt b/submodules/binaries/why.txt new file mode 100644 index 000000000..0c656228c --- /dev/null +++ b/submodules/binaries/why.txt @@ -0,0 +1,16 @@ +Notes: + +This directory is here because some of our dependencies compile incorrecly +(or not at all) with the compilers that Apple ships with its newer Xcode versions. + +You'll find here the reasons why certain libs are furnished pre-compiled. + + += Libvpx = + +Binary version compiled with XCode 5.0, with the patch suggested here for +garbage video fix: https://code.google.com/p/webm/issues/detail?id=603#c45 + +Compiles OK on XCode 5.1 but results in a crash in-app. +Bug is here: https://code.google.com/p/webm/issues/detail?id=737 + diff --git a/submodules/build/builders.d/libvpx.mk b/submodules/build/builders.d/libvpx.mk index 567bf3b38..4c80d5bdd 100644 --- a/submodules/build/builders.d/libvpx.mk +++ b/submodules/build/builders.d/libvpx.mk @@ -1,26 +1,43 @@ +libvpx_dir?=externals/libvpx + libvpx_configure_options=\ --enable-static --disable-shared \ --enable-error-concealment --disable-examples \ --enable-realtime-only --enable-spatial-resampling \ - --enable-vp8 --enable-multithread + --enable-vp8 --enable-multithread --disable-vp9 + +take_binary= ifneq (,$(findstring armv6,$(host))) libvpx_configure_options+= --target=armv6-darwin-gcc --cpu=arm1176jzf-s else ifneq (,$(findstring armv7s,$(host))) libvpx_configure_options+= --target=armv7s-darwin-gcc + take_binary = armv7s else ifneq (,$(findstring armv7,$(host))) libvpx_configure_options+= --target=armv7-darwin-gcc + take_binary = armv7 else libvpx_configure_options+= --target=x86-darwin10-gcc + take_binary = i386 endif -libvpx_dir?=externals/libvpx all_p=armv6-darwin-gcc #neon Cortex-A8 all_p+=armv7-darwin-gcc #neon Cortex-A8 all_p+=armv7s-darwin-gcc #neon Cortex-A8 +ifeq ($(force_non_binary_libvpx),1) +take_binary= +endif -$(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk: + + +$(BUILDER_SRC_DIR)/$(libvpx_dir)/patched.stamp: + cd $(BUILDER_SRC_DIR)/$(libvpx_dir) \ + && git apply $(BUILDER_SRC_DIR)/build/builders.d/libvpx.patch \ + && touch $@ + + +$(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk: $(BUILDER_SRC_DIR)/$(libvpx_dir)/patched.stamp mkdir -p $(BUILDER_BUILD_DIR)/$(libvpx_dir) cd $(BUILDER_BUILD_DIR)/$(libvpx_dir)/ \ && host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \ @@ -30,6 +47,14 @@ build-libvpx: $(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) \ && host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \ && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install +ifeq ($(force_non_binary_libvpx),1) + @echo "\033[01;32m DON'T get BINARY version of libvpx for $(take_binary), because 'force_non_binary_libvpx' is 1 \033[0m" +endif +ifneq (,$(take_binary)) +# we have to take binary version of libvpx for ARM because Clang introduces bugs in optimized assembly + @echo "\033[01;32m Getting BINARY version of libvpx for $(take_binary) \033[0m" + cp $(BUILDER_SRC_DIR)/binaries/libvpx-$(take_binary).a $(prefix)/lib/libvpx.a +endif clean-libvpx: cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && make clean @@ -37,7 +62,8 @@ clean-libvpx: veryclean-libvpx: -cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && make distclean cd $(BUILDER_SRC_DIR)/$(libvpx_dir) \ - && git clean -f && git reset --hard + && git clean -f && git reset --hard \ + && rm -f patched.stamp rm -rf $(BUILDER_BUILD_DIR)/$(libvpx_dir) clean-makefile-libvpx: diff --git a/submodules/build/builders.d/libvpx.patch b/submodules/build/builders.d/libvpx.patch index 1bdb3f9d4..ff22c185b 100644 --- a/submodules/build/builders.d/libvpx.patch +++ b/submodules/build/builders.d/libvpx.patch @@ -1,34 +1,17 @@ -diff --git a/build/make/configure.sh b/build/make/configure.sh -index c99a01c..7fdf10d 100755 ---- a/build/make/configure.sh -+++ b/build/make/configure.sh -@@ -889,13 +889,13 @@ process_common_toolchain() { - SDK_PATH=${sdk_path} - fi - TOOLCHAIN_PATH=${SDK_PATH}/usr/bin -- CXX=${TOOLCHAIN_PATH}/g++ -- CC=${TOOLCHAIN_PATH}/gcc -- AR=${TOOLCHAIN_PATH}/ar -- LD=${TOOLCHAIN_PATH}/arm-apple-darwin10-llvm-gcc-4.2 -- AS=${TOOLCHAIN_PATH}/as -- STRIP=${TOOLCHAIN_PATH}/strip -- NM=${TOOLCHAIN_PATH}/nm -+ CXX=`xcrun --find clang++` -+ CC=`xcrun --find clang` -+ AR=`xcrun --find ar` -+ LD=`xcrun --find clang` -+ AS=`xcrun --find as` -+ STRIP=`xcrun --find strip` -+ NM=`xcrun --find nm` - AS_SFX=.s +diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c +index 16da78a..fd9ca61 100644 +--- a/vp8/decoder/decodframe.c ++++ b/vp8/decoder/decodframe.c +@@ -248,7 +248,11 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, - # ASFLAGS is written here instead of using check_add_asflags -@@ -904,7 +904,7 @@ process_common_toolchain() { - ASFLAGS="-version -arch ${tgt_isa} -g" - - add_cflags -arch ${tgt_isa} -- add_ldflags -arch_only ${tgt_isa} -+ add_ldflags -arch ${tgt_isa} - - if [ -z "${alt_libc}" ]; then - alt_libc=${SDK_PATH}/SDKs/iPhoneOS5.1.sdk + vp8_short_inv_walsh4x4(&b->dqcoeff[0], + xd->qcoeff); +- vpx_memset(b->qcoeff, 0, 16 * sizeof(b->qcoeff[0])); ++ // TODO(johannkoenig): figure out why bzero below ++ // works great on iOS Release but memset or ++ // vpx_memset create terrible corruption on decode ++ // (https://code.google.com/p/webm/issues/detail?id=603). ++ bzero(b->qcoeff, 16 * sizeof(b->qcoeff[0])); + } + else + { diff --git a/submodules/linphone b/submodules/linphone index 4e7f788ff..5cff5bebe 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 4e7f788ffa8f6d2878c9a0f8e1fa2980c634ddc2 +Subproject commit 5cff5bebe5f588c0242904ed62ca04a945e8dcee