Merge branch 'master' into remote

Conflicts:
	Classes/Base.lproj/WizardViews.xib
	Classes/LinphoneCoreSettingsStore.m
	Classes/LinphoneManager.m
	Classes/PhoneMainView.m
	Classes/SettingsViewController.m
	Classes/WizardViewController.h
	Classes/WizardViewController.m
This commit is contained in:
Guillaume BIENKOWSKI 2014-04-02 11:29:27 +02:00
commit 08d486afa5
19 changed files with 610 additions and 73 deletions

2
.gitmodules vendored
View file

@ -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

View file

@ -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];
}

View file

@ -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;

View file

@ -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];

View file

@ -18,6 +18,7 @@
*/
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
#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;

View file

@ -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];
}

View file

@ -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"];
}

View file

@ -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";

View file

@ -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";

View file

@ -302,4 +302,3 @@
"Enter an address" = "Введите адрес SIP или номер телефона...";
"%@ is composing..." = "%@ is composing...";
"Resend" = "Resend";
"Fetching remote configuration" = "Fetching remote configuration";

View file

@ -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 = "<group>";
};
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 = "<group>";
};
/* 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\"",

@ -1 +1 @@
Subproject commit babaf602e7958cc9c54a77cd3669927246c88990
Subproject commit 96560b40b4ef6bdfd891ed0765e98afefb238aec

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -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

View file

@ -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:

View file

@ -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
{

@ -1 +1 @@
Subproject commit 4e7f788ffa8f6d2878c9a0f8e1fa2980c634ddc2
Subproject commit 5cff5bebe5f588c0242904ed62ca04a945e8dcee