diff --git a/Classes/CallDelegate.h b/Classes/CallDelegate.h index 02b69b026..516c2074d 100644 --- a/Classes/CallDelegate.h +++ b/Classes/CallDelegate.h @@ -1,27 +1,48 @@ -// -// CallDelegate.h -// linphone -// -// Created by Pierre-Eric Pelloux-Prayer on 03/11/11. -// Copyright (c) 2011 __MyCompanyName__. All rights reserved. -// +/* LinphoneManager.h + * + * Copyright (C) 2011 Belledonne Comunications, Grenoble, France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #import #include "linphonecore.h" +enum CallDelegateType { + CD_UNDEFINED = 0, + CD_NEW_CALL, + CD_ZRTP, + CD_VIDEO_UPDATE, + CD_STOP_VIDEO_ON_LOW_BATTERY, + CD_TRANSFER_CALL +}; @protocol UIActionSheetCustomDelegate -- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void*) datas; +- (void)actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType) type clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void*) datas; @end - @interface CallDelegate : NSObject { - + enum CallDelegateType eventType; LinphoneCall* call; id delegate; + NSTimer* timeout; } +@property (nonatomic) enum CallDelegateType eventType; @property (nonatomic) LinphoneCall* call; @property (nonatomic, retain) id delegate; +@property (nonatomic, retain) NSTimer* timeout; @end diff --git a/Classes/CallDelegate.m b/Classes/CallDelegate.m index 6ae87a25c..b7b6ed366 100644 --- a/Classes/CallDelegate.m +++ b/Classes/CallDelegate.m @@ -1,20 +1,67 @@ -// -// CallDelegate.m -// linphone -// -// Created by Pierre-Eric Pelloux-Prayer on 03/11/11. -// Copyright (c) 2011 __MyCompanyName__. All rights reserved. -// +/* LinphoneManager.h + * + * Copyright (C) 2011 Belledonne Comunications, Grenoble, France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #import "CallDelegate.h" @implementation CallDelegate +@synthesize eventType; @synthesize call; @synthesize delegate; +@synthesize timeout; -(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { - [delegate actionSheet:actionSheet clickedButtonAtIndex:buttonIndex withUserDatas:call]; + if (timeout) { + [timeout invalidate]; + timeout = nil; + } + if (eventType == CD_UNDEFINED) { + ms_error("Incorrect usage of CallDelegate/ActionSheet: eventType must be set"); + } + [delegate actionSheet:actionSheet ofType:eventType clickedButtonAtIndex:buttonIndex withUserDatas:call]; +} + +-(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { + + + if (timeout) { + [timeout invalidate]; + timeout = nil; + } + if (buttonIndex != actionSheet.cancelButtonIndex) return; + + if (eventType == CD_UNDEFINED) { + ms_error("Incorrect usage of CallDelegate/ActionSheet: eventType must be set"); + } + + [delegate actionSheet:actionSheet ofType:eventType clickedButtonAtIndex:buttonIndex withUserDatas:call]; +} + +-(void) actionSheetCancel:(UIActionSheet *)actionSheet { + if (timeout) { + [timeout invalidate]; + timeout = nil; + } + if (eventType == CD_UNDEFINED) { + ms_error("Incorrect usage of CallDelegate/ActionSheet: eventType must be set"); + } + [delegate actionSheet:actionSheet ofType:eventType clickedButtonAtIndex:actionSheet.cancelButtonIndex withUserDatas:call]; } @end diff --git a/Classes/CallHistoryTableViewController.m b/Classes/CallHistoryTableViewController.m index 60d438d9b..72633984f 100644 --- a/Classes/CallHistoryTableViewController.m +++ b/Classes/CallHistoryTableViewController.m @@ -116,7 +116,8 @@ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; - + [cell.textLabel setTextColor:[UIColor colorWithRed:0.7 green:0.745 blue:0.78 alpha:1.0]]; + [cell.detailTextLabel setTextColor:cell.textLabel.textColor]; } // Set up the cell... @@ -127,7 +128,7 @@ NSString *path; if (callLogs->dir == LinphoneCallIncoming) { if (callLogs->status == LinphoneCallSuccess) { - path = [[NSBundle mainBundle] pathForResource:@"in_call" ofType:@"png"]; + path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"in_call_video":@"in_call" ofType:@"png"]; } else { //missed call path = [[NSBundle mainBundle] pathForResource:@"missed_call" ofType:@"png"]; @@ -135,7 +136,7 @@ partyToDisplay=callLogs->from; } else { - path = [[NSBundle mainBundle] pathForResource:@"out_call" ofType:@"png"]; + path = [[NSBundle mainBundle] pathForResource:callLogs->video_enabled?@"out_call_video":@"out_call" ofType:@"png"]; partyToDisplay=callLogs->to; } @@ -147,12 +148,12 @@ const char* displayName = linphone_address_get_display_name(partyToDisplay); if (displayName) { - NSString* str1 = [NSString stringWithCString:displayName encoding:[NSString defaultCStringEncoding]]; + NSString* str1 = [NSString stringWithFormat:@"%s", displayName]; [cell.textLabel setText:str1]; NSString* str2 = [NSString stringWithFormat:@"%s"/* [%s]"*/,username/*,callLogs->start_date*/]; [cell.detailTextLabel setText:str2]; } else { - NSString* str1 = [NSString stringWithCString:username encoding:[NSString defaultCStringEncoding]]; + NSString* str1 = [NSString stringWithFormat:@"%s", username]; [cell.textLabel setText:str1]; [cell.detailTextLabel setText:nil]; } diff --git a/Classes/ConferenceCallDetailView.m b/Classes/ConferenceCallDetailView.m index ed6ebafea..231fcb4ce 100644 --- a/Classes/ConferenceCallDetailView.m +++ b/Classes/ConferenceCallDetailView.m @@ -88,9 +88,11 @@ NSTimer *callQualityRefresher; [mute reset]; [speaker reset]; [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; + [super viewWillAppear:animated]; } -(void) viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; callQualityRefresher = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateCallQuality) @@ -148,21 +150,7 @@ NSTimer *callQualityRefresher; } } UIImageView* callquality = (UIImageView*) [cell viewWithTag:3]; - if (linphone_call_get_average_quality(call) >= 4) { - [callquality setImage: [IncallViewController stat_sys_signal_4]]; - } - else if (linphone_call_get_average_quality(call) >= 3) { - [callquality setImage: [IncallViewController stat_sys_signal_3]]; - } - else if (linphone_call_get_average_quality(call) >= 2) { - [callquality setImage: [IncallViewController stat_sys_signal_2]]; - } - else if (linphone_call_get_average_quality(call) >= 1) { - [callquality setImage: [IncallViewController stat_sys_signal_1]]; - } - else { - [callquality setImage: [IncallViewController stat_sys_signal_0]]; - } + [IncallViewController updateIndicator:callquality withCallQuality:linphone_call_get_average_quality(call)]; tableView.rowHeight = 80; return cell; diff --git a/Classes/ConsoleViewController.m b/Classes/ConsoleViewController.m index c2ee28379..246ced0eb 100644 --- a/Classes/ConsoleViewController.m +++ b/Classes/ConsoleViewController.m @@ -58,6 +58,7 @@ NSMutableString* MoreViewController_logs; */ -(void) viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; [logs setText:MoreViewController_logs]; } diff --git a/Classes/FirstLoginViewController.m b/Classes/FirstLoginViewController.m index b91450b65..69ae3149d 100644 --- a/Classes/FirstLoginViewController.m +++ b/Classes/FirstLoginViewController.m @@ -89,8 +89,8 @@ } -(void) displayRegisteredFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName onDomain:(NSString*)domain { [[NSUserDefaults standardUserDefaults] setBool:false forKey:@"enable_first_login_view_preference"]; - [self.parentViewController dismissModalViewControllerAnimated:true]; [self.activityIndicator setHidden:true]; + [self dismissModalViewControllerAnimated:YES]; } -(void) displayRegisteringFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName onDomain:(NSString*)domain { [self.activityIndicator setHidden:false]; @@ -99,13 +99,13 @@ [self.activityIndicator setHidden:true]; //default behavior if no registration delegates - UIAlertView* error = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Registration failure for user %@",user] - message:reason - delegate:nil - cancelButtonTitle:@"Continue" - otherButtonTitles:nil ,nil]; - [error show]; - [error release]; + //UIAlertView* error = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Registration failure for user %@",user] + // message:reason + // delegate:nil + // cancelButtonTitle:@"Continue" + // otherButtonTitles:nil ,nil]; + //[error show]; + //[error release]; //erase uername passwd [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"username_preference"]; [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"password_preference"]; diff --git a/Classes/FirstLoginViewController.xib b/Classes/FirstLoginViewController.xib index ef6a7d25e..5ab733adc 100644 --- a/Classes/FirstLoginViewController.xib +++ b/Classes/FirstLoginViewController.xib @@ -2,30 +2,31 @@ 784 - 10J567 - 823 - 1038.35 - 462.00 + 10K549 + 1938 + 1038.36 + 461.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 132 + 933 - + YES - + IBUIView + IBUIImageView + IBUIViewController + IBProxyObject + IBUIActivityIndicatorView + IBUITextField + IBUIButton YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin - YES - - YES - - - YES - + PluginDependencyRecalculationVersion + YES @@ -48,27 +49,28 @@ 292 {{0, -20}, {360, 480}} + NO NO 9 NO IBCocoaTouchFramework + + NSImage + wallpaper_iphone_320x480.png + - 292 - {{25, 319}, {184, 37}} + -2147483356 + {{60, 400}, {200, 37}} + NO NO IBCocoaTouchFramework 0 0 - - Helvetica-Bold - 15 - 16 - 3 MQA @@ -81,18 +83,32 @@ 3 MC41AA + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + 292 - {{105, 75}, {197, 31}} + {{60, 200}, {200, 31}} + NO NO IBCocoaTouchFramework + 0 0 3 + Password 3 MAA @@ -108,37 +124,29 @@ YES IBCocoaTouchFramework - - - - 292 - {{9, 80}, {100, 21}} - - NO - YES - NO - IBCocoaTouchFramework - Password* - - 1 - MCAwIDAAA + + 1 + 12 + + + Helvetica + 12 + 16 - - 1 - NO - 10 292 - {{105, 34}, {197, 31}} + {{60, 150}, {200, 31}} + NO NO IBCocoaTouchFramework 0 3 + Username 3 MAA @@ -150,46 +158,41 @@ 1 IBCocoaTouchFramework - - - - 292 - {{9, 40}, {100, 21}} - - - 3 - MCAwAA - - NO - YES - NO - IBCocoaTouchFramework - Username* - - - 1 - NO - 10 + + 292 - {{105, 154}, {195, 37}} + {{60, 300}, {200, 37}} + NO NO IBCocoaTouchFramework 0 0 - 1 - login + Login - 1 - MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + 5 + MSAwLjY2MDAwMDAyNjIgMCAwAA + + 3 + + 1 0.66 0 0 1 + + 2 + 2 + + + Helvetica-Bold + 18 + 16 + @@ -201,6 +204,7 @@ 292 {{142, 211}, {37, 37}} + NO NO NO @@ -212,17 +216,19 @@ {320, 460} + 3 - MQA + MSAwLjY2AA NO IBCocoaTouchFramework - {320, 460} + {{0, 20}, {320, 460}} + 3 MQA @@ -233,6 +239,7 @@ + 1 1 IBCocoaTouchFramework @@ -258,6 +265,38 @@ 15 + + + activityIndicator + + + + 33 + + + + username + + + + 38 + + + + site + + + + 36 + + + + delegate + + + + 39 + delegate @@ -275,22 +314,6 @@ 20 - - - activityIndicator - - - - 33 - - - - site - - - - 36 - doOk: @@ -300,29 +323,15 @@ 37 - - - username - - - - 38 - - - - delegate - - - - 39 - YES 0 - + + YES + @@ -355,8 +364,6 @@ - - @@ -373,28 +380,12 @@ username - - 35 - - - site - 8 passwd - - 9 - - - - - 7 - - - 5 @@ -415,6 +406,12 @@ + + 35 + + + site + @@ -422,58 +419,40 @@ YES -1.CustomClassName + -1.IBPluginDependency -2.CustomClassName - 1.IBEditorWindowLastContentRect + -2.IBPluginDependency 1.IBPluginDependency 1.IBUserGuides - 1.IBViewBoundsToFrameTransform 12.IBPluginDependency - 12.IBViewBoundsToFrameTransform - 31.IBEditorWindowLastContentRect + 12.IBUIButtonInspectorSelectedStateConfigurationMetadataKey 31.IBPluginDependency - 31.IBViewBoundsToFrameTransform 32.IBPluginDependency 35.IBPluginDependency - 4.IBEditorWindowLastContentRect 4.IBPluginDependency - 4.IBViewEditorWindowController.showingBoundsRectangles 5.IBPluginDependency 6.IBPluginDependency - 7.IBPluginDependency 8.IBPluginDependency - 9.IBPluginDependency YES FirstLoginViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder - {{444, 412}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES - 105 + 104 0 - - P4AAAL+AAAAAAAAAw+UAAA - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - P4AAAL+AAABDUgAAw7EAAA - - {{193, 650}, {320, 460}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - P4AAAL+AAAAAAAAAw+UAAA - + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{85, 91}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -484,316 +463,18 @@ YES - - YES - + YES - - YES - + - 53 - - - - YES - - FirstLoginViewController - UIViewController - - doOk: - id - - - doOk: - - doOk: - id - - - - YES - - YES - activityIndicator - ok - passwd - site - username - - - YES - UIView - UIButton - UITextField - UIButton - UITextField - - - - YES - - YES - activityIndicator - ok - passwd - site - username - - - YES - - activityIndicator - UIView - - - ok - UIButton - - - passwd - UITextField - - - site - UIButton - - - username - UITextField - - - - - IBProjectSource - Classes/FirstLoginViewController.h - - - - - YES - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIAccessibility.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UINibLoading.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIResponder.h - - - - UIActivityIndicatorView - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIActivityIndicatorView.h - - - - UIButton - UIControl - - IBFrameworkSource - UIKit.framework/Headers/UIButton.h - - - - UIControl - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIControl.h - - - - UIImageView - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIImageView.h - - - - UILabel - UIView - - IBFrameworkSource - UIKit.framework/Headers/UILabel.h - - - - UIResponder - NSObject - - - - UISearchBar - UIView - - IBFrameworkSource - UIKit.framework/Headers/UISearchBar.h - - - - UISearchDisplayController - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UISearchDisplayController.h - - - - UITextField - UIControl - - IBFrameworkSource - UIKit.framework/Headers/UITextField.h - - - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIPrintFormatter.h - - - - UIView - - - - UIView - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIView.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UINavigationController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UIPopoverController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UISplitViewController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITabBarController.h - - - - UIViewController - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIViewController.h - - - + 54 + 0 IBCocoaTouchFramework @@ -802,15 +483,18 @@ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES - ../linphone.xcodeproj 3 - 132 + + wallpaper_iphone_320x480.png + {320, 480} + + 933 diff --git a/Classes/InCallViewController-ipad.xib b/Classes/InCallViewController-ipad.xib index 17661327c..51b1dfa66 100644 --- a/Classes/InCallViewController-ipad.xib +++ b/Classes/InCallViewController-ipad.xib @@ -11,11 +11,13 @@ 933 - IBUIViewController IBUIButton - IBUIView - IBUITableView + IBUIImageView + IBUIViewController IBProxyObject + IBUIActivityIndicatorView + IBUITableView + IBUIView com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -38,6 +40,114 @@ 274 + + + 274 + + + + 292 + {768, 1024} + + + + _NS:569 + NO + IBIPadFramework + + + + 292 + {{20, 956}, {28, 28}} + + + + _NS:567 + NO + IBIPadFramework + + + + 292 + {{366, 493}, {37, 37}} + + + + _NS:1062 + NO + IBIPadFramework + NO + 0 + + + + 292 + {{598, 799}, {170, 225}} + + + + + 3 + MQA + + 2 + + + IBIPadFramework + + + {768, 1024} + + + + _NS:212 + + 3 + MC42NjY2NjY2NjY3AA + + IBIPadFramework + + + + 292 + {{224, 740}, {320, 66}} + + + + NO + IBIPadFramework + 0 + 0 + 1 + Change camera + + 3 + MQA + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + NSImage + clavier-01-108px.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + 274 @@ -49,9 +159,7 @@ 3 MSAwAA - - 2 - + YES IBIPadFramework @@ -82,18 +190,12 @@ IBIPadFramework 0 0 - - 3 - MQA - + 1 MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA - - 3 - MC41AA - + NSImage stopcall-red.png @@ -102,17 +204,8 @@ NSImage clavier-01-106px.png - - Helvetica-Bold - Helvetica - 2 - 15 - - - Helvetica-Bold - 15 - 16 - + + {{224, 937}, {320, 77}} @@ -133,7 +226,7 @@ 292 - {{107, 70}, {106, 66}} + {{80, 70}, {80, 66}} @@ -207,7 +300,7 @@ 292 - {{0, 70}, {107, 66}} + {{0, 70}, {80, 66}} @@ -233,7 +326,7 @@ 292 - {{213, 70}, {107, 66}} + {{240, 70}, {80, 66}} @@ -262,10 +355,10 @@ -2147483356 - {{213, 70}, {107, 66}} + {{240, 70}, {80, 66}} - + NO NO @@ -280,13 +373,50 @@ MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA - + NSImage clavier-01-160px.png + + + 292 + {{160, 70}, {80, 66}} + + + + + NO + NO + IBIPadFramework + 0 + 0 + transfer + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + + + + + + + 292 + {{262, 84}, {37, 37}} + + + + _NS:1062 + NO + IBIPadFramework + NO + 0 + 292 @@ -347,10 +477,10 @@ 292 - {{107, 70}, {106, 66}} + {{80, 70}, {80, 66}} - + NO NO @@ -396,7 +526,7 @@ {{119, 251}, {82, 52}} - + NO NO @@ -411,7 +541,7 @@ - + @@ -420,10 +550,7 @@ - - 3 - MC42NjY2NjY2NjY3AA - + NO NO IBIPadFramework @@ -437,7 +564,7 @@ - + @@ -460,7 +587,7 @@ - + @@ -480,7 +607,7 @@ - + @@ -503,7 +630,7 @@ - + @@ -526,7 +653,7 @@ - + @@ -549,7 +676,7 @@ - + @@ -572,7 +699,7 @@ - + @@ -595,7 +722,7 @@ - + @@ -618,7 +745,7 @@ - + @@ -641,7 +768,7 @@ - + @@ -664,7 +791,7 @@ - + @@ -687,7 +814,7 @@ - + {{178, 146}, {320, 310}} @@ -706,7 +833,7 @@ {{0, 20}, {768, 1004}} - + _NS:212 IBIPadFramework @@ -726,51 +853,11 @@ - addCall + callTableView - + - 112 - - - - addVideo - - - - 113 - - - - close - - - - 115 - - - - contacts - - - - 116 - - - - controlSubView - - - - 117 - - - - eight - - - - 118 + 114 @@ -780,22 +867,6 @@ 119 - - - five - - - - 120 - - - - four - - - - 121 - hangUpView @@ -806,19 +877,11 @@ - hash + speaker - + - 123 - - - - mergeCalls - - - - 124 + 132 @@ -830,27 +893,43 @@ - nine + addVideo - + - 126 + 113 - one + mergeCalls - + - 127 + 124 - padSubView + addCall - + - 128 + 112 + + + + contacts + + + + 116 + + + + dialer + + + + 141 @@ -860,6 +939,30 @@ 129 + + + controlSubView + + + + 117 + + + + five + + + + 120 + + + + nine + + + + 126 + seven @@ -878,19 +981,11 @@ - speaker + four - + - 132 - - - - star - - - - 133 + 121 @@ -900,6 +995,14 @@ 134 + + + zero + + + + 137 + two @@ -908,6 +1011,54 @@ 135 + + + close + + + + 115 + + + + hash + + + + 123 + + + + eight + + + + 118 + + + + one + + + + 127 + + + + star + + + + 133 + + + + padSubView + + + + 128 + view @@ -918,27 +1069,67 @@ - zero + videoGroup - + - 137 + 159 - callTableView + videoView - + - 114 + 161 - dialer + videoPreview - + - 141 + 162 + + + + videoCallQuality + + + + 163 + + + + videoCameraSwitch + + + + 164 + + + + videoUpdateIndicator + + + + 167 + + + + videoWaitingForFirstImage + + + + 168 + + + + transfer + + + + 170 @@ -1018,10 +1209,31 @@ + + + + 61 + + + + + 88 + + + + + + + + 98 + + + end + 89 @@ -1031,55 +1243,27 @@ - + + + controls - - 97 - - - pauseresume - 96 speaker - - 95 - - - dialer - - - 94 - - - contacts - - - 93 - - - addcall - 92 mute - - 91 - - - merge - 90 @@ -1087,12 +1271,34 @@ video - 88 - - - - - + 91 + + + merge + + + 93 + + + addcall + + + 94 + + + contacts + + + 95 + + + dialer + + + 97 + + + pauseresume 87 @@ -1116,70 +1322,10 @@ pad - 111 - + 99 + - star - - - 110 - - - 1 - - - 109 - - - 8 - - - 108 - - - hash - - - 107 - - - close - - - 106 - - - 2 - - - 105 - - - 0 - - - 104 - - - 3 - - - 103 - - - 4 - - - 102 - - - 6 - - - 101 - - - 7 + 5 100 @@ -1188,21 +1334,123 @@ 9 - 99 - + 101 + - 5 + 7 - 98 - - - end + 102 + + + 6 - 61 - + 103 + + + 4 + + + 104 + + + 3 + + + 105 + + + 0 + + + 106 + + + 2 + + + 107 + + + close + + + 108 + + + hash + + + 109 + + + 8 + + + 110 + + + 1 + + + 111 + + + star + + + 152 + + + + + + + + video + + + 158 + + + + video_preview + + + 157 + + + video_view + + + 153 + + + call_quality_video + + + 154 + + + + + 165 + + + toggleVideoIndicator + + + 166 + + + + + 169 + + + transfer @@ -1235,13 +1483,22 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIDigitButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UICamSwitch + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIAddVideoButton + UIToggleVideoButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -1266,7 +1523,7 @@ - 144 + 170 @@ -1286,7 +1543,7 @@ UIButton - UIButton + UIToggleVideoButton UITableView UIButton UIViewController @@ -1310,8 +1567,16 @@ UIButton UIButton UIButton + UIButton UIButton + UIImageView + UICamSwitch + UIView + UIView + UIActivityIndicatorView + UIView VideoViewController + UIActivityIndicatorView UIButton @@ -1321,7 +1586,7 @@ addVideo - UIButton + UIToggleVideoButton callTableView @@ -1415,14 +1680,46 @@ three UIButton + + transfer + UIButton + two UIButton + + videoCallQuality + UIImageView + + + videoCameraSwitch + UICamSwitch + + + videoGroup + UIView + + + videoPreview + UIView + + + videoUpdateIndicator + UIActivityIndicatorView + + + videoView + UIView + videoViewController VideoViewController + + videoWaitingForFirstImage + UIActivityIndicatorView + zero UIButton @@ -1433,14 +1730,6 @@ ./Classes/IncallViewController.h - - UIAddVideoButton - UIButton - - IBProjectSource - ./Classes/UIAddVideoButton.h - - UICamSwitch UIButton @@ -1500,6 +1789,25 @@ ./Classes/UIToggleButton.h + + UIToggleVideoButton + UIButton + + videoUpdateIndicator + UIActivityIndicatorView + + + videoUpdateIndicator + + videoUpdateIndicator + UIActivityIndicatorView + + + + IBProjectSource + ./Classes/UIToggleVideoButton.h + + VideoViewController UIViewController @@ -1628,6 +1936,7 @@ {107, 67} {107, 67} {106, 60} + {108, 60} {160, 60} {106, 67} {107, 67} diff --git a/Classes/IncallViewController.h b/Classes/IncallViewController.h index a17617aa6..0d7340568 100644 --- a/Classes/IncallViewController.h +++ b/Classes/IncallViewController.h @@ -22,7 +22,8 @@ #import "ConferenceCallDetailView.h" #import #include "UILinphone.h" - +#import "UIToggleVideoButton.h" +#import "VideoZoomHandler.h" @class VideoViewController; @interface IncallViewController : UIViewController { @@ -36,9 +37,10 @@ UIButton* pause; UISpeakerButton* speaker; UIButton* contacts; - UIButton* addVideo; + UIToggleVideoButton* addVideo; UITableView* callTableView; UIButton* addCall, *mergeCalls; + UIButton* transfer; //key pad @@ -58,6 +60,14 @@ UIDigitButton* hash; UIButton* close; + UIView* videoGroup; + UIView* videoView; + UIView* videoPreview; + UIImageView* videoCallQuality; + UICamSwitch* videoCameraSwitch; + UIActivityIndicatorView* videoUpdateIndicator; + UIActivityIndicatorView* videoWaitingForFirstImage; + bool dismissed; NSTimer *durationRefreasher; @@ -78,14 +88,11 @@ UIImage* verified, *unverified; UIImage* stat_sys_signal_0, *stat_sys_signal_1, *stat_sys_signal_2, *stat_sys_signal_3, *stat_sys_signal_4; - UIActionSheet* zrtpVerificationSheet; -} + UIActionSheet* visibleActionSheet; -+ (UIImage*) stat_sys_signal_0; -+ (UIImage*) stat_sys_signal_1; -+ (UIImage*) stat_sys_signal_2; -+ (UIImage*) stat_sys_signal_3; -+ (UIImage*) stat_sys_signal_4; + NSTimer* hideControlsTimer; + VideoZoomHandler* videoZoomHandler; +} -(void)displayStatus:(NSString*) message; @@ -93,6 +100,7 @@ +(LinphoneCall*) retrieveCallAtIndex: (NSInteger) index inConference:(bool) conf; + (void) updateCellImageView:(UIImageView*)imageView Label:(UILabel*)label DetailLabel:(UILabel*)detailLabel AndAccessoryView:(UIView*)accessoryView withCall:(LinphoneCall*) call; ++(void) updateIndicator:(UIImageView*) indicator withCallQuality:(float) quality; @property (nonatomic, retain) IBOutlet UIView* controlSubView; @property (nonatomic, retain) IBOutlet UIView* padSubView; @@ -105,10 +113,11 @@ @property (nonatomic, retain) IBOutlet UIButton* pause; @property (nonatomic, retain) IBOutlet UIButton* speaker; @property (nonatomic, retain) IBOutlet UIButton* contacts; -@property (nonatomic, retain) IBOutlet UIButton* addVideo; +@property (nonatomic, retain) IBOutlet UIToggleVideoButton* addVideo; @property (nonatomic, retain) IBOutlet UITableView* callTableView; @property (nonatomic, retain) IBOutlet UIButton* addCall; @property (nonatomic, retain) IBOutlet UIButton* mergeCalls; +@property (nonatomic, retain) IBOutlet UIButton* transfer; @property (nonatomic, retain) IBOutlet UIButton* one; @property (nonatomic, retain) IBOutlet UIButton* two; @@ -124,4 +133,13 @@ @property (nonatomic, retain) IBOutlet UIButton* hash; @property (nonatomic, retain) IBOutlet UIButton* close; @property (nonatomic, retain) IBOutlet VideoViewController* videoViewController; + +@property (nonatomic, retain) IBOutlet UIView* videoGroup; +@property (nonatomic, retain) IBOutlet UIView* videoView; +@property (nonatomic, retain) IBOutlet UIView* videoPreview; +@property (nonatomic, retain) IBOutlet UIImageView* videoCallQuality; +@property (nonatomic, retain) IBOutlet UICamSwitch* videoCameraSwitch; +@property (nonatomic, retain) IBOutlet UIActivityIndicatorView* videoUpdateIndicator; +@property (nonatomic, retain) IBOutlet UIActivityIndicatorView* videoWaitingForFirstImage; + @end diff --git a/Classes/IncallViewController.m b/Classes/IncallViewController.m index b0bdf7cf7..3adaf99de 100644 --- a/Classes/IncallViewController.m +++ b/Classes/IncallViewController.m @@ -24,6 +24,10 @@ #include "LinphoneManager.h" #include "private.h" #import "ContactPickerDelegate.h" +#import +#import +#import +#import #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) @@ -48,6 +52,7 @@ const NSInteger SECURE_BUTTON_TAG=5; @synthesize callTableView; @synthesize addCall; @synthesize mergeCalls; +@synthesize transfer; @synthesize one; @synthesize two; @@ -63,27 +68,29 @@ const NSInteger SECURE_BUTTON_TAG=5; @synthesize hash; @synthesize videoViewController; +@synthesize videoGroup; +@synthesize videoView; +@synthesize videoPreview; +@synthesize videoCallQuality; +@synthesize videoCameraSwitch; +@synthesize videoUpdateIndicator; +@synthesize videoWaitingForFirstImage; + @synthesize addVideo; -+ (UIImage*) stat_sys_signal_0 { - return [UIImage imageNamed:@"stat_sys_signal_0.png"]; -} - -+ (UIImage*) stat_sys_signal_1 { - return [UIImage imageNamed:@"stat_sys_signal_1.png"]; -} - -+ (UIImage*) stat_sys_signal_2 { - return [UIImage imageNamed:@"stat_sys_signal_2.png"]; -} - -+ (UIImage*) stat_sys_signal_3 { - return [UIImage imageNamed:@"stat_sys_signal_3.png"]; -} - -+ (UIImage*) stat_sys_signal_4 { - return [UIImage imageNamed:@"stat_sys_signal_4.png"]; ++(void) updateIndicator:(UIImageView*) indicator withCallQuality:(float) quality { + if (quality >= 4 || quality < 0) { + [indicator setImage:[UIImage imageNamed:@"stat_sys_signal_4.png"]]; + } else if (quality >= 3) { + [indicator setImage:[UIImage imageNamed:@"stat_sys_signal_3.png"]]; + } else if (quality >= 2) { + [indicator setImage:[UIImage imageNamed:@"stat_sys_signal_2.png"]]; + } else if (quality >= 1) { + [indicator setImage:[UIImage imageNamed:@"stat_sys_signal_1.png"]]; + } else { + [indicator setImage:[UIImage imageNamed:@"stat_sys_signal_0.png"]]; + } } bool isInConference(LinphoneCall* call) { @@ -105,26 +112,219 @@ int callCount(LinphoneCore* lc) { return count; } --(void) updateUIFromLinphoneState:(UIViewController *)viewCtrl { + + +void addAnimationFadeTransition(UIView* view, float duration) { + CATransition* animation = [CATransition animation]; + animation.type = kCATransitionFromBottom; // kCATransitionFade; + animation.duration = duration; + [view.layer addAnimation:animation forKey:nil]; +} + +-(void) orientationChanged: (NSNotification*) notif { + int oldLinphoneOrientation = linphone_core_get_device_rotation([LinphoneManager getLc]); + UIDeviceOrientation orientation = [UIDevice currentDevice].orientation; + int newRotation = 0; + switch (orientation) { + case UIInterfaceOrientationLandscapeRight: + newRotation = 270; + break; + case UIInterfaceOrientationLandscapeLeft: + newRotation = 90; + break; + default: + newRotation = 0; + } + if (oldLinphoneOrientation != newRotation) { + linphone_core_set_device_rotation([LinphoneManager getLc], newRotation); + linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)videoView); + + LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); + if (call && linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { + //Orientation has changed, must call update call + linphone_core_update_call([LinphoneManager getLc], call, NULL); + + + /* animate button images rotation */ +#define degreesToRadians(x) (M_PI * x / 180.0) + CGAffineTransform transform = CGAffineTransformIdentity; + switch (orientation) { + case UIInterfaceOrientationLandscapeRight: + transform = CGAffineTransformMakeRotation(degreesToRadians(90)); + break; + case UIInterfaceOrientationLandscapeLeft: + transform = CGAffineTransformMakeRotation(degreesToRadians(-90)); + break; + default: + transform = CGAffineTransformIdentity; + break; + } + + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationDuration:0.2f]; + endCtrl.imageView.transform = transform; + mute.imageView.transform = transform; + speaker.imageView.transform = transform; + pause.imageView.transform = transform; + contacts.imageView.transform = transform; + addCall.imageView.transform = transform; + addVideo.imageView.transform = transform; + dialer.imageView.transform = transform; + videoCallQuality.transform = transform; + [UIView commitAnimations]; + } + } +} + +-(void) showControls:(id)sender { + if (hideControlsTimer) { + [hideControlsTimer invalidate]; + hideControlsTimer = nil; + } + // show controls + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:0.3]; + [controlSubView setAlpha:1.0]; + [hangUpView setAlpha:1.0]; + if ([LinphoneManager instance].frontCamId !=nil ) { + // only show camera switch button if we have more than 1 camera + [videoCameraSwitch setAlpha:1.0]; + } + [UIView commitAnimations]; + + // hide controls in 5 sec + hideControlsTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(hideControls:) userInfo:nil repeats:NO]; +} + +-(void) hideControls:(id)sender { + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:0.3]; + [controlSubView setAlpha:0.0]; + [hangUpView setAlpha:0.0]; + [videoCameraSwitch setAlpha:0.0]; + [UIView commitAnimations]; + + hideControlsTimer = nil; +} + +-(void) batteryLevelChanged: (NSNotification*) notif { + LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); + if (!call || !linphone_call_params_video_enabled(linphone_call_get_current_params(call))) + return; + LinphoneCallAppData* appData = (LinphoneCallAppData*) linphone_call_get_user_pointer(call); + if ([UIDevice currentDevice].batteryState == UIDeviceBatteryStateUnplugged) { + float level = [UIDevice currentDevice].batteryLevel; + ms_message("Video call is running. Battery level: %.2f", level); + if (level < 0.1 && !appData->batteryWarningShown) { + // notify user + CallDelegate* cd = [[CallDelegate alloc] init]; + cd.eventType = CD_STOP_VIDEO_ON_LOW_BATTERY; + cd.delegate = self; + cd.call = call; + + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; + } + NSString* title = NSLocalizedString(@"Battery is running low. Stop video ?",nil); + visibleActionSheet = [[UIActionSheet alloc] initWithTitle:title + delegate:cd + cancelButtonTitle:NSLocalizedString(@"Continue video",nil) + destructiveButtonTitle:NSLocalizedString(@"Stop video",nil) + otherButtonTitles:nil]; + + visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault; + [visibleActionSheet showInView:self.view]; + appData->batteryWarningShown = TRUE; + } + } +} + +-(void) enableVideoDisplay { + [self orientationChanged:nil]; + + [videoZoomHandler resetZoom]; + + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:1.0]; + [videoGroup setAlpha:1.0]; + [controlSubView setAlpha:0.0]; + [hangUpView setAlpha:0.0]; + [callTableView setAlpha:0.0]; + [UIView commitAnimations]; + + videoView.alpha = 1.0; + videoView.hidden = FALSE; + + linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)videoView); + linphone_core_set_native_preview_window_id([LinphoneManager getLc],(unsigned long)videoPreview); + + [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; + + // This is a bit hacky: take into account toolbar removal (only once). + // It's probably possible to do this from the Xib file (?) + static bool done = false; + if (!done) { + ms_message("old center: %f %f", videoView.center.x, videoView.center.y); + videoView.center = CGPointMake(videoView.center.x, videoView.center.y + (self.view.frame.size.height - videoView.window.frame.size.height)); + ms_message("new center: %f %f", videoView.center.x, videoView.center.y); + done = true; + } + + [self batteryLevelChanged:nil]; +} + +-(void) disableVideoDisplay { + [UIView beginAnimations:nil context:nil]; + [UIView setAnimationDuration:1.0]; + [videoGroup setAlpha:0.0]; + [controlSubView setAlpha:1.0]; + [hangUpView setAlpha:1.0]; + [callTableView setAlpha:1.0]; + [videoCameraSwitch setAlpha:0.0]; + [UIView commitAnimations]; + + if (hideControlsTimer != nil) { + [hideControlsTimer invalidate]; + hideControlsTimer = nil; + } + + /* restore buttons orientation */ + endCtrl.imageView.transform = CGAffineTransformIdentity; + mute.imageView.transform = CGAffineTransformIdentity; + speaker.imageView.transform = CGAffineTransformIdentity; + pause.imageView.transform = CGAffineTransformIdentity; + contacts.imageView.transform = CGAffineTransformIdentity; + addCall.imageView.transform = CGAffineTransformIdentity; + dialer.imageView.transform = CGAffineTransformIdentity; + videoCallQuality.transform = CGAffineTransformIdentity; + + [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; +} + +/* Update in call view buttons (visibility, state, ...) and call duration text. + This is called periodically. The fullUpdate boolean is set when called after an event (call state change for instance) */ +-(void) updateUIFromLinphoneState:(BOOL) fullUpdate { activeCallCell = nil; - [mute reset]; - - LinphoneCore* lc; - + + // check LinphoneCore is initialized + LinphoneCore* lc = nil; @try { lc = [LinphoneManager getLc]; - - [LinphoneManager set:pause hidden:(callCount([LinphoneManager getLc]) > 1) withName:"PAUSE button" andReason:"call count"]; - [LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:"call count"]; - - [callTableView reloadData]; } @catch (NSException* exc) { return; } - LinphoneCall* selectedCall = linphone_core_get_current_call([LinphoneManager getLc]); + // 1 call: show pause button, otherwise show merge btn + [LinphoneManager set:pause hidden:(callCount(lc) > 1) withName:"PAUSE button" andReason:"call count"]; + [LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:"call count"]; + // reload table (glow update + call duration) + [callTableView reloadData]; + + LinphoneCall* currentCall = linphone_core_get_current_call([LinphoneManager getLc]); int callsCount = linphone_core_get_calls_nb(lc); + // hide pause/resume if in conference - if (selectedCall) { + if (currentCall) { + [mute reset]; if (linphone_core_is_in_conference(lc)) { [LinphoneManager set:pause hidden:YES withName:"PAUSE button" andReason:"is in conference"]; } @@ -134,6 +334,23 @@ int callCount(LinphoneCore* lc) { } else { [LinphoneManager set:pause hidden:YES withName:"PAUSE button" andReason:AT]; } + + if (fullUpdate) { + videoUpdateIndicator.hidden = YES; + LinphoneCallState state = linphone_call_get_state(currentCall); + if (state == LinphoneCallStreamsRunning || state == LinphoneCallUpdated || state == LinphoneCallUpdatedByRemote) { + if (linphone_call_params_video_enabled(linphone_call_get_current_params(currentCall))) { + [addVideo setTitle:NSLocalizedString(@"-video", nil) forState:UIControlStateNormal]; + [IncallViewController updateIndicator: videoCallQuality withCallQuality:linphone_call_get_average_quality(currentCall)]; + } else { + [addVideo setTitle:NSLocalizedString(@"+video", nil) forState:UIControlStateNormal]; + } + [addVideo setEnabled:YES]; + } else { + [addVideo setEnabled:NO]; + [videoCallQuality setImage:nil]; + } + } } else { if (callsCount == 1) { LinphoneCall* c = (LinphoneCall*)linphone_core_get_calls(lc)->data; @@ -145,10 +362,11 @@ int callCount(LinphoneCore* lc) { } else { [LinphoneManager set:pause hidden:YES withName:"PAUSE button" andReason:AT]; } + [addVideo setEnabled:NO]; } [LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:AT]; - // update conference details view if diaplsyed + // update conference details view if displayed if (self.presentedViewController == conferenceDetail) { if (!linphone_core_is_in_conference(lc)) [self dismissModalViewControllerAnimated:YES]; @@ -201,6 +419,15 @@ int callCount(LinphoneCore* lc) { } + UITapGestureRecognizer* singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showControls:)]; + [singleFingerTap setNumberOfTapsRequired:1]; + [videoGroup addGestureRecognizer:singleFingerTap]; + [singleFingerTap release]; + + videoZoomHandler = [[VideoZoomHandler alloc] init]; + [videoZoomHandler setup:videoGroup]; + videoGroup.alpha = 0; + mVideoShown=FALSE; mIncallViewIsReady=FALSE; mVideoIsPending=FALSE; @@ -208,11 +435,90 @@ int callCount(LinphoneCore* lc) { callTableView.rowHeight = 80; + [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryLevelChanged:) name:UIDeviceBatteryLevelDidChangeNotification object:nil]; + + + [videoCameraSwitch setPreview:videoPreview]; + addVideo.videoUpdateIndicator = videoUpdateIndicator; + + [transfer addTarget:self action:@selector(transferPressed) forControlEvents:UIControlEventTouchUpInside]; + + // prevent buttons resizing + /* + endCtrl.imageView.contentMode = UIViewContentModeCenter; + mute.imageView.contentMode = UIViewContentModeCenter; + speaker.imageView.contentMode = UIViewContentModeCenter; + pause.imageView.contentMode = UIViewContentModeCenter; + contacts.imageView.contentMode = UIViewContentModeCenter; + addCall.imageView.contentMode = UIViewContentModeCenter; + dialer.imageView.contentMode = UIViewContentModeCenter;*/ + +} + +-(void) transferPressed { + /* allow only if call is active */ + if (!linphone_core_get_current_call([LinphoneManager getLc])) + return; + + /* build UIActionSheet */ + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; + } + + CallDelegate* cd = [[CallDelegate alloc] init]; + cd.eventType = CD_TRANSFER_CALL; + cd.delegate = self; + cd.call = linphone_core_get_current_call([LinphoneManager getLc]); + NSString* title = NSLocalizedString(@"Transfer to ...",nil); + visibleActionSheet = [[UIActionSheet alloc] initWithTitle:title + delegate:cd + cancelButtonTitle:nil + destructiveButtonTitle:nil // NSLocalizedString(@"Other...",nil) + otherButtonTitles:nil]; + + // add button for each trasnfer-to valid call + const MSList* calls = linphone_core_get_calls([LinphoneManager getLc]); + while (calls) { + LinphoneCall* call = (LinphoneCall*) calls->data; + LinphoneCallAppData* data = ((LinphoneCallAppData*)linphone_call_get_user_pointer(call)); + if (call != cd.call && !linphone_call_get_current_params(call)->in_conference) { + const LinphoneAddress* addr = linphone_call_get_remote_address(call); + NSString* btnTitle = [NSString stringWithFormat : NSLocalizedString(@"%s",nil), (linphone_address_get_display_name(addr) ?linphone_address_get_display_name(addr):linphone_address_get_username(addr))]; + data->transferButtonIndex = [visibleActionSheet addButtonWithTitle:btnTitle]; + } else { + data->transferButtonIndex = -1; + } + calls = calls->next; + } + + if (visibleActionSheet.numberOfButtons == 0) { + [visibleActionSheet release]; + visibleActionSheet = nil; + + [UICallButton enableTransforMode:YES]; + [[LinphoneManager instance] displayDialer]; + } else { + // add 'Other' option + [visibleActionSheet addButtonWithTitle:NSLocalizedString(@"Other...",nil)]; + + // add cancel button on iphone + if (![LinphoneManager runningOnIpad]) { + [visibleActionSheet addButtonWithTitle:NSLocalizedString(@"Cancel",nil)]; + } + + visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault; + if ([LinphoneManager runningOnIpad]) + [visibleActionSheet showFromRect:transfer.bounds inView:transfer animated:NO]; + else + [visibleActionSheet showInView:self.view]; + } } -(void) addCallPressed { [LinphoneManager logUIElementPressed:"CALL button"]; - [self dismissModalViewControllerAnimated:true]; + [[LinphoneManager instance] displayDialer]; } @@ -231,6 +537,9 @@ int callCount(LinphoneCore* lc) { if (linphone_call_get_state(currentCall) == LinphoneCallStreamsRunning) { [pause setSelected:NO]; linphone_core_pause_call(lc, currentCall); + + // hide video view + [self disableVideoDisplay]; } } else { if (linphone_core_get_calls_nb(lc) == 1) { @@ -238,6 +547,11 @@ int callCount(LinphoneCore* lc) { if (linphone_call_get_state(c) == LinphoneCallPaused) { linphone_core_resume_call(lc, c); [pause setSelected:YES]; + + const LinphoneCallParams* p = linphone_call_get_current_params(c); + if (linphone_call_params_video_enabled(p)) { + [self enableVideoDisplay]; + } } } } @@ -245,10 +559,13 @@ int callCount(LinphoneCore* lc) { -(void)updateCallsDurations { - [self updateUIFromLinphoneState: nil]; + [self updateUIFromLinphoneState: NO]; } --(void) viewWillAppear:(BOOL)animated {} +-(void) awakeFromNib +{ + +} -(void)viewDidAppear:(BOOL)animated { [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; @@ -282,17 +599,16 @@ int callCount(LinphoneCore* lc) { if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) { bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"]; - bool startVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"start_video_preference"]; - - [LinphoneManager set:contacts hidden:(enableVideo && !startVideo) withName:"CONTACT button" andReason:AT]; + + [LinphoneManager set:contacts hidden:enableVideo withName:"CONTACT button" andReason:AT]; [LinphoneManager set:addVideo hidden:!contacts.hidden withName:"ADD_VIDEO button" andReason:AT]; } } } -(void) viewWillDisappear:(BOOL)animated { - if (zrtpVerificationSheet != nil) { - [zrtpVerificationSheet dismissWithClickedButtonIndex:2 animated:NO]; + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:NO]; } } @@ -305,6 +621,7 @@ int callCount(LinphoneCore* lc) { } if (!mVideoShown) [[UIApplication sharedApplication] setIdleTimerDisabled:false]; mIncallViewIsReady=FALSE; + dismissed = false; } - (void)viewDidUnload { @@ -319,31 +636,27 @@ int callCount(LinphoneCore* lc) { } -(void) displayPad:(bool) enable { - [LinphoneManager set:callTableView hidden:enable withName:"CALL_TABLE view" andReason:AT]; + if (videoView.hidden) + [LinphoneManager set:callTableView hidden:enable withName:"CALL_TABLE view" andReason:AT]; [LinphoneManager set:hangUpView hidden:enable withName:"HANG_UP view" andReason:AT]; [LinphoneManager set:controlSubView hidden:enable withName:"CONTROL view" andReason:AT]; [LinphoneManager set:padSubView hidden:!enable withName:"PAD view" andReason:AT]; } -(void) displayCall:(LinphoneCall*) call InProgressFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { - //restaure view + //restore view [self displayPad:false]; dismissed = false; UIDevice *device = [UIDevice currentDevice]; device.proximityMonitoringEnabled = YES; if ([speaker isOn]) [speaker toggle]; - [self updateUIFromLinphoneState: nil]; + [self updateUIFromLinphoneState: YES]; } -(void) displayIncomingCall:(LinphoneCall *)call NotificationFromUI:(UIViewController *)viewCtrl forUser:(NSString *)username withDisplayName:(NSString *)displayName { } --(void) dismissVideoView { - [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; - [self dismissModalViewControllerAnimated:FALSE];//just in case - mVideoShown=FALSE; -} -(void) displayInCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { dismissed = false; UIDevice *device = [UIDevice currentDevice]; @@ -351,15 +664,16 @@ int callCount(LinphoneCore* lc) { if (call !=nil && linphone_call_get_dir(call)==LinphoneCallIncoming) { if ([speaker isOn]) [speaker toggle]; } - [self updateUIFromLinphoneState: nil]; - if (self.presentedViewController == (UIViewController*)mVideoViewController) { - [self dismissVideoView]; - } + [self updateUIFromLinphoneState: YES]; + + [self disableVideoDisplay]; } -(void) displayDialerFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { + [self disableVideoDisplay]; UIViewController* modalVC = self.modalViewController; UIDevice *device = [UIDevice currentDevice]; device.proximityMonitoringEnabled = NO; + dismissed = true; if (modalVC != nil) { mVideoIsPending=FALSE; // clear previous native window ids @@ -373,10 +687,37 @@ int callCount(LinphoneCore* lc) { } [self dismissModalViewControllerAnimated:FALSE]; //disable animation to avoid blanc bar just below status bar*/ - dismissed = true; - [self updateUIFromLinphoneState: nil]; + [self updateUIFromLinphoneState: YES]; } + +static void hideSpinner(LinphoneCall* lc, void* user_data); + +-(void) hideSpinnerIndicator: (LinphoneCall*)call { + if (!videoWaitingForFirstImage.hidden) { + videoWaitingForFirstImage.hidden = TRUE; + } /*else { + linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self); + }*/ +} + +static void hideSpinner(LinphoneCall* call, void* user_data) { + IncallViewController* thiz = (IncallViewController*) user_data; + [thiz hideSpinnerIndicator:call]; +} + -(void) displayVideoCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { + + [self enableVideoDisplay]; + + [self updateUIFromLinphoneState: YES]; + videoWaitingForFirstImage.hidden = NO; + [videoWaitingForFirstImage startAnimating]; + + if (call->videostream) { + linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self); + } + return; + if (mIncallViewIsReady) { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; mVideoShown=TRUE; @@ -385,11 +726,51 @@ int callCount(LinphoneCore* lc) { else ms_message("Do not present again videoViewController"); } else { - //postepone presentation + //postpone presentation mVideoIsPending=TRUE; } } +-(void) dismissActionSheet: (id)o { + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; + visibleActionSheet = nil; + } +} + +-(void) displayAskToEnableVideoCall:(LinphoneCall*) call forUser:(NSString*) username withDisplayName:(NSString*) displayName { + if (linphone_core_get_video_policy([LinphoneManager getLc])->automatically_accept) + return; + + // ask the user if he agrees + CallDelegate* cd = [[CallDelegate alloc] init]; + cd.eventType = CD_VIDEO_UPDATE; + cd.delegate = self; + cd.call = call; + + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; + } + NSString* title = [NSString stringWithFormat : NSLocalizedString(@"'%@' would like to enable video",nil), ([displayName length] > 0) ?displayName:username]; + visibleActionSheet = [[UIActionSheet alloc] initWithTitle:title + delegate:cd + cancelButtonTitle:NSLocalizedString(@"Decline",nil) + destructiveButtonTitle:NSLocalizedString(@"Accept",nil) + otherButtonTitles:nil]; + + visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault; + [visibleActionSheet showInView:self.view]; + + /* start cancel timer */ + cd.timeout = [NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(dismissActionSheet:) userInfo:nil repeats:NO]; + [visibleActionSheet release]; +} + +-(void) firstVideoFrameDecoded: (LinphoneCall*) call { + // hide video in progress view indicator + videoWaitingForFirstImage.hidden = TRUE; +} + - (IBAction)doAction:(id)sender { if (sender == dialer) { @@ -497,6 +878,8 @@ int callCount(LinphoneCore* lc) { } const LinphoneAddress* addr = linphone_call_get_remote_address(call); + label.adjustsFontSizeToFitWidth = YES; + if (addr) { const char* lUserNameChars=linphone_address_get_username(addr); NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil); @@ -540,10 +923,27 @@ int callCount(LinphoneCore* lc) { [ms appendFormat:@"%@...", NSLocalizedString(@"Ringing...", nil), nil]; break; case LinphoneCallPausedByRemote: - [ms appendFormat:@"%@...", NSLocalizedString(@"Paused by remote", nil), nil]; + { + switch (linphone_call_get_transfer_state(call)) { + case LinphoneCallOutgoingInit: + case LinphoneCallOutgoingProgress: + [ms appendFormat:@"%@...", NSLocalizedString(@"Transfer in progress", nil), nil]; + break; + case LinphoneCallConnected: + [ms appendFormat:@"%@", NSLocalizedString(@"Transfer successful", nil), nil]; + break; + case LinphoneCallError: + [ms appendFormat:@"%@", NSLocalizedString(@"Transfer failed", nil), nil]; + break; + case LinphoneCallIdle: + default: + [ms appendFormat:@"%@...", NSLocalizedString(@"Paused by remote", nil), nil]; + break; + } break; default: break; + } } } [detailLabel setText:ms]; @@ -605,10 +1005,10 @@ int callCount(LinphoneCore* lc) { cell.accessoryType = UITableViewCellAccessoryNone; } else { LinphoneCall* call = [IncallViewController retrieveCallAtIndex:indexPath.row inConference:NO]; + if (call == nil) + return cell; // return dummy cell LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call)); - if (call == nil) - return nil; - if (cell.accessoryView == nil) { + if (cell.accessoryView == nil) { UIView *containerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 28, 28)] autorelease]; cell.accessoryView = containerView; } @@ -627,21 +1027,7 @@ int callCount(LinphoneCore* lc) { [callquality setFrame:CGRectMake(0, 0, 28, 28)]; if (call->state == LinphoneCallStreamsRunning) { - if (linphone_call_get_average_quality(call) >= 4) { - [callquality setImage: [IncallViewController stat_sys_signal_4]]; - } - else if (linphone_call_get_average_quality(call) >= 3) { - [callquality setImage: [IncallViewController stat_sys_signal_3]]; - } - else if (linphone_call_get_average_quality(call) >= 2) { - [callquality setImage: [IncallViewController stat_sys_signal_2]]; - } - else if (linphone_call_get_average_quality(call) >= 1) { - [callquality setImage: [IncallViewController stat_sys_signal_1]]; - } - else { - [callquality setImage: [IncallViewController stat_sys_signal_0]]; - } + [IncallViewController updateIndicator: callquality withCallQuality:linphone_call_get_average_quality(call)]; } else { [callquality setImage:nil]; @@ -686,33 +1072,94 @@ int callCount(LinphoneCore* lc) { LinphoneCall* call = [IncallViewController retrieveCallAtIndex:path.row inConference:NO]; // start action sheet to validate/unvalidate zrtp code CallDelegate* cd = [[CallDelegate alloc] init]; + cd.eventType = CD_ZRTP; cd.delegate = self; cd.call = call; UIView* container=(UIView*)[callTableView cellForRowAtIndexPath:path].accessoryView; UIButton *button=(UIButton*)[container viewWithTag:SECURE_BUTTON_TAG]; [button setImage:nil forState:UIControlStateNormal]; - zrtpVerificationSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@" Mark auth token '%s' as:",nil),linphone_call_get_authentication_token(call)] + if (visibleActionSheet != nil) { + [visibleActionSheet dismissWithClickedButtonIndex:visibleActionSheet.cancelButtonIndex animated:TRUE]; + } + visibleActionSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@" Mark auth token '%s' as:",nil),linphone_call_get_authentication_token(call)] delegate:cd cancelButtonTitle:NSLocalizedString(@"Unverified",nil) destructiveButtonTitle:NSLocalizedString(@"Verified",nil) otherButtonTitles:nil]; - zrtpVerificationSheet.actionSheetStyle = UIActionSheetStyleDefault; - [zrtpVerificationSheet showInView:self.view]; - [zrtpVerificationSheet release]; + visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault; + [visibleActionSheet showInView:self.view]; + [visibleActionSheet release]; } } --(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void *)datas { +-(void) actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType)type clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void *)datas { LinphoneCall* call = (LinphoneCall*)datas; // maybe we could verify call validity - - if (buttonIndex == 0) - linphone_call_set_authentication_token_verified(call, YES); - else if (buttonIndex == 1) - linphone_call_set_authentication_token_verified(call, NO); - zrtpVerificationSheet = nil; + + switch (type) { + case CD_ZRTP: { + if (buttonIndex == 0) + linphone_call_set_authentication_token_verified(call, YES); + else if (buttonIndex == 1) + linphone_call_set_authentication_token_verified(call, NO); + visibleActionSheet = nil; + break; + } + case CD_VIDEO_UPDATE: { + LinphoneCall* call = (LinphoneCall*)datas; + LinphoneCallParams* paramsCopy = linphone_call_params_copy(linphone_call_get_current_params(call)); + if ([visibleActionSheet destructiveButtonIndex] == buttonIndex) { + // accept video + linphone_call_params_enable_video(paramsCopy, TRUE); + linphone_core_accept_call_update([LinphoneManager getLc], call, paramsCopy); + } else { + // decline video + ms_message("User declined video proposal"); + linphone_core_accept_call_update([LinphoneManager getLc], call, NULL); + } + linphone_call_params_destroy(paramsCopy); + visibleActionSheet = nil; + break; + } + case CD_STOP_VIDEO_ON_LOW_BATTERY: { + LinphoneCall* call = (LinphoneCall*)datas; + LinphoneCallParams* paramsCopy = linphone_call_params_copy(linphone_call_get_current_params(call)); + if ([visibleActionSheet destructiveButtonIndex] == buttonIndex) { + // stop video + linphone_call_params_enable_video(paramsCopy, FALSE); + linphone_core_update_call([LinphoneManager getLc], call, paramsCopy); + } + break; + } + case CD_TRANSFER_CALL: { + LinphoneCall* call = (LinphoneCall*)datas; + // browse existing call and trasnfer to the one matching the btn id + const MSList* calls = linphone_core_get_calls([LinphoneManager getLc]); + while (calls) { + LinphoneCall* call2 = (LinphoneCall*) calls->data; + LinphoneCallAppData* data = ((LinphoneCallAppData*)linphone_call_get_user_pointer(call2)); + if (data->transferButtonIndex == buttonIndex) { + linphone_core_transfer_call_to_another([LinphoneManager getLc], call, call2); + return; + } + data->transferButtonIndex = -1; + calls = calls->next; + } + if (![LinphoneManager runningOnIpad] && buttonIndex == (actionSheet.numberOfButtons - 1)) { + // cancel button + return; + } + // user must jhave pressed 'other...' button as we did not find a call + // with the correct indice + [UICallButton enableTransforMode:YES]; + [[LinphoneManager instance] displayDialer]; + break; + } + default: + ms_error("Unhandled CallDelegate event of type: %d received - ignoring", type); + } } // UITableViewDataSource (required) @@ -779,8 +1226,7 @@ int callCount(LinphoneCore* lc) { linphone_core_resume_call([LinphoneManager getLc], selectedCall); } - [self updateUIFromLinphoneState: nil]; + [self updateUIFromLinphoneState: YES]; } - @end diff --git a/Classes/IncallViewController.xib b/Classes/IncallViewController.xib index 9a8d85d63..81185bcd5 100644 --- a/Classes/IncallViewController.xib +++ b/Classes/IncallViewController.xib @@ -12,11 +12,13 @@ YES - IBUIViewController IBUIButton - IBUIView - IBUITableView + IBUIImageView + IBUIViewController IBProxyObject + IBUIActivityIndicatorView + IBUITableView + IBUIView YES @@ -42,6 +44,119 @@ 274 YES + + + 292 + + YES + + + 292 + {320, 480} + + + + _NS:196 + + 3 + MCAwAA + + IBCocoaTouchFramework + + + + 292 + {{240, 354}, {80, 106}} + + + + + IBCocoaTouchFramework + + + + 292 + {{4, 428}, {28, 28}} + + + + _NS:567 + NO + IBCocoaTouchFramework + + + + 292 + {{141, 212}, {37, 37}} + + + + _NS:1030 + NO + IBCocoaTouchFramework + NO + YES + 0 + + + {320, 460} + + + + _NS:196 + + 2 + MC4wNTQ5MDE5NjA3OCAwLjA4MjM1Mjk0MTE4IDAuMTI5NDExNzY0NwA + + NO + IBCocoaTouchFramework + + + + 292 + {320, 66} + + + + + 1 + MSAwIDAuMDgyMzIwMjU5MDQgMC4xOAA + + NO + NO + 0.0 + IBCocoaTouchFramework + 0 + 0 + Change camera + + 3 + MQA + + + 1 + MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA + + + 3 + MC41AA + + + NSImage + clavier-01-106px.png + + + Helvetica-Bold + Helvetica + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + 274 @@ -50,10 +165,7 @@ _NS:418 - - 3 - MCAwAA - + YES IBCocoaTouchFramework YES @@ -85,37 +197,19 @@ IBCocoaTouchFramework 0 0 - - 3 - MQA - + 1 MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA - - 3 - MC41AA - + NSImage stopcall-red.png - - NSImage - clavier-01-106px.png - - - Helvetica-Bold - Helvetica - 2 - 15 - - - Helvetica-Bold - 15 - 16 - + + + {{0, 393.5}, {320, 77}} @@ -134,7 +228,7 @@ 292 - {{107, 70}, {106, 66}} + {{80, 70}, {80, 66}} @@ -208,10 +302,10 @@ 292 - {{0, 70}, {107, 66}} + {{0, 70}, {80, 66}} - + NO NO @@ -231,10 +325,37 @@ + + + 292 + {{160, 70}, {80, 66}} + + + + + NO + NO + IBCocoaTouchFramework + 0 + 0 + Transfer + + + 1 + MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + + + + + 2 + 15 + + + 292 - {{213, 70}, {107, 66}} + {{240, 70}, {80, 66}} @@ -263,10 +384,10 @@ -2147483356 - {{213, 70}, {107, 66}} + {{240, 70}, {80, 66}} - + NO NO @@ -274,13 +395,18 @@ 0 0 1 - video + video + + 3 + MC42NjY2NjY2NjY3AA + 1 MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA + NSImage clavier-01-160px.png @@ -288,13 +414,26 @@ + + + -2147483356 + {{261.5, 84.5}, {37, 37}} + + + + _NS:1030 + NO + IBCocoaTouchFramework + NO + 0 + 292 {{107, 4}, {106, 66}} - + NO NO @@ -347,12 +486,13 @@ 292 - {{107, 70}, {106, 66}} + {{80, 70}, {80, 66}} - + NO + NO NO IBCocoaTouchFramework 0 @@ -412,7 +552,7 @@ - + @@ -421,10 +561,7 @@ - - 3 - MC42NjY2NjY2NjY3AA - + NO NO IBCocoaTouchFramework @@ -438,7 +575,7 @@ - + @@ -461,7 +598,7 @@ - + @@ -481,7 +618,7 @@ - + @@ -504,7 +641,7 @@ - + @@ -527,7 +664,7 @@ - + @@ -550,7 +687,7 @@ - + @@ -573,7 +710,7 @@ - + @@ -596,7 +733,7 @@ - + @@ -619,7 +756,7 @@ - + @@ -642,7 +779,7 @@ - + @@ -665,7 +802,7 @@ - + @@ -688,7 +825,7 @@ - + {{0, 71}, {320, 310}} @@ -707,7 +844,7 @@ {{0, 20}, {320, 460}} - + NO IBCocoaTouchFramework @@ -726,155 +863,51 @@ YES - view + videoCallQuality - + - 23 + 138 - endCtrl + videoPreview - + - 99 + 130 - star + videoView - + - 56 + 133 - two + videoGroup - + - 59 + 129 - one + addVideo - + - 54 + 125 - four + mergeCalls - + - 67 - - - - hash - - - - 57 - - - - nine - - - - 58 - - - - padSubView - - - - 45 - - - - zero - - - - 55 - - - - seven - - - - 73 - - - - three - - - - 60 - - - - close - - - - 51 - - - - eight - - - - 75 - - - - six - - - - 71 - - - - five - - - - 69 - - - - hangUpView - - - - 122 - - - - callTableView - - - - 109 - - - - controlSubView - - - - 44 + 114 @@ -892,6 +925,14 @@ 112 + + + contacts + + + + 84 + dialer @@ -900,14 +941,6 @@ 49 - - - pause - - - - 115 - speaker @@ -918,27 +951,195 @@ - contacts + pause - + - 84 + 115 - mergeCalls + controlSubView - + - 114 + 44 - addVideo + callTableView - + - 125 + 109 + + + + five + + + + 69 + + + + nine + + + + 58 + + + + seven + + + + 73 + + + + six + + + + 71 + + + + four + + + + 67 + + + + three + + + + 60 + + + + zero + + + + 55 + + + + two + + + + 59 + + + + close + + + + 51 + + + + hash + + + + 57 + + + + eight + + + + 75 + + + + one + + + + 54 + + + + star + + + + 56 + + + + padSubView + + + + 45 + + + + endCtrl + + + + 99 + + + + hangUpView + + + + 122 + + + + view + + + + 23 + + + + videoCameraSwitch + + + + 141 + + + + videoUpdateIndicator + + + + 143 + + + + videoWaitingForFirstImage + + + + 145 + + + + transfer + + + + 150 @@ -1024,23 +1225,113 @@ + + - 120 - + 126 + YES - + + + + + video - 18 - - - end + 137 + + + videocallquality + + + 127 + + + preview + + + 132 + + + display + + + 26 + + + YES + + + + + + + + + + + + + controls + + + 123 + + + video + + + 104 + + + merge + + + 16 + + + mute + + + 111 + + + addcall + + + 15 + + + contacts + + + 17 + + + dialer + + + 13 + + + speaker + + + 113 + + + pauseresume + + + 106 + + 27 @@ -1064,78 +1355,12 @@ pad - - 31 - - - star - - - 30 - - - 1 - - - 33 - - - 8 - - - 40 - - - hash - 36 5 - - 29 - - - close - - - 39 - - - 2 - - - 41 - - - 0 - - - 38 - - - 3 - - - 35 - - - 4 - - - 37 - - - 6 - - - 34 - - - 7 - 32 @@ -1143,74 +1368,109 @@ 9 - 106 - - + 34 + + + 7 - 26 - + 37 + + + 6 + + + 35 + + + 4 + + + 38 + + + 3 + + + 41 + + + 0 + + + 39 + + + 2 + + + 29 + + + close + + + 40 + + + hash + + + 33 + + + 8 + + + 30 + + + 1 + + + 31 + + + star + + + 120 + YES - - - - - - - - + - controls + hangupview - 113 - - - pauseresume + 18 + + + end - 13 - - - speaker + 140 + + + camswitch - 17 - + 142 + - dialer + video_update_indicator - 15 - - - contacts + 144 + + - 111 - + 147 + - addcall - - - 16 - - - mute - - - 104 - - - merge - - - 123 - - - video + transfer @@ -1232,9 +1492,20 @@ 120.IBPluginDependency 123.CustomClassName 123.IBPluginDependency + 123.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 126.IBPluginDependency + 127.IBPluginDependency 13.CustomClassName 13.IBPluginDependency 13.IBUIButtonInspectorSelectedStateConfigurationMetadataKey + 132.IBPluginDependency + 137.IBPluginDependency + 140.CustomClassName + 140.IBPluginDependency + 142.IBPluginDependency + 144.IBPluginDependency + 147.IBPluginDependency + 147.IBUIButtonInspectorSelectedStateConfigurationMetadataKey 15.IBPluginDependency 16.CustomClassName 16.IBPluginDependency @@ -1287,12 +1558,23 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIAddVideoButton + UIToggleVideoButton + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin UISpeakerButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UICamSwitch + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIMuteButton com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -1343,7 +1625,7 @@ - 125 + 150 @@ -1367,9 +1649,7 @@ YES addCall - addToConf addVideo - callControlSubView callTableView close conferenceDetail @@ -1393,16 +1673,22 @@ speaker star three + transfer two + videoCallQuality + videoCameraSwitch + videoGroup + videoPreview + videoUpdateIndicator + videoView videoViewController + videoWaitingForFirstImage zero YES UIButton - UIButton - UIButton - UIView + UIToggleVideoButton UITableView UIButton UIViewController @@ -1427,7 +1713,15 @@ UIButton UIButton UIButton + UIButton + UIImageView + UICamSwitch + UIView + UIView + UIActivityIndicatorView + UIView VideoViewController + UIActivityIndicatorView UIButton @@ -1436,9 +1730,7 @@ YES addCall - addToConf addVideo - callControlSubView callTableView close conferenceDetail @@ -1462,8 +1754,16 @@ speaker star three + transfer two + videoCallQuality + videoCameraSwitch + videoGroup + videoPreview + videoUpdateIndicator + videoView videoViewController + videoWaitingForFirstImage zero @@ -1472,17 +1772,9 @@ addCall UIButton - - addToConf - UIButton - addVideo - UIButton - - - callControlSubView - UIView + UIToggleVideoButton callTableView @@ -1576,14 +1868,46 @@ three UIButton + + transfer + UIButton + two UIButton + + videoCallQuality + UIImageView + + + videoCameraSwitch + UICamSwitch + + + videoGroup + UIView + + + videoPreview + UIView + + + videoUpdateIndicator + UIActivityIndicatorView + + + videoView + UIView + videoViewController VideoViewController + + videoWaitingForFirstImage + UIActivityIndicatorView + zero UIButton @@ -1595,14 +1919,6 @@ ./Classes/IncallViewController.h - - UIAddVideoButton - UIButton - - IBProjectSource - ./Classes/UIAddVideoButton.h - - UICamSwitch UIButton @@ -1662,6 +1978,25 @@ ./Classes/UIToggleButton.h + + UIToggleVideoButton + UIButton + + videoUpdateIndicator + UIActivityIndicatorView + + + videoUpdateIndicator + + videoUpdateIndicator + UIActivityIndicatorView + + + + IBProjectSource + ./Classes/UIToggleVideoButton.h + + VideoViewController UIViewController @@ -1673,27 +2008,21 @@ mCallQualityLandLeft mCallQualityLandRight mCamSwitch - mCamSwitchLand mCamSwitchLandLeft mCamSwitchLandRight mDisplay - mDisplayLand mDisplayLandLeft mDisplayLandRight mHangUp - mHangUpLand mHangUpLandLeft mHangUpLandRight - mLandscape mLandscapeLeft mLandscapeRight mMute - mMuteLand mMuteLandLeft mMuteLandRight mPortrait mPreview - mPreviewLand mPreviewLandLeft mPreviewLandRight @@ -1705,23 +2034,17 @@ UICamSwitch UICamSwitch UICamSwitch - UICamSwitch - UIView UIView UIView UIView UIHangUpButton UIHangUpButton UIHangUpButton - UIHangUpButton - UIView UIView UIView UIMuteButton UIMuteButton UIMuteButton - UIMuteButton - UIView UIView UIView UIView @@ -1736,27 +2059,21 @@ mCallQualityLandLeft mCallQualityLandRight mCamSwitch - mCamSwitchLand mCamSwitchLandLeft mCamSwitchLandRight mDisplay - mDisplayLand mDisplayLandLeft mDisplayLandRight mHangUp - mHangUpLand mHangUpLandLeft mHangUpLandRight - mLandscape mLandscapeLeft mLandscapeRight mMute - mMuteLand mMuteLandLeft mMuteLandRight mPortrait mPreview - mPreviewLand mPreviewLandLeft mPreviewLandRight @@ -1778,10 +2095,6 @@ mCamSwitch UICamSwitch - - mCamSwitchLand - UICamSwitch - mCamSwitchLandLeft UICamSwitch @@ -1794,10 +2107,6 @@ mDisplay UIView - - mDisplayLand - UIView - mDisplayLandLeft UIView @@ -1810,10 +2119,6 @@ mHangUp UIHangUpButton - - mHangUpLand - UIHangUpButton - mHangUpLandLeft UIHangUpButton @@ -1822,10 +2127,6 @@ mHangUpLandRight UIHangUpButton - - mLandscape - UIView - mLandscapeLeft UIView @@ -1838,10 +2139,6 @@ mMute UIMuteButton - - mMuteLand - UIMuteButton - mMuteLandLeft UIMuteButton @@ -1858,10 +2155,6 @@ mPreview UIView - - mPreviewLand - UIView - mPreviewLandLeft UIView diff --git a/Classes/LinphoneAppDelegate.h b/Classes/LinphoneAppDelegate.h index cf01f937c..f5e9508a1 100644 --- a/Classes/LinphoneAppDelegate.h +++ b/Classes/LinphoneAppDelegate.h @@ -44,6 +44,12 @@ CTCallCenter* callCenter; } +- (void) loadDefaultSettings:(NSDictionary *) appDefaults; +-(void) setupUI; +-(void) setupGSMInteraction; + +-(void) startApplication; + @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UITabBarController* myTabBarController; @property (nonatomic, retain) ABPeoplePickerNavigationController* myPeoplePickerController; diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 8cbd45e2c..8162f851d 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -94,6 +94,15 @@ int __aeabi_idiv(int a, int b) { } } - (void)applicationDidBecomeActive:(UIApplication *)application { + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] + && [UIApplication sharedApplication].applicationState == UIApplicationStateBackground + && [[NSUserDefaults standardUserDefaults] boolForKey:@"disable_autoboot_preference"]) { + // autoboot disabled, doing nothing + return; + } else if ([LinphoneManager instance] == nil) { + [self startApplication]; + } + [[LinphoneManager instance] becomeActive]; if (callCenter == nil) { @@ -125,7 +134,7 @@ int __aeabi_idiv(int a, int b) { } } -- (void) loadDefaultSettings { +- (void) loadDefaultSettings:(NSDictionary *) appDefaults { NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"]; if(!settingsBundle) { @@ -136,10 +145,12 @@ int __aeabi_idiv(int a, int b) { NSMutableDictionary *rootSettings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]]; NSMutableDictionary *audioSettings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"audio.plist"]]; NSMutableDictionary *videoSettings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"video.plist"]]; + NSMutableDictionary *advancedSettings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Advanced.plist"]]; NSMutableArray *preferences = [rootSettings objectForKey:@"PreferenceSpecifiers"]; [preferences addObjectsFromArray:[audioSettings objectForKey:@"PreferenceSpecifiers"]]; [preferences addObjectsFromArray:[videoSettings objectForKey:@"PreferenceSpecifiers"]]; + [preferences addObjectsFromArray:[advancedSettings objectForKey:@"PreferenceSpecifiers"]]; NSMutableDictionary *defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]]; @@ -149,33 +160,14 @@ int __aeabi_idiv(int a, int b) { [defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key]; } } - - NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: - @"NO", @"enable_first_login_view_preference", // -#ifdef HAVE_AMR - @"YES",@"amr_8k_preference", // enable amr by default if compiled with -#endif -#ifdef HAVE_G729 - @"YES",@"g729_preference", // enable amr by default if compiled with -#endif - @"NO",@"debugenable_preference", - //@"+33",@"countrycode_preference", - nil]; - [defaultsToRegister addEntriesFromDictionary:appDefaults]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister]; [defaultsToRegister release]; [[NSUserDefaults standardUserDefaults] synchronize]; - } -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ - - /* - *Custumization - */ - [self loadDefaultSettings]; - //as defined in PhoneMainView.xib +-(void) setupUI { + //as defined in PhoneMainView.xib //dialer myPhoneViewController = (PhoneViewController*) [myTabBarController.viewControllers objectAtIndex: DIALER_TAB_INDEX]; myPhoneViewController.myTabBarController = myTabBarController; @@ -217,18 +209,57 @@ int __aeabi_idiv(int a, int b) { [window makeKeyAndVisible]; [[LinphoneManager instance] setCallDelegate:myPhoneViewController]; - [[LinphoneManager instance] startLibLinphone]; - - [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound]; + + [UIDevice currentDevice].batteryMonitoringEnabled = YES; +} +-(void) setupGSMInteraction { callCenter = [[CTCallCenter alloc] init]; callCenter.callEventHandler = ^(CTCall* call) { // post on main thread [self performSelectorOnMainThread:@selector(handleGSMCallInteration:) withObject:callCenter waitUntilDone:YES]; - }; - return YES; + }; +} + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ + NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: + @"NO", @"enable_first_login_view_preference", // +#ifdef HAVE_AMR + @"YES",@"amr_8k_preference", // enable amr by default if compiled with +#endif +#ifdef HAVE_G729 + @"YES",@"g729_preference", // enable amr by default if compiled with +#endif + //@"+33",@"countrycode_preference", + nil]; + + [self loadDefaultSettings: appDefaults]; + + if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] + && [UIApplication sharedApplication].applicationState == UIApplicationStateBackground + && [[NSUserDefaults standardUserDefaults] boolForKey:@"disable_autoboot_preference"]) { + // autoboot disabled, doing nothing + } else { + [self startApplication]; + } + + return YES; +} + +-(void) startApplication { + /* explicitely instanciate LinphoneManager */ + LinphoneManager* lm = [[LinphoneManager alloc] init]; + assert(lm == [LinphoneManager instance]); + + [self setupUI]; + + [[LinphoneManager instance] startLibLinphone]; + + [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound]; + + [self setupGSMInteraction]; } diff --git a/Classes/LinphoneUI/LinphoneManager.h b/Classes/LinphoneUI/LinphoneManager.h index 046835fe2..ac60009c1 100644 --- a/Classes/LinphoneUI/LinphoneManager.h +++ b/Classes/LinphoneUI/LinphoneManager.h @@ -23,6 +23,7 @@ #include "linphonecore.h" #import "LogView.h" #import "LinphoneUIDelegates.h" + typedef enum _Connectivity { wifi, wwan @@ -43,10 +44,22 @@ typedef struct _CallContext { bool_t cameraIsEnabled; } CallContext; +struct NetworkReachabilityContext { + bool_t testWifi, testWWan; + void (*networkStateChanged) (Connectivity newConnectivity); +}; + +typedef struct _LinphoneCallAppData { + bool_t batteryWarningShown; + // transfer data + int transferButtonIndex; +} LinphoneCallAppData; + + @interface LinphoneManager : NSObject { -@private - SCNetworkReachabilityContext proxyReachabilityContext; +@protected SCNetworkReachabilityRef proxyReachability; +@private NSTimer* mIterateTimer; id mLogView; bool isbackgroundModeEnabled; @@ -69,6 +82,8 @@ typedef struct _CallContext { +(void) set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason; +(void) logUIElementPressed:(const char*) name; +-(void) displayDialer; + -(void) registerLogView:(id) view; -(void) startLibLinphone; @@ -82,6 +97,7 @@ typedef struct _CallContext { -(UIImage*) getImageFromAddressBook:(NSString*) number; -(BOOL) reconfigureLinphoneIfNeeded:(NSDictionary *)oldSettings; +-(void) setupNetworkReachabilityCallback: (const char*) nodeName withContext:(SCNetworkReachabilityContext*) ctx; @property (nonatomic, retain) id callDelegate; @property (nonatomic, retain) id registrationDelegate; @@ -92,4 +108,3 @@ typedef struct _CallContext { @end - diff --git a/Classes/LinphoneUI/LinphoneManager.m b/Classes/LinphoneUI/LinphoneManager.m index 75a643344..20ff09784 100644 --- a/Classes/LinphoneUI/LinphoneManager.m +++ b/Classes/LinphoneUI/LinphoneManager.m @@ -62,30 +62,18 @@ extern void libmsbcg729_init(); @synthesize backCamId; -(id) init { + assert (!theLinphoneManager); if ((self= [super init])) { mFastAddressBook = [[FastAddressBook alloc] init]; tunnelMode = off; + theLinphoneManager = self; } return self; } +(LinphoneManager*) instance { - if (theLinphoneManager==nil) { - theLinphoneManager = [[LinphoneManager alloc] init]; - } return theLinphoneManager; } --(NSString*) appendCountryCodeIfPossible:(NSString*) number { - if (![number hasPrefix:@"+"] && ![number hasPrefix:@"00"]) { - NSString* lCountryCode = [[NSUserDefaults standardUserDefaults] stringForKey:@"countrycode_preference"]; - if (lCountryCode && [lCountryCode length]>0) { - //append country code - return [lCountryCode stringByAppendingString:number]; - } - } - return number; -} - -(NSString*) getDisplayNameFromAddressBook:(NSString*) number andUpdateCallLog:(LinphoneCallLog*)log { //1 normalize NSString* lNormalizedNumber = [FastAddressBook normalizePhoneNumber:number]; @@ -156,6 +144,7 @@ extern void libmsbcg729_init(); [lE164Number release]; return; } + -(void) onCall:(LinphoneCall*) call StateChanged: (LinphoneCallState) new_state withMessage: (const char *) message { const char* lUserNameChars=linphone_address_get_username(linphone_call_get_remote_address(call)); NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil); @@ -167,17 +156,13 @@ extern void libmsbcg729_init(); bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL); - switch (new_state) { - - case LinphoneCallStreamsRunning: - //check video - if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { - [callDelegate displayVideoCall:call FromUI:mCurrentViewController - forUser:lUserName - withDisplayName:lDisplayName]; - } - break; - + if (!linphone_call_get_user_pointer(call)) { + LinphoneCallAppData* data = (LinphoneCallAppData*) malloc(sizeof(LinphoneCallAppData)); + data->batteryWarningShown = FALSE; + linphone_call_set_user_pointer(call, data); + } + + switch (new_state) { case LinphoneCallIncomingReceived: [callDelegate displayIncomingCall:call NotificationFromUI:mCurrentViewController @@ -191,14 +176,38 @@ extern void libmsbcg729_init(); forUser:lUserName withDisplayName:lDisplayName]; break; - + case LinphoneCallPausedByRemote: case LinphoneCallConnected: [callDelegate displayInCall: call FromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; break; - + case LinphoneCallUpdatedByRemote: + { + const LinphoneCallParams* current = linphone_call_get_current_params(call); + const LinphoneCallParams* remote = linphone_call_get_remote_params(call); + + /* remote wants to add video */ + if (!linphone_call_params_video_enabled(current) && linphone_call_params_video_enabled(remote) && !linphone_core_get_video_policy(theLinphoneCore)->automatically_accept) { + linphone_core_defer_call_update(theLinphoneCore, call); + [callDelegate displayAskToEnableVideoCall:call forUser:lUserName withDisplayName:lDisplayName]; + } else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) { + [callDelegate displayInCall:call FromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; + } + break; + } + case LinphoneCallUpdated: + { + const LinphoneCallParams* current = linphone_call_get_current_params(call); + if (linphone_call_params_video_enabled(current)) { + [callDelegate displayVideoCall:call FromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; + } else { + [callDelegate displayInCall:call FromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; + } + break; + + } case LinphoneCallError: { /* NSString* lTitle= state->message!=nil?[NSString stringWithCString:state->message length:strlen(state->message)]: @"Error"; @@ -255,12 +264,31 @@ extern void libmsbcg729_init(); withDisplayName:lDisplayName]; } break; - default: + case LinphoneCallStreamsRunning: + //check video + if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { + [callDelegate displayVideoCall:call FromUI:mCurrentViewController + forUser:lUserName + withDisplayName:lDisplayName]; + } else { + [callDelegate displayInCall:call FromUI:mCurrentViewController forUser:lUserName withDisplayName:lDisplayName]; + } break; + case LinphoneCallReleased: + free (linphone_call_get_user_pointer(call)); + break; + default: + break; } } +-(void) displayDialer { + [callDelegate displayDialerFromUI:mCurrentViewController + forUser:@"" + withDisplayName:@""]; +} + +(LinphoneCore*) getLc { if (theLinphoneCore==nil) { @throw([NSException exceptionWithName:@"LinphoneCoreException" reason:@"Linphone core not initialized yet" userInfo:nil]); @@ -315,13 +343,18 @@ static void linphone_iphone_call_state(LinphoneCore *lc, LinphoneCall* call, Lin LinphoneCallPausedByRemote */ [(LinphoneManager*)linphone_core_get_user_data(lc) onCall:call StateChanged: state withMessage: message]; - - - +} + +static void linphone_iphone_transfer_state_changed(LinphoneCore* lc, LinphoneCall* call, LinphoneCallState state) { + /* + LinhoneCallOutgoingProgress -> SalReferTrying + LinphoneCallConnected -> SalReferSuccess + LinphoneCallError -> SalReferFailed | * + */ } -(void) onRegister:(LinphoneCore *)lc cfg:(LinphoneProxyConfig*) cfg state:(LinphoneRegistrationState) state message:(const char*) message { - NSLog(@"NEW REGISTRATION STATE: '%s' (message: '%s')", linphone_registration_state_to_string(state), message); + ms_warning("NEW REGISTRATION STATE: '%s' (message: '%s')", linphone_registration_state_to_string(state), message); LinphoneAddress* lAddress = linphone_address_new(linphone_proxy_config_get_identity(cfg)); NSString* lUserName = linphone_address_get_username(lAddress)? [[NSString alloc] initWithUTF8String:linphone_address_get_username(lAddress) ]:@""; @@ -383,6 +416,23 @@ static void linphone_iphone_registration_state(LinphoneCore *lc, LinphoneProxyCo [(LinphoneManager*)linphone_core_get_user_data(lc) onRegister:lc cfg:cfg state:state message:message]; } + +static LinphoneCoreVTable linphonec_vtable = { + .show =NULL, + .call_state_changed =(LinphoneCallStateCb)linphone_iphone_call_state, + .registration_state_changed = linphone_iphone_registration_state, + .notify_recv = NULL, + .new_subscription_request = NULL, + .auth_info_requested = NULL, + .display_status = linphone_iphone_display_status, + .display_message=linphone_iphone_log, + .display_warning=linphone_iphone_log, + .display_url=NULL, + .text_received=NULL, + .dtmf_received=NULL, + .transfer_state_changed=linphone_iphone_transfer_state_changed +}; + static LinphoneCoreVTable linphonec_vtable; -(void) configurePayloadType:(const char*) type fromPrefKey: (NSString*)key withRate:(int)rate { @@ -406,17 +456,23 @@ static LinphoneCoreVTable linphonec_vtable; CFWriteStreamClose (writeStream); } -void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void * info) { +void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void* nilCtx) { ms_message("Network connection flag [%x]",flags); - LinphoneManager* lLinphoneMgr = (LinphoneManager*)info; + LinphoneManager* lLinphoneMgr = [LinphoneManager instance]; if ([LinphoneManager getLc] != nil) { + struct NetworkReachabilityContext* ctx = nilCtx ? ((struct NetworkReachabilityContext*)nilCtx) : 0; if ((flags == 0) | (flags & (kSCNetworkReachabilityFlagsConnectionRequired |kSCNetworkReachabilityFlagsConnectionOnTraffic))) { [[LinphoneManager instance] kickOffNetworkConnection]; linphone_core_set_network_reachable([LinphoneManager getLc],false); - ((LinphoneManager*)info).connectivity = none; + lLinphoneMgr.connectivity = none; } else { LinphoneTunnel *tunnel=linphone_core_get_tunnel([LinphoneManager getLc]); - Connectivity newConnectivity = flags & kSCNetworkReachabilityFlagsIsWWAN ? wwan:wifi; + Connectivity newConnectivity; + if (!ctx || ctx->testWWan) + newConnectivity = flags & kSCNetworkReachabilityFlagsIsWWAN ? wwan:wifi; + else + newConnectivity = wifi; + if (lLinphoneMgr.connectivity == none) { linphone_core_set_network_reachable([LinphoneManager getLc],true); } else if (lLinphoneMgr.connectivity != newConnectivity) { @@ -442,13 +498,15 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach ms_message("new network connectivity of type [%s]",(newConnectivity==wifi?"wifi":"wwan")); } - + if (ctx && ctx->networkStateChanged) { + (*ctx->networkStateChanged)(lLinphoneMgr.connectivity); + } } } -(BOOL) reconfigureLinphoneIfNeeded:(NSDictionary *)settings { if (theLinphoneCore==nil) { - ms_warning("cannot configure linphone beacause not initialized yet"); + ms_warning("cannot configure linphone because not initialized yet"); return NO; } @@ -518,7 +576,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach transportValue.tcp_port=0; transportValue.udp_port=0; } else { - ms_error("unexpected trasnport [%s]",[transport cStringUsingEncoding:[NSString defaultCStringEncoding]]); + ms_error("unexpected transport [%s]",[transport cStringUsingEncoding:[NSString defaultCStringEncoding]]); } if (linphone_core_set_sip_transports(theLinphoneCore, &transportValue)) { ms_error("cannot set transport"); @@ -702,7 +760,21 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach } bool enableSrtp = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_srtp_preference"]; linphone_core_set_media_encryption(theLinphoneCore, enableSrtp?LinphoneMediaEncryptionSRTP:LinphoneMediaEncryptionZRTP); + + NSString* stun_server = [[NSUserDefaults standardUserDefaults] stringForKey:@"stun_preference"]; + if ([stun_server length]>0){ + linphone_core_set_stun_server(theLinphoneCore,[stun_server cStringUsingEncoding:[NSString defaultCStringEncoding]]); + linphone_core_set_firewall_policy(theLinphoneCore, LinphonePolicyUseStun); + }else{ + linphone_core_set_stun_server(theLinphoneCore, NULL); + linphone_core_set_firewall_policy(theLinphoneCore, LinphonePolicyNoFirewall); + } + LinphoneVideoPolicy policy; + policy.automatically_accept = [[NSUserDefaults standardUserDefaults] boolForKey:@"start_video_preference"];; + policy.automatically_initiate = [[NSUserDefaults standardUserDefaults] boolForKey:@"start_video_preference"]; + linphone_core_set_video_policy(theLinphoneCore, &policy); + UIDevice* device = [UIDevice currentDevice]; bool backgroundSupported = false; if ([device respondsToSelector:@selector(isMultitaskingSupported)]) @@ -750,7 +822,8 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach linphone_core_destroy(theLinphoneCore); theLinphoneCore = nil; SCNetworkReachabilityUnscheduleFromRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); - CFRelease(proxyReachability); + if (proxyReachability) + CFRelease(proxyReachability); proxyReachability=nil; } } @@ -803,7 +876,6 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach [self destroyLibLinphone]; return NO; } - } @@ -813,6 +885,32 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach } + +-(void) setupNetworkReachabilityCallback: (const char*) nodeName withContext:(SCNetworkReachabilityContext*) ctx { + if (proxyReachability) { + ms_message("Cancel old network reachability check"); + SCNetworkReachabilityUnscheduleFromRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode); + CFRelease(proxyReachability); + proxyReachability = nil; + } + + proxyReachability = SCNetworkReachabilityCreateWithName(nil, nodeName); + + //initial state is network off should be done as soon as possible + SCNetworkReachabilityFlags flags; + if (!SCNetworkReachabilityGetFlags(proxyReachability, &flags)) { + ms_error("Cannot get reachability flags"); + }; + networkReachabilityCallBack(proxyReachability, flags, ctx ? ctx->info : 0); + + if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){ + ms_error("Cannot register reachability cb"); + }; + if(!SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)){ + ms_error("Cannot register schedule reachability cb"); + }; +} + /************* *lib linphone init method */ @@ -878,22 +976,8 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach linphone_core_set_zrtp_secrets_file(theLinphoneCore, [zrtpSecretsFileName cStringUsingEncoding:[NSString defaultCStringEncoding]]); - proxyReachability=SCNetworkReachabilityCreateWithName(nil, "linphone.org"); - proxyReachabilityContext.info=self; - //initial state is network off should be done as soon as possible - SCNetworkReachabilityFlags flags; - if (!SCNetworkReachabilityGetFlags(proxyReachability, &flags)) { - ms_error("Cannot get reachability flags"); - }; - networkReachabilityCallBack(proxyReachability,flags,self); + [self setupNetworkReachabilityCallback: "linphone.org" withContext:nil]; - if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack,&proxyReachabilityContext)){ - ms_error("Cannot register reachability cb"); - }; - if(!SCNetworkReachabilityScheduleWithRunLoop(proxyReachability, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode)){ - ms_error("Cannot register schedule reachability cb"); - }; - [self reconfigureLinphoneIfNeeded:nil]; // start scheduler @@ -986,13 +1070,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach -(void) endInterruption { ms_message("Sound interruption ended!"); - const MSList* c = linphone_core_get_calls(theLinphoneCore); - - if (c) { - ms_message("Auto resuming call"); - linphone_core_resume_call(theLinphoneCore, (LinphoneCall*) c->data); - } - + //let the user resume the call manually. } +(BOOL) runningOnIpad { #ifdef UI_USER_INTERFACE_IDIOM diff --git a/Classes/LinphoneUI/LinphoneUIDelegates.h b/Classes/LinphoneUI/LinphoneUIDelegates.h index 1f2938cfe..4d6b0477d 100644 --- a/Classes/LinphoneUI/LinphoneUIDelegates.h +++ b/Classes/LinphoneUI/LinphoneUIDelegates.h @@ -28,6 +28,8 @@ -(void) displayVideoCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName; //status reporting -(void) displayStatus:(NSString*) message; +-(void) displayAskToEnableVideoCall:(LinphoneCall*) call forUser:(NSString*) username withDisplayName:(NSString*) displayName; +-(void) firstVideoFrameDecoded:(LinphoneCall*) call; @end diff --git a/Classes/LinphoneUI/UICallButton.h b/Classes/LinphoneUI/UICallButton.h index f5dc0db54..5fc1547fb 100644 --- a/Classes/LinphoneUI/UICallButton.h +++ b/Classes/LinphoneUI/UICallButton.h @@ -22,7 +22,11 @@ @interface UICallButton : UIButton { @private - UITextField* mAddress; + UITextField* mAddress; } -(void) initWithAddress:(UITextField*) address; + ++(void) enableTransforMode:(BOOL) enable; ++(BOOL) transforModeEnabled; + @end diff --git a/Classes/LinphoneUI/UICallButton.m b/Classes/LinphoneUI/UICallButton.m index 9b1fbf68d..6957344e5 100644 --- a/Classes/LinphoneUI/UICallButton.m +++ b/Classes/LinphoneUI/UICallButton.m @@ -23,6 +23,17 @@ @implementation UICallButton + +static BOOL transferMode = NO; + ++(void) enableTransforMode:(BOOL) enable { + transferMode = enable; +} + ++(BOOL) transforModeEnabled { + return transferMode; +} + -(void) touchUp:(id) sender { if (!linphone_core_is_network_reachabled([LinphoneManager getLc])) { UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Network Error",nil) @@ -54,13 +65,16 @@ LinphoneProxyConfig* proxyCfg; //get default proxy linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg); - bool startVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"start_video_preference"]; LinphoneCallParams* lcallParams = linphone_core_create_default_call_parameters([LinphoneManager getLc]); - linphone_call_params_enable_video(lcallParams,startVideo&linphone_core_video_enabled([LinphoneManager getLc])); if ([mAddress.text length] == 0) return; //just return if ([mAddress.text hasPrefix:@"sip:"]) { - linphone_core_invite_with_params([LinphoneManager getLc],[mAddress.text cStringUsingEncoding:[NSString defaultCStringEncoding]],lcallParams); + if (transferMode) { + linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), [mAddress.text cStringUsingEncoding:[NSString defaultCStringEncoding]]); + } else { + linphone_core_invite_with_params([LinphoneManager getLc],[mAddress.text cStringUsingEncoding:[NSString defaultCStringEncoding]],lcallParams); + } + [UICallButton enableTransforMode:NO]; } else if ( proxyCfg==nil){ UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid sip address",nil) message:NSLocalizedString(@"Either configure a SIP proxy server from settings prior to place a call or use a valid sip address (I.E sip:john@example.net)",nil) @@ -80,12 +94,16 @@ linphone_address_set_display_name(tmpAddress,(lDisplayName)?[lDisplayName cStringUsingEncoding:[NSString defaultCStringEncoding]]:nil); - - linphone_core_invite_address_with_params([LinphoneManager getLc],tmpAddress,lcallParams) ; + if (transferMode) { + linphone_core_transfer_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), normalizedUserName); + } else { + linphone_core_invite_address_with_params([LinphoneManager getLc],tmpAddress,lcallParams) ; + } linphone_address_destroy(tmpAddress); } linphone_call_params_destroy(lcallParams); + [UICallButton enableTransforMode:NO]; } else if (linphone_core_inc_invite_pending([LinphoneManager getLc])) { linphone_core_accept_call([LinphoneManager getLc],linphone_core_get_current_call([LinphoneManager getLc])); } @@ -102,6 +120,7 @@ */ -(void) initWithAddress:(UITextField*) address{ mAddress=[address retain]; + transferMode = NO; [self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside]; } diff --git a/Classes/LinphoneUI/UICamSwitch.m b/Classes/LinphoneUI/UICamSwitch.m index 45c208c4d..aa0f5e51d 100644 --- a/Classes/LinphoneUI/UICamSwitch.m +++ b/Classes/LinphoneUI/UICamSwitch.m @@ -25,7 +25,7 @@ @synthesize preview; -(void) touchUp:(id) sender { if (nextCamId!=currentCamId) { - ms_message("Swithcing from [%s] to [%s]",currentCamId,nextCamId); + ms_message("Switching from [%s] to [%s]",currentCamId,nextCamId); linphone_core_set_video_device([LinphoneManager getLc], nextCamId); nextCamId=currentCamId; currentCamId = linphone_core_get_video_device([LinphoneManager getLc]); diff --git a/Classes/LinphoneUI/UIAddVideoButton.h b/Classes/LinphoneUI/UIToggleVideoButton.h similarity index 84% rename from Classes/LinphoneUI/UIAddVideoButton.h rename to Classes/LinphoneUI/UIToggleVideoButton.h index 275de0672..37a712ddd 100644 --- a/Classes/LinphoneUI/UIAddVideoButton.h +++ b/Classes/LinphoneUI/UIToggleVideoButton.h @@ -1,4 +1,4 @@ -/* UIAddVideoButton.h +/* UIToggleVideoButton.h * * Copyright (C) 2011 Belledonne Comunications, Grenoble, France * @@ -19,6 +19,12 @@ #import -@interface UIAddVideoButton : UIButton +@interface UIToggleVideoButton : UIButton { + UIActivityIndicatorView* videoUpdateIndicator; +} + - (id)initWithCoder:(NSCoder *)decoder; + +@property (nonatomic, retain) IBOutlet UIActivityIndicatorView* videoUpdateIndicator; + @end diff --git a/Classes/LinphoneUI/UIAddVideoButton.m b/Classes/LinphoneUI/UIToggleVideoButton.m similarity index 72% rename from Classes/LinphoneUI/UIAddVideoButton.m rename to Classes/LinphoneUI/UIToggleVideoButton.m index e34cdfb8f..1c96079a3 100644 --- a/Classes/LinphoneUI/UIAddVideoButton.m +++ b/Classes/LinphoneUI/UIToggleVideoButton.m @@ -1,4 +1,4 @@ -/* UIAddVideoButton.m +/* UIToggleVideoButton.m * * Copyright (C) 2011 Belledonne Comunications, Grenoble, France * @@ -17,21 +17,37 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#import "UIAddVideoButton.h" +#import "UIToggleVideoButton.h" #include "LinphoneManager.h" -@implementation UIAddVideoButton +@implementation UIToggleVideoButton + +@synthesize videoUpdateIndicator; -(void) touchUp:(id) sender { LinphoneCore* lc = [LinphoneManager getLc]; + + if (!linphone_core_video_enabled(lc)) + return; + + [videoUpdateIndicator startAnimating]; + videoUpdateIndicator.hidden = NO; + self.enabled = NO; + LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); if (call) { LinphoneCallParams* call_params = linphone_call_params_copy(linphone_call_get_current_params(call)); - linphone_call_params_enable_video(call_params, TRUE); + if (linphone_call_params_video_enabled(call_params)) { + ms_message("Disabling video"); + linphone_call_params_enable_video(call_params, FALSE); + } else { + ms_message("Enabling video"); + linphone_call_params_enable_video(call_params, TRUE); + } linphone_core_update_call(lc, call, call_params); linphone_call_params_destroy(call_params); - } { - ms_warning("Cannot add video, because no current call"); + } else { + ms_warning("Cannot toggle video, because no current call"); } } diff --git a/Classes/LinphoneUI/VideoZoomHandler.h b/Classes/LinphoneUI/VideoZoomHandler.h new file mode 100644 index 000000000..6065d2453 --- /dev/null +++ b/Classes/LinphoneUI/VideoZoomHandler.h @@ -0,0 +1,18 @@ +// +// VideoZoomHandler.h +// linphone +// +// Created by Pierre-Eric Pelloux-Prayer on 25/04/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +@interface VideoZoomHandler : NSObject { + float zoomLevel, cx, cy; + UIView* videoView; +} +-(void) setup: (UIView*) videoView; +-(void) resetZoom; + +@end diff --git a/Classes/LinphoneUI/VideoZoomHandler.m b/Classes/LinphoneUI/VideoZoomHandler.m new file mode 100644 index 000000000..fb238fc69 --- /dev/null +++ b/Classes/LinphoneUI/VideoZoomHandler.m @@ -0,0 +1,101 @@ +// +// VideoZoomHandler.m +// linphone +// +// Created by Pierre-Eric Pelloux-Prayer on 25/04/12. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import "VideoZoomHandler.h" +#include "linphonecore.h" +#import "LinphoneManager.h" + +@implementation VideoZoomHandler + + +-(void) zoomInOut:(UITapGestureRecognizer*) reco { + if (zoomLevel != 1) + zoomLevel = 1; + else + zoomLevel = 2; + + if (zoomLevel != 1) { + CGPoint point = [reco locationInView:videoView]; + cx = point.x / videoView.frame.size.width; + cy = 1 - point.y / videoView.frame.size.height; + } else { + cx = cy = 0.5; + } + linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, cx, cy); +} + +-(void) videoPan:(UIPanGestureRecognizer*) reco { + if (zoomLevel <= 1.0) + return; + + float x,y; + CGPoint translation = [reco translationInView:videoView]; + if ([reco state] == UIGestureRecognizerStateEnded) { + cx -= translation.x / videoView.frame.size.width; + cy += translation.y / videoView.frame.size.height; + x = cx; + y = cy; + } else if ([reco state] == UIGestureRecognizerStateChanged) { + x = cx - translation.x / videoView.frame.size.width; + y = cy + translation.y / videoView.frame.size.height; + } else { + return; + } + + linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, x, y); +} + +-(void) pinch:(UIPinchGestureRecognizer*) reco { + float s = zoomLevel; + // CGPoint point = [reco locationInView:videoGroup]; + // float ccx = cx + (point.x / videoGroup.frame.size.width - 0.5) / s; + // float ccy = cy - (point.y / videoGroup.frame.size.height - 0.5) / s; + if ([reco state] == UIGestureRecognizerStateEnded) { + zoomLevel = MAX(MIN(zoomLevel * reco.scale, 3.0), 1.0); + s = zoomLevel; + // cx = ccx; + // cy = ccy; + } else if ([reco state] == UIGestureRecognizerStateChanged) { + s = zoomLevel * reco.scale; + s = MAX(MIN(s, 3.0), 1.0); + } else if ([reco state] == UIGestureRecognizerStateBegan) { + + } else { + return; + } + + + linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), s, cx, cy); +} + +-(void) resetZoom { + zoomLevel = 1; + cx = cy = 0.5; +} + + +-(void) setup: (UIView*) view { + videoView = view; + + UITapGestureRecognizer* doubleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(zoomInOut:)]; + [doubleFingerTap setNumberOfTapsRequired:2]; + [doubleFingerTap setNumberOfTouchesRequired:1]; + [videoView addGestureRecognizer:doubleFingerTap]; + + UIPanGestureRecognizer* pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(videoPan:)]; + [videoView addGestureRecognizer:pan]; + UIPinchGestureRecognizer* pinchReco = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)]; + [videoView addGestureRecognizer:pinchReco]; + + [doubleFingerTap release]; + [pan release]; + [pinchReco release]; + + [self resetZoom]; +} +@end diff --git a/Classes/MainScreenWithVideoPreview.m b/Classes/MainScreenWithVideoPreview.m index a9629a990..2947b85d0 100644 --- a/Classes/MainScreenWithVideoPreview.m +++ b/Classes/MainScreenWithVideoPreview.m @@ -18,6 +18,7 @@ */ #import "MainScreenWithVideoPreview.h" #import +#import "LinphoneUI/LinphoneManager.h" @implementation MainScreenWithVideoPreview @synthesize window; @@ -71,12 +72,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - - bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"]; - - if (enableVideo) { - [self initVideoPreview ]; - } + [phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside]; } -(void) switchCameraPressed { @@ -93,6 +89,10 @@ NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init]; NSArray* array = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; + if ( [array count] == 0) { + ms_warning("No camera available (running on simulator ?"); + return; + } currentCamera = camIndex % [array count]; AVCaptureDevice* device = (AVCaptureDevice*) [array objectAtIndex:currentCamera]; input = [[AVCaptureDeviceInput deviceInputWithDevice:device @@ -106,33 +106,51 @@ [session startRunning]; } +-(void) stopPreview:(id) a { + @synchronized (self) { + if (!session.running) + return; + [self.view removeFromSuperview]; + [session stopRunning]; + } +} + +-(void) startPreview:(id) a { + @synchronized (self) { + if (session.running) + return; + [window addSubview:self.view]; + [window sendSubviewToBack:self.view]; + [session startRunning]; + } +} + -(void) showPreview:(BOOL) show { bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"]; if (enableVideo) { + LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); + if (show && call && linphone_call_params_video_enabled(linphone_call_get_current_params(call))) { + return; + } + if (session == nil) { [self initVideoPreview]; } if (show && !session.running) { - [window addSubview:self.view]; - [window sendSubviewToBack:self.view]; - [session startRunning]; + [self performSelectorInBackground:@selector(startPreview:) withObject:nil]; } else if (!show && session.running) { - [self.view removeFromSuperview]; - [session stopRunning]; + [self performSelectorInBackground:@selector(stopPreview:) withObject:nil]; } } else { - if (session != nil) - [session stopRunning]; - [self.view removeFromSuperview]; + [self stopPreview:nil]; } } -(void) viewDidAppear:(BOOL)animated { - [phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside]; - + [super viewDidAppear:animated]; } -(void) viewDidDisappear:(BOOL)animated { diff --git a/Classes/PhoneViewController-ipad.xib b/Classes/PhoneViewController-ipad.xib index 824edbf14..fc15c4af0 100644 --- a/Classes/PhoneViewController-ipad.xib +++ b/Classes/PhoneViewController-ipad.xib @@ -163,7 +163,6 @@ IBIPadFramework 0 0 - 1 Back diff --git a/Classes/PhoneViewController.m b/Classes/PhoneViewController.m index cb803e988..9d1f45a12 100644 --- a/Classes/PhoneViewController.m +++ b/Classes/PhoneViewController.m @@ -77,7 +77,7 @@ if (config == NULL) { s = LinphoneRegistrationNone; - m = @"No SIP account configured"; + m = linphone_core_is_network_reachabled([LinphoneManager getLc]) ? NSLocalizedString(@"No SIP account configured", nil) : NSLocalizedString(@"Network down", nil); } else { s = linphone_proxy_config_get_state(config); @@ -103,9 +103,12 @@ bool zeroCall = (linphone_core_get_calls_nb([LinphoneManager getLc]) == 0); [LinphoneManager set:callLarge hidden:!zeroCall withName:"CALL_LARGE button" andReason:__FUNCTION__]; + [LinphoneManager set:switchCamera hidden:!zeroCall withName:"SWITCH_CAM button" andReason:__FUNCTION__]; [LinphoneManager set:callShort hidden:zeroCall withName:"CALL_SHORT button" andReason:__FUNCTION__]; [LinphoneManager set:backToCallView hidden:zeroCall withName:"BACK button" andReason:__FUNCTION__]; + [callShort setTitle:[UICallButton transforModeEnabled] ? @"transfer":@"call" forState:UIControlStateNormal]; + if (!callShort.hidden) [callShort setEnabled:!linphone_core_sound_resources_locked([LinphoneManager getLc])]; } @catch (NSException* exc) { @@ -120,6 +123,7 @@ - (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"enable_first_login_view_preference"] == true) { myFirstLoginViewController = [[FirstLoginViewController alloc] initWithNibName:@"FirstLoginViewController" bundle:[NSBundle mainBundle]]; @@ -131,8 +135,8 @@ [self updateCallAndBackButtons]; } --(void) viewWillDisappear:(BOOL)animated { - [mMainScreenWithVideoPreview showPreview:NO]; +-(void) viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; } @@ -195,6 +199,7 @@ -(void)viewWillAppear:(BOOL)animated { [self updateCallAndBackButtons]; + [super viewWillAppear:animated]; } -(void) displayDialerFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { @@ -230,7 +235,6 @@ [myTabBarController setSelectedIndex:DIALER_TAB_INDEX]; [mMainScreenWithVideoPreview showPreview:YES]; - } //status reporting @@ -240,7 +244,7 @@ -(void) displayIncomingCall:(LinphoneCall*) call NotificationFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { - + [mMainScreenWithVideoPreview showPreview:NO]; if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) { // Create a new notification @@ -258,6 +262,7 @@ } } else { CallDelegate* cd = [[CallDelegate alloc] init]; + cd.eventType = CD_NEW_CALL; cd.delegate = self; cd.call = call; @@ -283,13 +288,23 @@ } -(void) backToCallViewPressed { - [self displayInCall: nil + [UICallButton enableTransforMode:NO]; + [self presentModalViewController:(UIViewController*)mIncallViewController animated:true]; + + LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]); + + if (!call || !linphone_call_params_video_enabled(linphone_call_get_current_params(call)) || linphone_call_get_state(call) != LinphoneCallStreamsRunning) { + [self displayInCall: call FromUI:nil forUser:nil withDisplayName:nil]; + } else { + [self displayVideoCall:call FromUI:nil forUser:nil withDisplayName:nil]; + } } -(void) displayCall: (LinphoneCall*) call InProgressFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { + [mMainScreenWithVideoPreview showPreview:NO]; if (self.presentedViewController != (UIViewController*)mIncallViewController) { [self presentModalViewController:(UIViewController*)mIncallViewController animated:true]; } @@ -302,6 +317,7 @@ } -(void) displayInCall: (LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { + [mMainScreenWithVideoPreview showPreview:NO]; if (self.presentedViewController != (UIViewController*)mIncallViewController && (call == 0x0 || linphone_call_get_dir(call)==LinphoneCallIncoming)){ [self presentModalViewController:(UIViewController*)mIncallViewController animated:true]; @@ -313,22 +329,34 @@ withDisplayName:displayName]; [LinphoneManager set:callLarge hidden:YES withName:"CALL_LARGE button" andReason:__FUNCTION__]; + [LinphoneManager set:switchCamera hidden:YES withName:"SWITCH_CAMERA button" andReason:__FUNCTION__]; [LinphoneManager set:callShort hidden:NO withName:"CALL_SHORT button" andReason:__FUNCTION__]; [LinphoneManager set:backToCallView hidden:NO withName:"CALL_BACK button" andReason:__FUNCTION__]; + + [self updateCallAndBackButtons]; } -(void) displayVideoCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName { + [mMainScreenWithVideoPreview showPreview:NO]; [mIncallViewController displayVideoCall:call FromUI:viewCtrl forUser:username withDisplayName:displayName]; [mMainScreenWithVideoPreview showPreview:NO]; + [self updateCallAndBackButtons]; +} + +-(void) displayAskToEnableVideoCall:(LinphoneCall*) call forUser:(NSString*) username withDisplayName:(NSString*) displayName { + [mIncallViewController displayAskToEnableVideoCall:call forUser:username withDisplayName:displayName]; } -- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void *)datas{ +- (void)actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType)type clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void *)datas { + if (type != CD_NEW_CALL) + return; + LinphoneCall* call = (LinphoneCall*)datas; if (buttonIndex == actionSheet.destructiveButtonIndex ) { linphone_core_accept_call([LinphoneManager getLc],call); @@ -388,5 +416,9 @@ [self updateStatusSubView]; } +-(void) firstVideoFrameDecoded: (LinphoneCall*) call { + [mIncallViewController firstVideoFrameDecoded:call]; +} + @end diff --git a/Classes/VideoViewController.xib b/Classes/VideoViewController.xib index cd1e2025e..f7c680281 100644 --- a/Classes/VideoViewController.xib +++ b/Classes/VideoViewController.xib @@ -40,7 +40,6 @@ 292 {320, 460} - 1 MCAwIDAAA @@ -129,7 +128,6 @@ 292 {{211, 418}, {108, 62}} - NO IBCocoaTouchFramework 0 @@ -252,7 +250,6 @@ 292 {{420, 212}, {60, 108}} - NO IBCocoaTouchFramework 0 @@ -314,6 +311,19 @@ 274 + + YES + + + 292 + {{8, 285}, {28, 28}} + + + _NS:567 + NO + IBCocoaTouchFramework + + {{60, 0}, {420, 320}} @@ -392,7 +402,6 @@ 274 {{360, 233}, {106, 80}} - 3 MQA @@ -400,16 +409,6 @@ IBCocoaTouchFramework - - - 292 - {{68, 285}, {28, 28}} - - - _NS:567 - NO - IBCocoaTouchFramework - {480, 320} @@ -731,7 +730,6 @@ - @@ -780,17 +778,21 @@ display - - 59 - - - 39 + + YES + + display + + 59 + + + diff --git a/README b/README index 4f0900f9d..096cfdadb 100644 --- a/README +++ b/README @@ -36,19 +36,24 @@ BUILDING THE SDK * GPL third parties versus non GPL third parties -This sdk can be generated in 2 flavors. Firt is with GPL third parties, it means liblinphone includes GPL third parties like FFMPEG or x264. -If you choose this flavor, your final application must comply with GPL in any case. This is the default mode. + This sdk can be generated in 2 flavors. Firt is with GPL third parties, it means liblinphone includes GPL third parties like FFMPEG or x264. + If you choose this flavor, your final application must comply with GPL in any case. This is the default mode. -To generate the liblinphone multi arch sdk in GPL mode, do: + To generate the liblinphone multi arch sdk in GPL mode, do: $ cd submodules/build $ make all -ALTERNATIVELY, you can force liblinphone to use only non GPL code except for liblinphone, mediastremer2, ortp, exosip, osip. -If you choose this flavor, your final application is still subject to GPL except if you have a commercial license for liblinphone, mediastremer2, ortp, exosip, osip. + ALTERNATIVELY, you can force liblinphone to use only non GPL code except for liblinphone, mediastremer2, ortp, exosip, osip. + If you choose this flavor, your final application is still subject to GPL except if you have a commercial license for liblinphone, mediastremer2, ortp, exosip, osip. -To generate the liblinphone multi arch sdkin non GPL mode, do: + To generate the liblinphone multi arch sdkin non GPL mode, do: $ cd submodules/build $ make all enable_gpl_third_parties=no + + * ZRTP support + + You can enable ZRTP support in GPL mode only, by adding "enable_zrtp=yes" to the make command, for example: + $ make all enable_gpl_third_parties=yes enable_zrtp=yes The resulting sdk is in liblinphone-sdk/ directory. diff --git a/Resources/in_call.png b/Resources/in_call.png index d48369e6a..1e20bac2b 100644 Binary files a/Resources/in_call.png and b/Resources/in_call.png differ diff --git a/Resources/in_call_video.png b/Resources/in_call_video.png new file mode 100644 index 000000000..87fcb5b64 Binary files /dev/null and b/Resources/in_call_video.png differ diff --git a/Resources/missed_call.png b/Resources/missed_call.png index 315b49708..58d745612 100644 Binary files a/Resources/missed_call.png and b/Resources/missed_call.png differ diff --git a/Resources/out_call.png b/Resources/out_call.png index 7fef2b4ae..3077fdb08 100644 Binary files a/Resources/out_call.png and b/Resources/out_call.png differ diff --git a/Resources/out_call_video.png b/Resources/out_call_video.png new file mode 100644 index 000000000..fb6447f8e Binary files /dev/null and b/Resources/out_call_video.png differ diff --git a/Settings.bundle/Advanced.plist b/Settings.bundle/Advanced.plist index 4aad4e2a9..c0c81b34a 100644 --- a/Settings.bundle/Advanced.plist +++ b/Settings.bundle/Advanced.plist @@ -4,6 +4,20 @@ PreferenceSpecifiers + + Key + stun_preference + Title + Stun server + Type + PSTextFieldSpecifier + AutocapitalizationType + None + AutocorrectionType + No + DefaultValue + + DefaultValue @@ -42,6 +56,16 @@ Type PSToggleSwitchSpecifier + + DefaultValue + + Key + wifi_only_preference + Title + Wifi only + Type + PSToggleSwitchSpecifier + DefaultValue udp @@ -74,6 +98,16 @@ Type PSToggleSwitchSpecifier + + DefaultValue + + Key + disable_autoboot_preference + Title + Disable application autostart + Type + PSToggleSwitchSpecifier + DefaultValue diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index ef6478f8b..961c26bb5 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -3,34 +3,120 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ + 1AE0A49A14AC5C64002C99BD /* stat_sys_signal_0.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49314AC5C64002C99BD /* stat_sys_signal_0.png */; }; 1AE0A49B14AC5C64002C99BD /* stat_sys_signal_0.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49314AC5C64002C99BD /* stat_sys_signal_0.png */; }; + 1AE0A49C14AC5C64002C99BD /* stat_sys_signal_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49414AC5C64002C99BD /* stat_sys_signal_1.png */; }; 1AE0A49D14AC5C64002C99BD /* stat_sys_signal_1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49414AC5C64002C99BD /* stat_sys_signal_1.png */; }; + 1AE0A49E14AC5C64002C99BD /* stat_sys_signal_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49514AC5C64002C99BD /* stat_sys_signal_2.png */; }; 1AE0A49F14AC5C64002C99BD /* stat_sys_signal_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49514AC5C64002C99BD /* stat_sys_signal_2.png */; }; + 1AE0A4A014AC5C64002C99BD /* stat_sys_signal_3.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49614AC5C64002C99BD /* stat_sys_signal_3.png */; }; 1AE0A4A114AC5C64002C99BD /* stat_sys_signal_3.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49614AC5C64002C99BD /* stat_sys_signal_3.png */; }; + 1AE0A4A214AC5C64002C99BD /* stat_sys_signal_4.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49714AC5C64002C99BD /* stat_sys_signal_4.png */; }; 1AE0A4A314AC5C64002C99BD /* stat_sys_signal_4.png in Resources */ = {isa = PBXBuildFile; fileRef = 1AE0A49714AC5C64002C99BD /* stat_sys_signal_4.png */; }; + 1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */; }; + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 22058C71116E305000B08DDD /* icone-linphone-57.png in Resources */ = {isa = PBXBuildFile; fileRef = 22058C70116E305000B08DDD /* icone-linphone-57.png */; }; + 220FAD3110765B400068D98F /* libeXosip2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2810765B400068D98F /* libeXosip2.a */; }; + 220FAD3210765B400068D98F /* libgsm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2910765B400068D98F /* libgsm.a */; }; + 220FAD3610765B400068D98F /* libosip2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2D10765B400068D98F /* libosip2.a */; }; + 220FAD3710765B400068D98F /* libosipparser2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2E10765B400068D98F /* libosipparser2.a */; }; + 220FAD3810765B400068D98F /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2F10765B400068D98F /* libspeex.a */; }; + 220FAD3910765B400068D98F /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD3010765B400068D98F /* libspeexdsp.a */; }; + 220FAE4B10767A6A0068D98F /* PhoneMainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 220FAE4A10767A6A0068D98F /* PhoneMainView.xib */; }; 2211DB95147564B400DEE054 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2211DB94147564B400DEE054 /* Settings.bundle */; }; + 2211DBBE14769C8300DEE054 /* CallDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 2211DBBB14769C8200DEE054 /* CallDelegate.m */; }; 2211DBBF14769C8300DEE054 /* CallDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 2211DBBB14769C8200DEE054 /* CallDelegate.m */; }; + 2211DBC014769CB200DEE054 /* IncallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 222A483212F7176F0075F07F /* IncallViewController.m */; }; 2211DBC114769CB300DEE054 /* IncallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 222A483212F7176F0075F07F /* IncallViewController.m */; }; + 2211DBD51476BE7300DEE054 /* ajouter.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCA1476BE7300DEE054 /* ajouter.png */; }; 2211DBD61476BE7300DEE054 /* ajouter.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCA1476BE7300DEE054 /* ajouter.png */; }; + 2211DBD71476BE7300DEE054 /* clavier.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCB1476BE7300DEE054 /* clavier.png */; }; 2211DBD81476BE7300DEE054 /* clavier.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCB1476BE7300DEE054 /* clavier.png */; }; + 2211DBD91476BE7300DEE054 /* contact.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCC1476BE7300DEE054 /* contact.png */; }; 2211DBDA1476BE7300DEE054 /* contact.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCC1476BE7300DEE054 /* contact.png */; }; + 2211DBDB1476BE7300DEE054 /* effacer.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCD1476BE7300DEE054 /* effacer.png */; }; 2211DBDC1476BE7300DEE054 /* effacer.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCD1476BE7300DEE054 /* effacer.png */; }; + 2211DBDD1476BE7300DEE054 /* grouper.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCE1476BE7300DEE054 /* grouper.png */; }; 2211DBDE1476BE7300DEE054 /* grouper.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCE1476BE7300DEE054 /* grouper.png */; }; + 2211DBDF1476BE7300DEE054 /* HP_inverse.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCF1476BE7300DEE054 /* HP_inverse.png */; }; 2211DBE01476BE7300DEE054 /* HP_inverse.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBCF1476BE7300DEE054 /* HP_inverse.png */; }; + 2211DBE11476BE7300DEE054 /* HP.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD01476BE7300DEE054 /* HP.png */; }; 2211DBE21476BE7300DEE054 /* HP.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD01476BE7300DEE054 /* HP.png */; }; + 2211DBE31476BE7300DEE054 /* micro_inverse.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD11476BE7300DEE054 /* micro_inverse.png */; }; 2211DBE41476BE7300DEE054 /* micro_inverse.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD11476BE7300DEE054 /* micro_inverse.png */; }; + 2211DBE51476BE7300DEE054 /* micro.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD21476BE7300DEE054 /* micro.png */; }; 2211DBE61476BE7300DEE054 /* micro.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD21476BE7300DEE054 /* micro.png */; }; + 2211DBE71476BE7300DEE054 /* pause_inactif.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD31476BE7300DEE054 /* pause_inactif.png */; }; 2211DBE81476BE7300DEE054 /* pause_inactif.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD31476BE7300DEE054 /* pause_inactif.png */; }; + 2211DBE91476BE7300DEE054 /* pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD41476BE7300DEE054 /* pause.png */; }; 2211DBEA1476BE7300DEE054 /* pause.png in Resources */ = {isa = PBXBuildFile; fileRef = 2211DBD41476BE7300DEE054 /* pause.png */; }; - 223FF63514A24A9500A5F0BC /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; }; - 223FF63614A24A9800A5F0BC /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; }; - 223FF63714A24A9B00A5F0BC /* libtunnel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F07EBD1C149F40A5006F61D2 /* libtunnel.a */; }; - 2295130914A202510007EE98 /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; }; - 22D817AE147A9F33001CFB9C /* UIAddVideoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22D817AC147A9F33001CFB9C /* UIAddVideoButton.m */; }; + 2214783D1386A2030020F8B8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2214783B1386A2030020F8B8 /* Localizable.strings */; }; + 2214EB7A12F846B1002A5394 /* UICallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EB7912F846B1002A5394 /* UICallButton.m */; }; + 2214EB8912F84EBB002A5394 /* UIHangUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EB8812F84EBB002A5394 /* UIHangUpButton.m */; }; + 2214EBDA12F8558F002A5394 /* UIToggleButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EBD912F8558F002A5394 /* UIToggleButton.m */; }; + 2214EBF312F86360002A5394 /* UIMuteButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EBF212F86360002A5394 /* UIMuteButton.m */; }; + 2218A92512FBE1340088A667 /* FirstLoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2218A92312FBE1340088A667 /* FirstLoginViewController.m */; }; + 2218A92612FBE1340088A667 /* FirstLoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2218A92412FBE1340088A667 /* FirstLoginViewController.xib */; }; + 22226C12118197C0000CA27B /* startcall-green.png in Resources */ = {isa = PBXBuildFile; fileRef = 22226C11118197C0000CA27B /* startcall-green.png */; }; + 22226C14118197EC000CA27B /* stopcall-red.png in Resources */ = {isa = PBXBuildFile; fileRef = 22226C13118197EC000CA27B /* stopcall-red.png */; }; + 22276E8313C73D3100210156 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8013C73D3100210156 /* libavcodec.a */; }; + 22276E8413C73D3100210156 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8113C73D3100210156 /* libavutil.a */; }; + 22276E8513C73D3100210156 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8213C73D3100210156 /* libswscale.a */; }; + 22276E8713C73D8A00210156 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8613C73D8A00210156 /* CoreVideo.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 22276E8913C73DC000210156 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8813C73DC000210156 /* CoreMedia.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 222A483412F7176F0075F07F /* IncallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 222A483112F7176F0075F07F /* IncallViewController.xib */; }; + 223148E41178A08200637D6A /* libilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E31178A08200637D6A /* libilbc.a */; }; + 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E51178A09900637D6A /* libmsilbc.a */; }; + 2237D4091084D7A9001383EE /* oldphone-mono.wav in Resources */ = {isa = PBXBuildFile; fileRef = 2237D4081084D7A9001383EE /* oldphone-mono.wav */; }; + 223963171393CFAF001DE689 /* FastAddressBook.m in Sources */ = {isa = PBXBuildFile; fileRef = 223963161393CFAF001DE689 /* FastAddressBook.m */; }; + 2242D91610D66BF300E9963F /* in_call.png in Resources */ = {isa = PBXBuildFile; fileRef = 2242D91410D66BF300E9963F /* in_call.png */; }; + 2242D91710D66BF300E9963F /* out_call.png in Resources */ = {isa = PBXBuildFile; fileRef = 2242D91510D66BF300E9963F /* out_call.png */; }; + 2242D9C910D691F900E9963F /* GenericTabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2242D9C810D691F900E9963F /* GenericTabViewController.m */; }; + 2242E313125235120061DDCE /* oldphone-mono-30s.caf in Resources */ = {isa = PBXBuildFile; fileRef = 2242E312125235120061DDCE /* oldphone-mono-30s.caf */; }; + 2245671D107699F700F10948 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 2245671C107699F700F10948 /* Settings.bundle */; }; + 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 2245F78A1201D38000C4179D /* MoreViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A81B111C44E100B04932 /* MoreViewController.xib */; }; + 2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; }; + 2248E99F12F801C200220D9C /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E99E12F801C200220D9C /* LinphoneManager.m */; }; + 225CB2EA11ABB51000628906 /* clavier-01-106px.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2E811ABB51000628906 /* clavier-01-106px.png */; }; + 225CB2EB11ABB51000628906 /* clavier-01-108px.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2E911ABB51000628906 /* clavier-01-108px.png */; }; + 225CB2EE11ABB65D00628906 /* clavier-01-160px.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2ED11ABB65D00628906 /* clavier-01-160px.png */; }; + 225CB2FA11ABB76400628906 /* linphone-banner.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2F911ABB76400628906 /* linphone-banner.png */; }; + 226183AD1472527D0037138E /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; }; + 226183AE1472527D0037138E /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; }; + 226183B0147259670037138E /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AF147259670037138E /* libmssilk.a */; }; + 2264B6D211200342002C2C53 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2264B6D111200342002C2C53 /* SystemConfiguration.framework */; }; + 226B563F13CAF1CD00921595 /* audio.plist in Resources */ = {isa = PBXBuildFile; fileRef = 226B563E13CAF1CD00921595 /* audio.plist */; }; + 226CDADF14E2D0B800513B67 /* libbcg729.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226CDADD14E2D0B800513B67 /* libbcg729.a */; }; + 226CDAE014E2D0B800513B67 /* libmsbcg729.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226CDADE14E2D0B800513B67 /* libmsbcg729.a */; }; + 226F2ED61344B0EF00F6EF27 /* libopencore-amrwb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED31344B0EF00F6EF27 /* libopencore-amrwb.a */; }; + 226F2ED71344B0EF00F6EF27 /* libopencore-amrnb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED41344B0EF00F6EF27 /* libopencore-amrnb.a */; }; + 226F2ED81344B0EF00F6EF27 /* libmsamr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED51344B0EF00F6EF27 /* libmsamr.a */; }; + 2274401A106F31BD006EC466 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22744019106F31BD006EC466 /* CoreAudio.framework */; }; + 2274402F106F335E006EC466 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2274402E106F335E006EC466 /* AudioToolbox.framework */; }; + 2274550810700509006EC466 /* linphonerc in Resources */ = {isa = PBXBuildFile; fileRef = 2274550710700509006EC466 /* linphonerc */; }; + 227BCDC210D4004600FBFD76 /* CallHistoryTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 227BCDC010D4004600FBFD76 /* CallHistoryTableViewController.m */; }; + 227BCDC310D4004600FBFD76 /* CallHistoryTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 227BCDC110D4004600FBFD76 /* CallHistoryTableViewController.xib */; }; + 228697C411AC29B800E9E0CA /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 228697C311AC29B800E9E0CA /* CFNetwork.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 228B19AF130290C500F154D3 /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 228B19AE130290C500F154D3 /* iTunesArtwork */; }; + 22968A5F12F875C600588287 /* UISpeakerButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22968A5E12F875C600588287 /* UISpeakerButton.m */; }; + 22968A8812F87C2000588287 /* UIDuration.m in Sources */ = {isa = PBXBuildFile; fileRef = 22968A8712F87C2000588287 /* UIDuration.m */; }; + 22A10F3B11F8960300373793 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2C10765B400068D98F /* libortp.a */; }; + 22AA8AFD13D7125600B30535 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFB13D7125500B30535 /* libx264.a */; }; + 22AA8AFE13D7125600B30535 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFC13D7125500B30535 /* libmsx264.a */; }; + 22AA8B0113D83F6300B30535 /* UICamSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 22AA8B0013D83F6300B30535 /* UICamSwitch.m */; }; + 22B5EFA310CE50BD00777D97 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */; }; + 22B5EFE510CE5E5800777D97 /* ContactPickerDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 22B5EFE410CE5E5800777D97 /* ContactPickerDelegate.m */; }; + 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5F03410CE6B2F00777D97 /* AddressBook.framework */; }; + 22BB1A69132FF16A005CD7AA /* UIEraseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22BB1A68132FF16A005CD7AA /* UIEraseButton.m */; }; + 22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C7555F1317E59C007BC101 /* UIBluetoothButton.m */; }; + 22D1B68112A3E0BE001AE361 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D1B68012A3E0BE001AE361 /* libresolv.dylib */; }; 22D8F11F147548E2008C97DB /* linphonerc in Resources */ = {isa = PBXBuildFile; fileRef = 2274550710700509006EC466 /* linphonerc */; }; 22D8F120147548E2008C97DB /* PhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* PhoneViewController.xib */; }; 22D8F121147548E2008C97DB /* ringback.wav in Resources */ = {isa = PBXBuildFile; fileRef = 22F254801073D99800AC9B3F /* ringback.wav */; }; @@ -114,29 +200,92 @@ 22D8F17E147548E2008C97DB /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; }; 22D8F17F147548E2008C97DB /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; }; 22D8F180147548E2008C97DB /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AF147259670037138E /* libmssilk.a */; }; + 22E028B713B4CCBD0068A713 /* VideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E028B513B4CCBD0068A713 /* VideoViewController.m */; }; + 22E028B813B4CCBD0068A713 /* VideoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E028B613B4CCBD0068A713 /* VideoViewController.xib */; }; + 22E0A822111C44E100B04932 /* MoreViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* MoreViewController.m */; }; + 22E0A823111C44E100B04932 /* ConsoleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A81E111C44E100B04932 /* ConsoleViewController.xib */; }; + 22E0A824111C44E100B04932 /* ConsoleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81F111C44E100B04932 /* ConsoleViewController.m */; }; + 22E19E48138A67A000FBFE87 /* missed_call.png in Resources */ = {isa = PBXBuildFile; fileRef = 22E19E47138A67A000FBFE87 /* missed_call.png */; }; + 22E1A9E813CAF4AA00219531 /* video.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22E1A9E713CAF4AA00219531 /* video.plist */; }; + 22E5B0AF133B5EA20044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5B0AD133B5EA20044EA25 /* libssl.a */; }; + 22E5B0B0133B5EA20044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5B0AE133B5EA20044EA25 /* libcrypto.a */; }; + 22F2508E107141E100AC9B3F /* PhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* PhoneViewController.m */; }; + 22F2508F107141E100AC9B3F /* PhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* PhoneViewController.xib */; }; + 22F254811073D99800AC9B3F /* ringback.wav in Resources */ = {isa = PBXBuildFile; fileRef = 22F254801073D99800AC9B3F /* ringback.wav */; }; + 22F51EF6107FA66500F98953 /* untitled.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22F51EF5107FA66500F98953 /* untitled.plist */; }; + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; + 340751971506459A00B89C47 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 340751961506459A00B89C47 /* CoreTelephony.framework */; }; + 34075199150645A300B89C47 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 340751961506459A00B89C47 /* CoreTelephony.framework */; }; + 340751E7150F38FD00B89C47 /* UIToggleVideoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 340751E6150F38FD00B89C47 /* UIToggleVideoButton.m */; }; + 340751E8150F38FD00B89C47 /* UIToggleVideoButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 340751E6150F38FD00B89C47 /* UIToggleVideoButton.m */; }; + 340A75B014C0670B006AA708 /* ConferenceCallDetailView-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 340A75AF14C0670A006AA708 /* ConferenceCallDetailView-ipad.xib */; }; 340A75B114C0670B006AA708 /* ConferenceCallDetailView-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 340A75AF14C0670A006AA708 /* ConferenceCallDetailView-ipad.xib */; }; + 3418843714C58BB100EA48C7 /* nowebcamCIF.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3418843614C58BB100EA48C7 /* nowebcamCIF.jpg */; }; 3418843814C58BB100EA48C7 /* nowebcamCIF.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 3418843614C58BB100EA48C7 /* nowebcamCIF.jpg */; }; + 3418844814C6CAD300EA48C7 /* StatusSubViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3418844614C6CAD300EA48C7 /* StatusSubViewController.m */; }; 3418844914C6CAD300EA48C7 /* StatusSubViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3418844614C6CAD300EA48C7 /* StatusSubViewController.m */; }; + 3418844A14C6CAD300EA48C7 /* StatusSubViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3418844714C6CAD300EA48C7 /* StatusSubViewController.xib */; }; 3418844B14C6CAD300EA48C7 /* StatusSubViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3418844714C6CAD300EA48C7 /* StatusSubViewController.xib */; }; + 3418844D14C6D1CE00EA48C7 /* startcall-gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418844C14C6D1CE00EA48C7 /* startcall-gray.png */; }; 3418844E14C6D1CE00EA48C7 /* startcall-gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418844C14C6D1CE00EA48C7 /* startcall-gray.png */; }; + 3418845314C6F66F00EA48C7 /* status_green.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418844F14C6F66E00EA48C7 /* status_green.png */; }; 3418845414C6F66F00EA48C7 /* status_green.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418844F14C6F66E00EA48C7 /* status_green.png */; }; + 3418845714C6F66F00EA48C7 /* status_orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845114C6F66F00EA48C7 /* status_orange.png */; }; 3418845814C6F66F00EA48C7 /* status_orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845114C6F66F00EA48C7 /* status_orange.png */; }; + 3418845914C6F66F00EA48C7 /* status_red.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845214C6F66F00EA48C7 /* status_red.png */; }; 3418845A14C6F66F00EA48C7 /* status_red.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845214C6F66F00EA48C7 /* status_red.png */; }; + 3418845C14C7077400EA48C7 /* status_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845B14C7077400EA48C7 /* status_gray.png */; }; 3418845D14C7077400EA48C7 /* status_gray.png in Resources */ = {isa = PBXBuildFile; fileRef = 3418845B14C7077400EA48C7 /* status_gray.png */; }; + 341FCA8E149798210084BC26 /* linphonerc-ipad in Resources */ = {isa = PBXBuildFile; fileRef = 341FCA8D149798210084BC26 /* linphonerc-ipad */; }; 341FCA8F149798210084BC26 /* linphonerc-ipad in Resources */ = {isa = PBXBuildFile; fileRef = 341FCA8D149798210084BC26 /* linphonerc-ipad */; }; + 34216F401547EBCD00EA9777 /* VideoZoomHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */; }; + 34216F411547EBCD00EA9777 /* VideoZoomHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */; }; + 3422AA5014975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */; }; 3422AA5114975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */; }; + 3422AA5314978352000D4E8A /* PhoneViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */; }; 3422AA5414978352000D4E8A /* PhoneViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */; }; + 344ABD72147FC438007420B6 /* ConferenceCallDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 344ABD71147FC438007420B6 /* ConferenceCallDetailView.xib */; }; 344ABD73147FC438007420B6 /* ConferenceCallDetailView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 344ABD71147FC438007420B6 /* ConferenceCallDetailView.xib */; }; + 344ABD77147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 344ABD76147FCB68007420B6 /* ConferenceCallDetailView.m */; }; 344ABD78147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 344ABD76147FCB68007420B6 /* ConferenceCallDetailView.m */; }; + 344ABD7A147FD32B007420B6 /* ConferenceCallDetailCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 344ABD79147FD32B007420B6 /* ConferenceCallDetailCell.xib */; }; 344ABD7B147FD32B007420B6 /* ConferenceCallDetailCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 344ABD79147FD32B007420B6 /* ConferenceCallDetailCell.xib */; }; + 344ABDE51483E596007420B6 /* unverified.png in Resources */ = {isa = PBXBuildFile; fileRef = 344ABDE41483E596007420B6 /* unverified.png */; }; 344ABDE61483E596007420B6 /* unverified.png in Resources */ = {isa = PBXBuildFile; fileRef = 344ABDE41483E596007420B6 /* unverified.png */; }; + 344ABDE81484E723007420B6 /* libzrtpcpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDE71484E723007420B6 /* libzrtpcpp.a */; }; + 344ABDF114850AE9007420B6 /* libc++.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDEF14850AE9007420B6 /* libc++.1.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + 344ABDF214850AE9007420B6 /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; + 3485649F152C423F003FE041 /* in_call_video.png in Resources */ = {isa = PBXBuildFile; fileRef = 3485649D152C423F003FE041 /* in_call_video.png */; }; + 348564A0152C423F003FE041 /* out_call_video.png in Resources */ = {isa = PBXBuildFile; fileRef = 3485649E152C423F003FE041 /* out_call_video.png */; }; + 34957F3F147D3FBF00DD7A09 /* secured.png in Resources */ = {isa = PBXBuildFile; fileRef = 34957F3E147D3FBF00DD7A09 /* secured.png */; }; + 34A6ECEB14CF13CB00460C04 /* icone-linphone-72.png in Resources */ = {isa = PBXBuildFile; fileRef = 34A6ECEA14CF13CB00460C04 /* icone-linphone-72.png */; }; + 34C7646914CD51CD008E9607 /* contact_vide.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646814CD51CD008E9607 /* contact_vide.png */; }; + 34C7646C14CD5585008E9607 /* dialer-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646A14CD5585008E9607 /* dialer-orange.png */; }; + 34C7646D14CD5585008E9607 /* history-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646B14CD5585008E9607 /* history-orange.png */; }; + 34CA852F148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA852E148F646700503C01 /* MainScreenWithVideoPreview.xib */; }; 34CA8530148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA852E148F646700503C01 /* MainScreenWithVideoPreview.xib */; }; + 34CA8535148F669900503C01 /* VideoViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */; }; 34CA8536148F669900503C01 /* VideoViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */; }; + 34CA8539148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; }; 34CA853A148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; }; - 57D8FE5F15137F69006BB25F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57D8FE5E15137F69006BB25F /* CoreTelephony.framework */; }; + 70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */ = {isa = PBXBuildFile; fileRef = 70571E1913FABCB000CDD3C2 /* rootca.pem */; }; + 7066FC0C13E830E400EFC6DC /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0B13E830E400EFC6DC /* libvpx.a */; }; + 70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F213E147E3002BA2C0 /* OpenGLES.framework */; }; + 70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; }; + F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; }; + F476004C147AAF4600FFF19B /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ + 2247673A129C3B9C002B94B4 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = ""; + dstSubfolderSpec = 11; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22D8F181147548E2008C97DB /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -157,6 +306,7 @@ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 1D3623240D0F684500981E51 /* LinphoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneAppDelegate.h; sourceTree = ""; }; 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneAppDelegate.m; sourceTree = ""; }; + 1D6058910D05DD3D006BFB54 /* linphone.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = linphone.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 22058C70116E305000B08DDD /* icone-linphone-57.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icone-linphone-57.png"; path = "Resources/icone-linphone-57.png"; sourceTree = ""; }; 220FAC79107654FC0068D98F /* eX_call.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eX_call.h; sourceTree = ""; }; @@ -277,7 +427,7 @@ 2211DB8F147555C800DEE054 /* libmediastreamer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer.a"; sourceTree = ""; }; 2211DB911475562600DEE054 /* liblinphone.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblinphone.a; path = "liblinphone-sdk/apple-darwin/lib/liblinphone.a"; sourceTree = ""; }; 2211DB94147564B400DEE054 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Settings.bundle; path = "nogpl-thirdparties/Settings.bundle"; sourceTree = ""; }; - 2211DBBB14769C8200DEE054 /* CallDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallDelegate.m; sourceTree = ""; }; + 2211DBBB14769C8200DEE054 /* CallDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = CallDelegate.m; sourceTree = ""; }; 2211DBCA1476BE7300DEE054 /* ajouter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ajouter.png; path = Resources/ajouter.png; sourceTree = ""; }; 2211DBCB1476BE7300DEE054 /* clavier.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = clavier.png; path = Resources/clavier.png; sourceTree = ""; }; 2211DBCC1476BE7300DEE054 /* contact.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact.png; path = Resources/contact.png; sourceTree = ""; }; @@ -329,7 +479,7 @@ 2248E90C12F7E4CF00220D9C /* UIDigitButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButton.h; sourceTree = ""; }; 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDigitButton.m; sourceTree = ""; }; 2248E99D12F801C200220D9C /* LinphoneManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneManager.h; sourceTree = ""; }; - 2248E99E12F801C200220D9C /* LinphoneManager.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = LinphoneManager.m; sourceTree = ""; }; + 2248E99E12F801C200220D9C /* LinphoneManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneManager.m; sourceTree = ""; }; 2258633C11410BAC00C5A737 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; 225CB2E811ABB51000628906 /* clavier-01-106px.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "clavier-01-106px.png"; path = "Resources/clavier-01-106px.png"; sourceTree = ""; }; 225CB2E911ABB51000628906 /* clavier-01-108px.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "clavier-01-108px.png"; path = "Resources/clavier-01-108px.png"; sourceTree = ""; }; @@ -340,6 +490,8 @@ 226183AF147259670037138E /* libmssilk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmssilk.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmssilk.a"; sourceTree = ""; }; 2264B6D111200342002C2C53 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 226B563E13CAF1CD00921595 /* audio.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = audio.plist; path = Settings.bundle/audio.plist; sourceTree = ""; }; + 226CDADD14E2D0B800513B67 /* libbcg729.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbcg729.a; path = "liblinphone-sdk/apple-darwin/lib/libbcg729.a"; sourceTree = ""; }; + 226CDADE14E2D0B800513B67 /* libmsbcg729.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsbcg729.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsbcg729.a"; sourceTree = ""; }; 226F2ED31344B0EF00F6EF27 /* libopencore-amrwb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrwb.a"; path = "liblinphone-sdk/apple-darwin/lib/libopencore-amrwb.a"; sourceTree = ""; }; 226F2ED41344B0EF00F6EF27 /* libopencore-amrnb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libopencore-amrnb.a"; path = "liblinphone-sdk/apple-darwin/lib/libopencore-amrnb.a"; sourceTree = ""; }; 226F2ED51344B0EF00F6EF27 /* libmsamr.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsamr.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsamr.a"; sourceTree = ""; }; @@ -357,6 +509,8 @@ 22968A5E12F875C600588287 /* UISpeakerButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UISpeakerButton.m; sourceTree = ""; }; 22968A8612F87C2000588287 /* UIDuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDuration.h; sourceTree = ""; }; 22968A8712F87C2000588287 /* UIDuration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDuration.m; sourceTree = ""; }; + 22AA8AFB13D7125500B30535 /* libx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libx264.a; path = "liblinphone-sdk/apple-darwin/lib/libx264.a"; sourceTree = ""; }; + 22AA8AFC13D7125500B30535 /* libmsx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsx264.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsx264.a"; sourceTree = ""; }; 22AA8AFF13D83F6300B30535 /* UICamSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICamSwitch.h; sourceTree = ""; }; 22AA8B0013D83F6300B30535 /* UICamSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICamSwitch.m; sourceTree = ""; }; 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; }; @@ -439,8 +593,6 @@ 22C7564A13265C6A007BC101 /* x509_vfy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509_vfy.h; sourceTree = ""; }; 22C7564B13265C6A007BC101 /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = ""; }; 22D1B68012A3E0BE001AE361 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; }; - 22D817AB147A9F33001CFB9C /* UIAddVideoButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIAddVideoButton.h; sourceTree = ""; }; - 22D817AC147A9F33001CFB9C /* UIAddVideoButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIAddVideoButton.m; sourceTree = ""; }; 22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "linphone-no-gpl-thirdparties.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 22E028B413B4CCBD0068A713 /* VideoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoViewController.h; sourceTree = ""; }; 22E028B513B4CCBD0068A713 /* VideoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoViewController.m; sourceTree = ""; }; @@ -463,6 +615,10 @@ 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* linphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphone_Prefix.pch; sourceTree = ""; }; + 340751961506459A00B89C47 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; + 340751E4150E4D0200B89C47 /* CallDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallDelegate.h; sourceTree = ""; }; + 340751E5150F38FC00B89C47 /* UIToggleVideoButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIToggleVideoButton.h; sourceTree = ""; }; + 340751E6150F38FD00B89C47 /* UIToggleVideoButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIToggleVideoButton.m; sourceTree = ""; }; 340A75AF14C0670A006AA708 /* ConferenceCallDetailView-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "ConferenceCallDetailView-ipad.xib"; sourceTree = ""; }; 3418843614C58BB100EA48C7 /* nowebcamCIF.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = nowebcamCIF.jpg; path = submodules/linphone/mediastreamer2/src/nowebcamCIF.jpg; sourceTree = ""; }; 3418844514C6CAD300EA48C7 /* StatusSubViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StatusSubViewController.h; sourceTree = ""; }; @@ -474,6 +630,8 @@ 3418845214C6F66F00EA48C7 /* status_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = status_red.png; path = Resources/status_red.png; sourceTree = ""; }; 3418845B14C7077400EA48C7 /* status_gray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = status_gray.png; path = Resources/status_gray.png; sourceTree = ""; }; 341FCA8D149798210084BC26 /* linphonerc-ipad */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "linphonerc-ipad"; sourceTree = ""; }; + 34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VideoZoomHandler.h; path = LinphoneUI/VideoZoomHandler.h; sourceTree = ""; }; + 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VideoZoomHandler.m; path = LinphoneUI/VideoZoomHandler.m; sourceTree = ""; }; 3422AA4F14975EC9000D4E8A /* InCallViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "InCallViewController-ipad.xib"; sourceTree = ""; }; 3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "PhoneViewController-ipad.xib"; sourceTree = ""; }; 344ABD71147FC438007420B6 /* ConferenceCallDetailView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConferenceCallDetailView.xib; sourceTree = ""; }; @@ -481,7 +639,11 @@ 344ABD76147FCB68007420B6 /* ConferenceCallDetailView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConferenceCallDetailView.m; sourceTree = ""; }; 344ABD79147FD32B007420B6 /* ConferenceCallDetailCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConferenceCallDetailCell.xib; sourceTree = ""; }; 344ABDE41483E596007420B6 /* unverified.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = unverified.png; path = Resources/unverified.png; sourceTree = ""; }; + 344ABDE71484E723007420B6 /* libzrtpcpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzrtpcpp.a; path = "liblinphone-sdk/apple-darwin/lib/libzrtpcpp.a"; sourceTree = ""; }; + 344ABDEF14850AE9007420B6 /* libc++.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.1.dylib"; path = "usr/lib/libc++.1.dylib"; sourceTree = SDKROOT; }; 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.6.dylib"; path = "usr/lib/libstdc++.6.dylib"; sourceTree = SDKROOT; }; + 3485649D152C423F003FE041 /* in_call_video.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = in_call_video.png; path = Resources/in_call_video.png; sourceTree = ""; }; + 3485649E152C423F003FE041 /* out_call_video.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = out_call_video.png; path = Resources/out_call_video.png; sourceTree = ""; }; 34957F3E147D3FBF00DD7A09 /* secured.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = secured.png; path = Resources/secured.png; sourceTree = ""; }; 34A6ECEA14CF13CB00460C04 /* icone-linphone-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "icone-linphone-72.png"; path = "Resources/icone-linphone-72.png"; sourceTree = ""; }; 34C7646814CD51CD008E9607 /* contact_vide.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_vide.png; path = Resources/contact_vide.png; sourceTree = ""; }; @@ -491,21 +653,72 @@ 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "VideoViewController-ipad.xib"; sourceTree = ""; }; 34CA8537148F692A00503C01 /* MainScreenWithVideoPreview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainScreenWithVideoPreview.h; sourceTree = ""; }; 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainScreenWithVideoPreview.m; sourceTree = ""; }; - 57D8FE5E15137F69006BB25F /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 70571E1913FABCB000CDD3C2 /* rootca.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rootca.pem; path = Resources/rootca.pem; sourceTree = ""; }; 7066FC0B13E830E400EFC6DC /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = "liblinphone-sdk/apple-darwin/lib/libvpx.a"; sourceTree = ""; }; 70E542F213E147E3002BA2C0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 8D1107310486CEB800E47090 /* linphone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "linphone-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; - F07EBD1C149F40A5006F61D2 /* libtunnel.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtunnel.a; path = "liblinphone-sdk/apple-darwin/lib/libtunnel.a"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 340751971506459A00B89C47 /* CoreTelephony.framework in Frameworks */, + 226CDADF14E2D0B800513B67 /* libbcg729.a in Frameworks */, + 226CDAE014E2D0B800513B67 /* libmsbcg729.a in Frameworks */, + 344ABDF114850AE9007420B6 /* libc++.1.dylib in Frameworks */, + 344ABDF214850AE9007420B6 /* libstdc++.6.dylib in Frameworks */, + 344ABDE81484E723007420B6 /* libzrtpcpp.a in Frameworks */, + F476004C147AAF4600FFF19B /* libmediastreamer.a in Frameworks */, + F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */, + 7066FC0C13E830E400EFC6DC /* libvpx.a in Frameworks */, + 70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */, + 70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */, + 22276E8913C73DC000210156 /* CoreMedia.framework in Frameworks */, + 22276E8713C73D8A00210156 /* CoreVideo.framework in Frameworks */, + 22276E8313C73D3100210156 /* libavcodec.a in Frameworks */, + 22276E8413C73D3100210156 /* libavutil.a in Frameworks */, + 22276E8513C73D3100210156 /* libswscale.a in Frameworks */, + 22E5B0AF133B5EA20044EA25 /* libssl.a in Frameworks */, + 22E5B0B0133B5EA20044EA25 /* libcrypto.a in Frameworks */, + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, + 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */, + 2274401A106F31BD006EC466 /* CoreAudio.framework in Frameworks */, + 2274402F106F335E006EC466 /* AudioToolbox.framework in Frameworks */, + 220FAD3110765B400068D98F /* libeXosip2.a in Frameworks */, + 220FAD3210765B400068D98F /* libgsm.a in Frameworks */, + 220FAD3610765B400068D98F /* libosip2.a in Frameworks */, + 220FAD3710765B400068D98F /* libosipparser2.a in Frameworks */, + 220FAD3810765B400068D98F /* libspeex.a in Frameworks */, + 220FAD3910765B400068D98F /* libspeexdsp.a in Frameworks */, + 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */, + 22B5EFA310CE50BD00777D97 /* AddressBookUI.framework in Frameworks */, + 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */, + 2264B6D211200342002C2C53 /* SystemConfiguration.framework in Frameworks */, + 223148E41178A08200637D6A /* libilbc.a in Frameworks */, + 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */, + 228697C411AC29B800E9E0CA /* CFNetwork.framework in Frameworks */, + 22A10F3B11F8960300373793 /* libortp.a in Frameworks */, + 22D1B68112A3E0BE001AE361 /* libresolv.dylib in Frameworks */, + 226F2ED61344B0EF00F6EF27 /* libopencore-amrwb.a in Frameworks */, + 226F2ED71344B0EF00F6EF27 /* libopencore-amrnb.a in Frameworks */, + 226F2ED81344B0EF00F6EF27 /* libmsamr.a in Frameworks */, + 22AA8AFD13D7125600B30535 /* libx264.a in Frameworks */, + 22AA8AFE13D7125600B30535 /* libmsx264.a in Frameworks */, + 226183AD1472527D0037138E /* libSKP_SILK_SDK.a in Frameworks */, + 226183AE1472527D0037138E /* libsrtp.a in Frameworks */, + 226183B0147259670037138E /* libmssilk.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22D8F15A147548E2008C97DB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 57D8FE5F15137F69006BB25F /* CoreTelephony.framework in Frameworks */, + 34075199150645A300B89C47 /* CoreTelephony.framework in Frameworks */, 22D8F15B147548E2008C97DB /* libvpx.a in Frameworks */, 22D8F15C147548E2008C97DB /* QuartzCore.framework in Frameworks */, 22D8F15D147548E2008C97DB /* OpenGLES.framework in Frameworks */, @@ -539,10 +752,6 @@ 22D8F17E147548E2008C97DB /* libSKP_SILK_SDK.a in Frameworks */, 22D8F17F147548E2008C97DB /* libsrtp.a in Frameworks */, 22D8F180147548E2008C97DB /* libmssilk.a in Frameworks */, - 2295130914A202510007EE98 /* libstdc++.6.dylib in Frameworks */, - 223FF63514A24A9500A5F0BC /* liblinphone.a in Frameworks */, - 223FF63614A24A9800A5F0BC /* libmediastreamer.a in Frameworks */, - 223FF63714A24A9B00A5F0BC /* libtunnel.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -552,6 +761,7 @@ 080E96DDFE201D6D7F000001 /* Classes */ = { isa = PBXGroup; children = ( + 340751E4150E4D0200B89C47 /* CallDelegate.h */, 2211DBBB14769C8200DEE054 /* CallDelegate.m */, 2214EB7012F84668002A5394 /* LinphoneUI */, 2218A92212FBE1340088A667 /* FirstLoginViewController.h */, @@ -595,6 +805,8 @@ 3418844514C6CAD300EA48C7 /* StatusSubViewController.h */, 3418844614C6CAD300EA48C7 /* StatusSubViewController.m */, 3418844714C6CAD300EA48C7 /* StatusSubViewController.xib */, + 34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */, + 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */, ); path = Classes; sourceTree = ""; @@ -602,6 +814,7 @@ 19C28FACFE9D520D11CA2CBB /* Products */ = { isa = PBXGroup; children = ( + 1D6058910D05DD3D006BFB54 /* linphone.app */, 22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */, ); name = Products; @@ -806,6 +1019,8 @@ 2214EB7012F84668002A5394 /* LinphoneUI */ = { isa = PBXGroup; children = ( + 340751E5150F38FC00B89C47 /* UIToggleVideoButton.h */, + 340751E6150F38FD00B89C47 /* UIToggleVideoButton.m */, 2248E90C12F7E4CF00220D9C /* UIDigitButton.h */, 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */, 2248E99D12F801C200220D9C /* LinphoneManager.h */, @@ -833,8 +1048,6 @@ 223963161393CFAF001DE689 /* FastAddressBook.m */, 22AA8AFF13D83F6300B30535 /* UICamSwitch.h */, 22AA8B0013D83F6300B30535 /* UICamSwitch.m */, - 22D817AB147A9F33001CFB9C /* UIAddVideoButton.h */, - 22D817AC147A9F33001CFB9C /* UIAddVideoButton.m */, ); path = LinphoneUI; sourceTree = ""; @@ -920,9 +1133,12 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( - 57D8FE5E15137F69006BB25F /* CoreTelephony.framework */, - F07EBD1C149F40A5006F61D2 /* libtunnel.a */, + 340751961506459A00B89C47 /* CoreTelephony.framework */, + 226CDADD14E2D0B800513B67 /* libbcg729.a */, + 226CDADE14E2D0B800513B67 /* libmsbcg729.a */, + 344ABDEF14850AE9007420B6 /* libc++.1.dylib */, 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */, + 344ABDE71484E723007420B6 /* libzrtpcpp.a */, 2211DB9614764F6B00DEE054 /* nogpl-thirdparties */, 2211DB911475562600DEE054 /* liblinphone.a */, 2211DB8F147555C800DEE054 /* libmediastreamer.a */, @@ -932,6 +1148,8 @@ 7066FC0B13E830E400EFC6DC /* libvpx.a */, 70E542F413E147EB002BA2C0 /* QuartzCore.framework */, 70E542F213E147E3002BA2C0 /* OpenGLES.framework */, + 22AA8AFB13D7125500B30535 /* libx264.a */, + 22AA8AFC13D7125500B30535 /* libmsx264.a */, 22E1A9E713CAF4AA00219531 /* video.plist */, 226B563E13CAF1CD00921595 /* audio.plist */, 22276E8813C73DC000210156 /* CoreMedia.framework */, @@ -989,6 +1207,8 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + 3485649D152C423F003FE041 /* in_call_video.png */, + 3485649E152C423F003FE041 /* out_call_video.png */, 34A6ECEA14CF13CB00460C04 /* icone-linphone-72.png */, 34C7646A14CD5585008E9607 /* dialer-orange.png */, 34C7646B14CD5585008E9607 /* history-orange.png */, @@ -1053,6 +1273,24 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 1D6058900D05DD3D006BFB54 /* linphone */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "linphone" */; + buildPhases = ( + 1D60588D0D05DD3D006BFB54 /* Resources */, + 1D60588E0D05DD3D006BFB54 /* Sources */, + 1D60588F0D05DD3D006BFB54 /* Frameworks */, + 2247673A129C3B9C002B94B4 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = linphone; + productName = linphone; + productReference = 1D6058910D05DD3D006BFB54 /* linphone.app */; + productType = "com.apple.product-type.application"; + }; 22D8F11D147548E2008C97DB /* linphone-no-gpl-thirdparties */ = { isa = PBXNativeTarget; buildConfigurationList = 22D8F182147548E2008C97DB /* Build configuration list for PBXNativeTarget "linphone-no-gpl-thirdparties" */; @@ -1076,8 +1314,11 @@ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "linphone" */; - compatibilityVersion = "Xcode 3.1"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -1091,12 +1332,88 @@ projectDirPath = ""; projectRoot = ""; targets = ( + 1D6058900D05DD3D006BFB54 /* linphone */, 22D8F11D147548E2008C97DB /* linphone-no-gpl-thirdparties */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 1D60588D0D05DD3D006BFB54 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2274550810700509006EC466 /* linphonerc in Resources */, + 22F2508F107141E100AC9B3F /* PhoneViewController.xib in Resources */, + 22F254811073D99800AC9B3F /* ringback.wav in Resources */, + 220FAE4B10767A6A0068D98F /* PhoneMainView.xib in Resources */, + 2245671D107699F700F10948 /* Settings.bundle in Resources */, + 22F51EF6107FA66500F98953 /* untitled.plist in Resources */, + 2237D4091084D7A9001383EE /* oldphone-mono.wav in Resources */, + 227BCDC310D4004600FBFD76 /* CallHistoryTableViewController.xib in Resources */, + 2242D91610D66BF300E9963F /* in_call.png in Resources */, + 2242D91710D66BF300E9963F /* out_call.png in Resources */, + 22E0A823111C44E100B04932 /* ConsoleViewController.xib in Resources */, + 22058C71116E305000B08DDD /* icone-linphone-57.png in Resources */, + 22226C12118197C0000CA27B /* startcall-green.png in Resources */, + 22226C14118197EC000CA27B /* stopcall-red.png in Resources */, + 225CB2EA11ABB51000628906 /* clavier-01-106px.png in Resources */, + 225CB2EB11ABB51000628906 /* clavier-01-108px.png in Resources */, + 225CB2EE11ABB65D00628906 /* clavier-01-160px.png in Resources */, + 225CB2FA11ABB76400628906 /* linphone-banner.png in Resources */, + 2245F78A1201D38000C4179D /* MoreViewController.xib in Resources */, + 2242E313125235120061DDCE /* oldphone-mono-30s.caf in Resources */, + 222A483412F7176F0075F07F /* IncallViewController.xib in Resources */, + 2218A92612FBE1340088A667 /* FirstLoginViewController.xib in Resources */, + 228B19AF130290C500F154D3 /* iTunesArtwork in Resources */, + 2214783D1386A2030020F8B8 /* Localizable.strings in Resources */, + 22E19E48138A67A000FBFE87 /* missed_call.png in Resources */, + 22E028B813B4CCBD0068A713 /* VideoViewController.xib in Resources */, + 226B563F13CAF1CD00921595 /* audio.plist in Resources */, + 22E1A9E813CAF4AA00219531 /* video.plist in Resources */, + 70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */, + 2211DBD51476BE7300DEE054 /* ajouter.png in Resources */, + 2211DBD71476BE7300DEE054 /* clavier.png in Resources */, + 2211DBD91476BE7300DEE054 /* contact.png in Resources */, + 2211DBDB1476BE7300DEE054 /* effacer.png in Resources */, + 2211DBDD1476BE7300DEE054 /* grouper.png in Resources */, + 2211DBDF1476BE7300DEE054 /* HP_inverse.png in Resources */, + 2211DBE11476BE7300DEE054 /* HP.png in Resources */, + 2211DBE31476BE7300DEE054 /* micro_inverse.png in Resources */, + 2211DBE51476BE7300DEE054 /* micro.png in Resources */, + 2211DBE71476BE7300DEE054 /* pause_inactif.png in Resources */, + 2211DBE91476BE7300DEE054 /* pause.png in Resources */, + 34957F3F147D3FBF00DD7A09 /* secured.png in Resources */, + 344ABD72147FC438007420B6 /* ConferenceCallDetailView.xib in Resources */, + 344ABD7A147FD32B007420B6 /* ConferenceCallDetailCell.xib in Resources */, + 344ABDE51483E596007420B6 /* unverified.png in Resources */, + 34CA852F148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */, + 34CA8535148F669900503C01 /* VideoViewController-ipad.xib in Resources */, + 3422AA5014975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */, + 3422AA5314978352000D4E8A /* PhoneViewController-ipad.xib in Resources */, + 341FCA8E149798210084BC26 /* linphonerc-ipad in Resources */, + 1AE0A49A14AC5C64002C99BD /* stat_sys_signal_0.png in Resources */, + 1AE0A49C14AC5C64002C99BD /* stat_sys_signal_1.png in Resources */, + 1AE0A49E14AC5C64002C99BD /* stat_sys_signal_2.png in Resources */, + 1AE0A4A014AC5C64002C99BD /* stat_sys_signal_3.png in Resources */, + 1AE0A4A214AC5C64002C99BD /* stat_sys_signal_4.png in Resources */, + 340A75B014C0670B006AA708 /* ConferenceCallDetailView-ipad.xib in Resources */, + 3418843714C58BB100EA48C7 /* nowebcamCIF.jpg in Resources */, + 3418844A14C6CAD300EA48C7 /* StatusSubViewController.xib in Resources */, + 3418844D14C6D1CE00EA48C7 /* startcall-gray.png in Resources */, + 3418845314C6F66F00EA48C7 /* status_green.png in Resources */, + 3418845714C6F66F00EA48C7 /* status_orange.png in Resources */, + 3418845914C6F66F00EA48C7 /* status_red.png in Resources */, + 3418845C14C7077400EA48C7 /* status_gray.png in Resources */, + 34C7646914CD51CD008E9607 /* contact_vide.png in Resources */, + 34C7646C14CD5585008E9607 /* dialer-orange.png in Resources */, + 34C7646D14CD5585008E9607 /* history-orange.png in Resources */, + 34A6ECEB14CF13CB00460C04 /* icone-linphone-72.png in Resources */, + 3485649F152C423F003FE041 /* in_call_video.png in Resources */, + 348564A0152C423F003FE041 /* out_call_video.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22D8F11E147548E2008C97DB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1168,6 +1485,42 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 1D60588E0D05DD3D006BFB54 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, + 1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */, + 22F2508E107141E100AC9B3F /* PhoneViewController.m in Sources */, + 22B5EFE510CE5E5800777D97 /* ContactPickerDelegate.m in Sources */, + 227BCDC210D4004600FBFD76 /* CallHistoryTableViewController.m in Sources */, + 2242D9C910D691F900E9963F /* GenericTabViewController.m in Sources */, + 22E0A822111C44E100B04932 /* MoreViewController.m in Sources */, + 22E0A824111C44E100B04932 /* ConsoleViewController.m in Sources */, + 2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */, + 2248E99F12F801C200220D9C /* LinphoneManager.m in Sources */, + 2214EB7A12F846B1002A5394 /* UICallButton.m in Sources */, + 2214EB8912F84EBB002A5394 /* UIHangUpButton.m in Sources */, + 2214EBDA12F8558F002A5394 /* UIToggleButton.m in Sources */, + 2214EBF312F86360002A5394 /* UIMuteButton.m in Sources */, + 22968A5F12F875C600588287 /* UISpeakerButton.m in Sources */, + 22968A8812F87C2000588287 /* UIDuration.m in Sources */, + 2218A92512FBE1340088A667 /* FirstLoginViewController.m in Sources */, + 22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */, + 22BB1A69132FF16A005CD7AA /* UIEraseButton.m in Sources */, + 223963171393CFAF001DE689 /* FastAddressBook.m in Sources */, + 22E028B713B4CCBD0068A713 /* VideoViewController.m in Sources */, + 22AA8B0113D83F6300B30535 /* UICamSwitch.m in Sources */, + 2211DBBE14769C8300DEE054 /* CallDelegate.m in Sources */, + 2211DBC014769CB200DEE054 /* IncallViewController.m in Sources */, + 344ABD77147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */, + 34CA8539148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */, + 3418844814C6CAD300EA48C7 /* StatusSubViewController.m in Sources */, + 340751E7150F38FD00B89C47 /* UIToggleVideoButton.m in Sources */, + 34216F401547EBCD00EA9777 /* VideoZoomHandler.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22D8F143147548E2008C97DB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1196,10 +1549,11 @@ 22D8F159147548E2008C97DB /* UICamSwitch.m in Sources */, 2211DBBF14769C8300DEE054 /* CallDelegate.m in Sources */, 2211DBC114769CB300DEE054 /* IncallViewController.m in Sources */, - 22D817AE147A9F33001CFB9C /* UIAddVideoButton.m in Sources */, 344ABD78147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */, 34CA853A148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */, 3418844914C6CAD300EA48C7 /* StatusSubViewController.m in Sources */, + 340751E8150F38FD00B89C47 /* UIToggleVideoButton.m in Sources */, + 34216F411547EBCD00EA9777 /* VideoZoomHandler.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1217,11 +1571,59 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 1D6058940D05DD3E006BFB54 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD_32_BIT)", + armv6, + ); + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = linphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + IN_LINPHONE, + VIDEO_ENABLED, + HAVE_X264, + HAVE_SILK, + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + HEADER_SEARCH_PATHS = ( + submodules/linphone/coreapi, + submodules/linphone/mediastreamer2/include, + submodules/linphone/mediastreamer2/include, + submodules/linphone/oRTP/include, + submodules/externals/gsm/, + submodules/externals/osip/include, + submodules/externals/exosip/include, + submodules/externals/speex/include, + ); + INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + LIBRARY_SEARCH_PATHS = ( + "$(BUILT_PRODUCTS_DIR)", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + ); + ORDER_FILE = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = linphone; + SDKROOT = iphoneos; + STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; 228B19A61302902F00F154D3 /* DistributionAdhoc */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: jehan monnier (E8MYPN2NXL)"; + CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -1229,12 +1631,60 @@ IPHONEOS_DEPLOYMENT_TARGET = 3.1; LIBRARY_SEARCH_PATHS = ""; LINK_WITH_STANDARD_LIBRARIES = YES; - PREBINDING = NO; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = "DD608A20-B0EC-49C6-BFD1-815C97DF3844"; + PROVISIONING_PROFILE = "32E63D15-36ED-474A-8157-8DD0770DF063"; SDKROOT = iphoneos; }; name = DistributionAdhoc; }; + 228B19A71302902F00F154D3 /* DistributionAdhoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD_32_BIT)", + armv6, + ); + CODE_SIGN_ENTITLEMENTS = untitled.plist; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = linphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + IN_LINPHONE, + VIDEO_ENABLED, + HAVE_X264, + HAVE_SILK, + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + HEADER_SEARCH_PATHS = ( + submodules/linphone/coreapi, + submodules/linphone/mediastreamer2/include, + submodules/linphone/mediastreamer2/include, + submodules/linphone/oRTP/include, + submodules/externals/gsm/, + submodules/externals/osip/include, + submodules/externals/exosip/include, + submodules/externals/speex/include, + ); + INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + LIBRARY_SEARCH_PATHS = ( + "$(BUILT_PRODUCTS_DIR)", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + ); + ORDER_FILE = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = linphone; + SDKROOT = iphoneos; + STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DistributionAdhoc; + }; 22D8F183147548E2008C97DB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1254,7 +1704,7 @@ IN_LINPHONE, VIDEO_ENABLED, ); - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( submodules/linphone/coreapi, submodules/linphone/mediastreamer2/include, @@ -1264,17 +1714,22 @@ submodules/externals/osip/include, submodules/externals/exosip/include, submodules/externals/speex/include, - submodules/tunnel/include/, ); INFOPLIST_FILE = "linphone-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", ); ORDER_FILE = ""; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = ( + "-l", + linphone, + "-l", + mediastreamer, + "-ltunnel", + ); PRODUCT_NAME = "linphone-no-gpl-thirdparties"; PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; @@ -1291,8 +1746,7 @@ "$(ARCHS_STANDARD_32_BIT)", arm6, ); - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ""; GCC_DYNAMIC_NO_PIC = NO; @@ -1303,7 +1757,7 @@ IN_LINPHONE, VIDEO_ENABLED, ); - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( submodules/linphone/coreapi, submodules/linphone/mediastreamer2/include, @@ -1313,19 +1767,24 @@ submodules/externals/osip/include, submodules/externals/exosip/include, submodules/externals/speex/include, - submodules/tunnel/include/, ); INFOPLIST_FILE = "linphone-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", ); ORDER_FILE = ""; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = ( + "-l", + linphone, + "-l", + mediastreamer, + "-ltunnel", + ); PRODUCT_NAME = "linphone-no-gpl-thirdparties"; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1341,7 +1800,7 @@ arm6, ); CODE_SIGN_ENTITLEMENTS = untitled.plist; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ""; GCC_DYNAMIC_NO_PIC = NO; @@ -1352,7 +1811,7 @@ IN_LINPHONE, VIDEO_ENABLED, ); - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( submodules/linphone/coreapi, submodules/linphone/mediastreamer2/include, @@ -1362,19 +1821,24 @@ submodules/externals/osip/include, submodules/externals/exosip/include, submodules/externals/speex/include, - submodules/tunnel/include/, ); INFOPLIST_FILE = "linphone-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", ); ORDER_FILE = ""; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = ( + "-l", + linphone, + "-l", + mediastreamer, + "-ltunnel", + ); PRODUCT_NAME = "linphone-no-gpl-thirdparties"; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + PROVISIONING_PROFILE = "075921BC-C7D8-42E1-B864-F05FD9BF841C"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1390,7 +1854,7 @@ arm6, ); CODE_SIGN_ENTITLEMENTS = untitled.plist; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ""; GCC_DYNAMIC_NO_PIC = NO; @@ -1401,7 +1865,7 @@ IN_LINPHONE, VIDEO_ENABLED, ); - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( submodules/linphone/coreapi, submodules/linphone/mediastreamer2/include, @@ -1411,19 +1875,24 @@ submodules/externals/osip/include, submodules/externals/exosip/include, submodules/externals/speex/include, - submodules/tunnel/include/, ); INFOPLIST_FILE = "linphone-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", ); ORDER_FILE = ""; - OTHER_LDFLAGS = ""; + OTHER_LDFLAGS = ( + "-l", + linphone, + "-l", + mediastreamer, + "-ltunnel", + ); PRODUCT_NAME = "linphone-no-gpl-thirdparties"; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + PROVISIONING_PROFILE = "7EBE410C-11B9-4346-9977-2C3BEE43ED16"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1434,7 +1903,7 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -1442,16 +1911,66 @@ IPHONEOS_DEPLOYMENT_TARGET = 3.1; LIBRARY_SEARCH_PATHS = ""; LINK_WITH_STANDARD_LIBRARIES = YES; - PREBINDING = NO; + PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; }; name = Release; }; + 22F3D55613CC3C9100A0DA02 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD_32_BIT)", + armv6, + ); + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = linphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + IN_LINPHONE, + VIDEO_ENABLED, + HAVE_X264, + HAVE_SILK, + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + HEADER_SEARCH_PATHS = ( + submodules/linphone/coreapi, + submodules/linphone/mediastreamer2/include, + submodules/linphone/mediastreamer2/include, + submodules/linphone/oRTP/include, + submodules/externals/gsm/, + submodules/externals/osip/include, + submodules/externals/exosip/include, + submodules/externals/speex/include, + ); + INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + LIBRARY_SEARCH_PATHS = ( + "$(BUILT_PRODUCTS_DIR)", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + ); + ORDER_FILE = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = linphone; + PROVISIONING_PROFILE = ""; + SDKROOT = iphoneos; + STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; 22F51EE7107FA53D00F98953 /* Distribution */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: jehan monnier"; + CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -1459,17 +1978,65 @@ IPHONEOS_DEPLOYMENT_TARGET = 3.1; LIBRARY_SEARCH_PATHS = ""; LINK_WITH_STANDARD_LIBRARIES = YES; - PREBINDING = NO; - "PROVISIONING_PROFILE[sdk=iphoneos*]" = "09801E17-63DB-47FD-A203-166EDD1E55A1"; + PROVISIONING_PROFILE = "075921BC-C7D8-42E1-B864-F05FD9BF841C"; SDKROOT = iphoneos; }; name = Distribution; }; + 22F51EE8107FA53D00F98953 /* Distribution */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + "$(ARCHS_STANDARD_32_BIT)", + armv6, + ); + CODE_SIGN_ENTITLEMENTS = untitled.plist; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = linphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + IN_LINPHONE, + VIDEO_ENABLED, + HAVE_X264, + HAVE_SILK, + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = com.apple.compilers.llvmgcc42; + HEADER_SEARCH_PATHS = ( + submodules/linphone/coreapi, + submodules/linphone/mediastreamer2/include, + submodules/linphone/mediastreamer2/include, + submodules/linphone/oRTP/include, + submodules/externals/gsm/, + submodules/externals/osip/include, + submodules/externals/exosip/include, + submodules/externals/speex/include, + ); + INFOPLIST_FILE = "linphone-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + LIBRARY_SEARCH_PATHS = ( + "$(BUILT_PRODUCTS_DIR)", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", + "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + ); + ORDER_FILE = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = linphone; + SDKROOT = iphoneos; + STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Distribution; + }; C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = c99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -1477,7 +2044,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 3.1; LIBRARY_SEARCH_PATHS = ""; LINK_WITH_STANDARD_LIBRARIES = YES; - PREBINDING = NO; + PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; }; name = Debug; @@ -1485,6 +2052,17 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "linphone" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1D6058940D05DD3E006BFB54 /* Debug */, + 22F3D55613CC3C9100A0DA02 /* Release */, + 22F51EE8107FA53D00F98953 /* Distribution */, + 228B19A71302902F00F154D3 /* DistributionAdhoc */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; 22D8F182147548E2008C97DB /* Build configuration list for PBXNativeTarget "linphone-no-gpl-thirdparties" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/linphonerc b/linphonerc index ef80ec31e..6dd0d69b0 100644 --- a/linphonerc +++ b/linphonerc @@ -45,4 +45,5 @@ capture=1 show_local=0 enabled=1 size=qvga +display_filter_auto_rotate=1 diff --git a/linphonerc-ipad b/linphonerc-ipad index 402f17b15..f537c1ee1 100644 --- a/linphonerc-ipad +++ b/linphonerc-ipad @@ -44,4 +44,5 @@ capture=1 show_local=0 enabled=1 size=vga +display_filter_auto_rotate=1 diff --git a/nogpl-thirdparties/.DS_Store b/nogpl-thirdparties/.DS_Store deleted file mode 100644 index 6e81d9c84..000000000 Binary files a/nogpl-thirdparties/.DS_Store and /dev/null differ diff --git a/nogpl-thirdparties/Settings.bundle/Advanced.plist b/nogpl-thirdparties/Settings.bundle/Advanced.plist index 4aad4e2a9..c4d0b1f69 100644 --- a/nogpl-thirdparties/Settings.bundle/Advanced.plist +++ b/nogpl-thirdparties/Settings.bundle/Advanced.plist @@ -4,6 +4,20 @@ PreferenceSpecifiers + + Key + stun_preference + Title + Stun server + Type + PSTextFieldSpecifier + AutocapitalizationType + None + AutocorrectionType + No + DefaultValue + + DefaultValue diff --git a/submodules/build/Makefile b/submodules/build/Makefile index 67f2bd100..8bf87fb14 100644 --- a/submodules/build/Makefile +++ b/submodules/build/Makefile @@ -21,8 +21,19 @@ ############################################################################ enable_gpl_third_parties=no +enable_zrtp=no + +.NOTPARALLEL all: check_options build warning +ifeq ($(enable_gpl_third_parties)$(enable_zrtp),noyes) +check_options: + @echo "ZRTP is not available in non-gpl build." + @exit -1 +else +check_options: + +endif + -.NOTPARALLEL all: build warning ifeq ($(enable_gpl_third_parties),yes) warning: @echo @@ -42,10 +53,12 @@ warning: @echo "*****************************************************************" endif +LINPHONE_OPTIONS=enable_gpl_third_parties=$(enable_gpl_third_parties) enable_zrtp=$(enable_zrtp) + build: - make -f builder-iphone-os.mk all enable_gpl_third_parties=$(enable_gpl_third_parties) \ - && make -f builder-iphone-simulator.mk all enable_gpl_third_parties=$(enable_gpl_third_parties)\ - && make -f builder-iphone-os.mk host=armv7-apple-darwin all enable_gpl_third_parties=$(enable_gpl_third_parties)\ + make -f builder-iphone-os.mk $(LINPHONE_OPTIONS) all \ + && make -f builder-iphone-simulator.mk $(LINPHONE_OPTIONS) all \ + && make -f builder-iphone-os.mk host=armv7-apple-darwin $(LINPHONE_OPTIONS) all \ && make -f builder-iphone-os.mk delivery-sdk ipa: build @@ -68,3 +81,4 @@ veryclean: make -f builder-iphone-simulator.mk veryclean\ && make -f builder-iphone-os.mk veryclean\ && make -f builder-iphone-os.mk host=armv7-apple-darwin veryclean + diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk index b34ee547c..dd27edcc0 100644 --- a/submodules/build/builder-iphone-os.mk +++ b/submodules/build/builder-iphone-os.mk @@ -39,6 +39,12 @@ linphone_configure_controls= \ --enable-tunnel \ --with-srtp=$(prefix) +ifeq ($(enable_zrtp),yes) + linphone_configure_controls+= --enable-zrtp +else + linphone_configure_controls+= --disable-zrtp +endif + #path BUILDER_SRC_DIR?=$(shell pwd)/../ BUILDER_BUILD_DIR?=$(shell pwd)/../build-$(host) @@ -61,11 +67,11 @@ $(LINPHONE_BUILD_DIR)/disable_gpl_third_parties: cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile ifeq ($(enable_gpl_third_parties),yes) -linphone_configure_controls+= --enable-ffmpeg --enable-zrtp +linphone_configure_controls+= --enable-ffmpeg detect_gpl_mode_switch: $(LINPHONE_BUILD_DIR)/enable_gpl_third_parties else -linphone_configure_controls+= --disable-ffmpeg --disable-zrtp +linphone_configure_controls+= --disable-ffmpeg detect_gpl_mode_switch: $(LINPHONE_BUILD_DIR)/disable_gpl_third_parties endif diff --git a/submodules/externals/exosip b/submodules/externals/exosip index 12dde4bdc..014f5a021 160000 --- a/submodules/externals/exosip +++ b/submodules/externals/exosip @@ -1 +1 @@ -Subproject commit 12dde4bdc18ee6dddbb6ff407345ede5a277936d +Subproject commit 014f5a021ad4a0c024088edbb721f144a6f96699 diff --git a/submodules/liblinphone.xcodeproj/project.pbxproj b/submodules/liblinphone.xcodeproj/project.pbxproj index abfe772fc..60ac546ec 100644 --- a/submodules/liblinphone.xcodeproj/project.pbxproj +++ b/submodules/liblinphone.xcodeproj/project.pbxproj @@ -3,14 +3,11 @@ archiveVersion = 1; classes = { }; - objectVersion = 45; + objectVersion = 46; objects = { /* Begin PBXBuildFile section */ - 2203126F139F61990049A2ED /* ioscapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 22D15AB3139F505400C7713A /* ioscapture.m */; }; 2203127213A247B50049A2ED /* iosdisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2203127013A247B40049A2ED /* iosdisplay.h */; }; - 2203127313A247B50049A2ED /* iosdisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = 2203127113A247B40049A2ED /* iosdisplay.m */; }; - 2203127613A249F70049A2ED /* filter-template.c in Sources */ = {isa = PBXBuildFile; fileRef = 2203127413A249F70049A2ED /* filter-template.c */; }; 220ED19A13A8F87700AC21E0 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220ED19713A8F87700AC21E0 /* libspeexdsp.a */; }; 220ED19B13A8F87700AC21E0 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220ED19813A8F87700AC21E0 /* libspeex.a */; }; 220ED19C13A8F87700AC21E0 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220ED19913A8F87700AC21E0 /* libortp.a */; }; @@ -21,19 +18,19 @@ 220ED1A713A9040700AC21E0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 220ED1A613A9040700AC21E0 /* AudioToolbox.framework */; }; 220ED1A913A9041800AC21E0 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 220ED1A813A9041800AC21E0 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 220ED1AC13A9062600AC21E0 /* nowebcam.h in Headers */ = {isa = PBXBuildFile; fileRef = 220ED1AA13A9062500AC21E0 /* nowebcam.h */; }; - 220ED1AD13A9062600AC21E0 /* nowebcam.c in Sources */ = {isa = PBXBuildFile; fileRef = 220ED1AB13A9062500AC21E0 /* nowebcam.c */; }; - 2211DB9C1476539600DEE054 /* l16.c in Sources */ = {isa = PBXBuildFile; fileRef = 2211DB9B1476539600DEE054 /* l16.c */; }; 2211DB9F14765CED00DEE054 /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB9E14765CEC00DEE054 /* libmssilk.a */; }; 2211DBA1147660BB00DEE054 /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DBA0147660BB00DEE054 /* libSKP_SILK_SDK.a */; }; - 221F589C13AB4FC500D603C9 /* msvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F589B13AB4FC500D603C9 /* msvideo.c */; }; + 221DCB4D1529E2EB0025E54D /* msiounit.m in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60511F6CF7600621220 /* msiounit.m */; }; + 221DCB561529FE660025E54D /* linphonecall.c in Sources */ = {isa = PBXBuildFile; fileRef = 225D3559124B1FF60008581C /* linphonecall.c */; }; + 221DCB57152A07050025E54D /* ec-calibrator.c in Sources */ = {isa = PBXBuildFile; fileRef = 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */; }; + 221DCB6815347EF80025E54D /* opengles_display.c in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6715347EF80025E54D /* opengles_display.c */; }; + 221DCB6915347EF80025E54D /* opengles_display.c in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6715347EF80025E54D /* opengles_display.c */; }; + 221DCB6C153584410025E54D /* yuv2rgb.fs in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6A153584410025E54D /* yuv2rgb.fs */; }; + 221DCB6D153584410025E54D /* yuv2rgb.fs in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6A153584410025E54D /* yuv2rgb.fs */; }; + 221DCB6E153584410025E54D /* yuv2rgb.vs in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6B153584410025E54D /* yuv2rgb.vs */; }; + 221DCB6F153584410025E54D /* yuv2rgb.vs in Sources */ = {isa = PBXBuildFile; fileRef = 221DCB6B153584410025E54D /* yuv2rgb.vs */; }; 221F58A013AB50F800D603C9 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 221F589F13AB50F800D603C9 /* CoreMedia.framework */; }; - 221F58A213AB6F8100D603C9 /* pixconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A113AB6F8000D603C9 /* pixconv.c */; }; 221F58A413AB708C00D603C9 /* alldescs.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58A313AB708C00D603C9 /* alldescs.h */; }; - 221F58A813AB716400D603C9 /* tonedetector.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A513AB716300D603C9 /* tonedetector.c */; }; - 221F58A913AB716400D603C9 /* jpegwriter.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A613AB716300D603C9 /* jpegwriter.c */; }; - 221F58AA13AB716400D603C9 /* h264dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A713AB716300D603C9 /* h264dec.c */; }; - 221F58AC13AB71A400D603C9 /* sizeconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58AB13AB71A400D603C9 /* sizeconv.c */; }; - 221F58AE13ABA42800D603C9 /* scaler.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58AD13ABA42800D603C9 /* scaler.c */; }; 221F58E413AF44B300D603C9 /* scaler.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58E313AF44B300D603C9 /* scaler.h */; }; 222CA63211F6CF7600621220 /* allfilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BE11F6CF7600621220 /* allfilters.h */; }; 222CA63311F6CF7600621220 /* dsptools.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BF11F6CF7600621220 /* dsptools.h */; }; @@ -64,47 +61,12 @@ 222CA64C11F6CF7600621220 /* rfc3984.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DA11F6CF7600621220 /* rfc3984.h */; }; 222CA64D11F6CF7600621220 /* waveheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DB11F6CF7600621220 /* waveheader.h */; }; 222CA64E11F6CF7600621220 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DE11F6CF7600621220 /* _kiss_fft_guts.h */; }; - 222CA64F11F6CF7600621220 /* alaw.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5DF11F6CF7600621220 /* alaw.c */; }; - 222CA65311F6CF7600621220 /* audiomixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E311F6CF7600621220 /* audiomixer.c */; }; - 222CA65411F6CF7600621220 /* audiostream.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E411F6CF7600621220 /* audiostream.c */; }; - 222CA65511F6CF7600621220 /* chanadapt.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E511F6CF7600621220 /* chanadapt.c */; }; - 222CA65711F6CF7600621220 /* dsptools.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E711F6CF7600621220 /* dsptools.c */; }; - 222CA65811F6CF7600621220 /* dtmfgen.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E811F6CF7600621220 /* dtmfgen.c */; }; - 222CA65B11F6CF7600621220 /* equalizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5EB11F6CF7600621220 /* equalizer.c */; }; - 222CA65C11F6CF7600621220 /* eventqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5EC11F6CF7600621220 /* eventqueue.c */; }; - 222CA65D11F6CF7600621220 /* extdisplay.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5ED11F6CF7600621220 /* extdisplay.c */; }; 222CA65E11F6CF7600621220 /* ffmpeg-priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EE11F6CF7600621220 /* ffmpeg-priv.h */; }; 222CA65F11F6CF7600621220 /* g711common.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EF11F6CF7600621220 /* g711common.h */; }; - 222CA66011F6CF7600621220 /* gsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F011F6CF7600621220 /* gsm.c */; }; - 222CA66211F6CF7600621220 /* ice.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F211F6CF7600621220 /* ice.c */; }; - 222CA66311F6CF7600621220 /* itc.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F311F6CF7600621220 /* itc.c */; }; - 222CA66411F6CF7600621220 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F411F6CF7600621220 /* kiss_fft.c */; }; 222CA66511F6CF7600621220 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F511F6CF7600621220 /* kiss_fft.h */; }; - 222CA66611F6CF7600621220 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F611F6CF7600621220 /* kiss_fftr.c */; }; 222CA66711F6CF7600621220 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F711F6CF7600621220 /* kiss_fftr.h */; }; - 222CA66911F6CF7600621220 /* mire.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FB11F6CF7600621220 /* mire.c */; }; - 222CA66B11F6CF7600621220 /* mscommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FD11F6CF7600621220 /* mscommon.c */; }; - 222CA66C11F6CF7600621220 /* msconf.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FE11F6CF7600621220 /* msconf.c */; }; - 222CA66E11F6CF7600621220 /* msfileplayer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60011F6CF7600621220 /* msfileplayer.c */; }; - 222CA67011F6CF7600621220 /* msfilerec.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60211F6CF7600621220 /* msfilerec.c */; }; - 222CA67211F6CF7600621220 /* msfilter.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60411F6CF7600621220 /* msfilter.c */; }; - 222CA67311F6CF7600621220 /* msiounit.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60511F6CF7600621220 /* msiounit.c */; }; - 222CA67411F6CF7600621220 /* msjoin.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60611F6CF7600621220 /* msjoin.c */; }; - 222CA67511F6CF7600621220 /* msqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60711F6CF7600621220 /* msqueue.c */; }; - 222CA67611F6CF7600621220 /* msresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60811F6CF7600621220 /* msresample.c */; }; - 222CA67711F6CF7600621220 /* msrtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60911F6CF7600621220 /* msrtp.c */; }; - 222CA67811F6CF7600621220 /* mssndcard.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60A11F6CF7600621220 /* mssndcard.c */; }; - 222CA67911F6CF7600621220 /* msspeex.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60B11F6CF7600621220 /* msspeex.c */; }; - 222CA67A11F6CF7600621220 /* msticker.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60C11F6CF7600621220 /* msticker.c */; }; - 222CA67F11F6CF7600621220 /* msvolume.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61111F6CF7600621220 /* msvolume.c */; }; - 222CA68111F6CF7600621220 /* mtu.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61311F6CF7600621220 /* mtu.c */; }; 222CA68811F6CF7600621220 /* rfc2429.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA61B11F6CF7600621220 /* rfc2429.h */; }; - 222CA68911F6CF7600621220 /* rfc3984.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61C11F6CF7600621220 /* rfc3984.c */; }; - 222CA68C11F6CF7600621220 /* speexec.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61F11F6CF7600621220 /* speexec.c */; }; - 222CA68E11F6CF7600621220 /* tee.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62111F6CF7600621220 /* tee.c */; }; - 222CA69011F6CF7600621220 /* ulaw.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62311F6CF7600621220 /* ulaw.c */; }; 222CA69111F6CF7600621220 /* vfw-missing.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA62411F6CF7600621220 /* vfw-missing.h */; }; - 222CA69611F6CF7600621220 /* void.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62911F6CF7600621220 /* void.c */; }; 222CA6F411F6CF9F00621220 /* b64.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A511F6CF9F00621220 /* b64.h */; }; 222CA6F511F6CF9F00621220 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A611F6CF9F00621220 /* event.h */; }; 222CA6F611F6CF9F00621220 /* ortp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A911F6CF9F00621220 /* ortp.h */; }; @@ -120,33 +82,11 @@ 222CA70011F6CF9F00621220 /* stun.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B311F6CF9F00621220 /* stun.h */; }; 222CA70111F6CF9F00621220 /* stun_udp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B411F6CF9F00621220 /* stun_udp.h */; }; 222CA70211F6CF9F00621220 /* telephonyevents.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B511F6CF9F00621220 /* telephonyevents.h */; }; - 222CA70311F6CF9F00621220 /* avprofile.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6B811F6CF9F00621220 /* avprofile.c */; }; - 222CA70411F6CF9F00621220 /* b64.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6B911F6CF9F00621220 /* b64.c */; }; - 222CA70611F6CF9F00621220 /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6BB11F6CF9F00621220 /* event.c */; }; - 222CA70711F6CF9F00621220 /* jitterctl.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6BC11F6CF9F00621220 /* jitterctl.c */; }; 222CA70811F6CF9F00621220 /* jitterctl.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6BD11F6CF9F00621220 /* jitterctl.h */; }; 222CA70911F6CF9F00621220 /* ortp-config-win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6C111F6CF9F00621220 /* ortp-config-win32.h */; }; - 222CA70A11F6CF9F00621220 /* ortp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C211F6CF9F00621220 /* ortp.c */; }; - 222CA70B11F6CF9F00621220 /* payloadtype.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C311F6CF9F00621220 /* payloadtype.c */; }; - 222CA70C11F6CF9F00621220 /* port.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C411F6CF9F00621220 /* port.c */; }; - 222CA70D11F6CF9F00621220 /* posixtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C511F6CF9F00621220 /* posixtimer.c */; }; - 222CA70E11F6CF9F00621220 /* rtcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C611F6CF9F00621220 /* rtcp.c */; }; - 222CA70F11F6CF9F00621220 /* rtcpparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C711F6CF9F00621220 /* rtcpparse.c */; }; - 222CA71011F6CF9F00621220 /* rtpparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C811F6CF9F00621220 /* rtpparse.c */; }; - 222CA71111F6CF9F00621220 /* rtpsession.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C911F6CF9F00621220 /* rtpsession.c */; }; - 222CA71211F6CF9F00621220 /* rtpsession_inet.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CA11F6CF9F00621220 /* rtpsession_inet.c */; }; 222CA71311F6CF9F00621220 /* rtpsession_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CB11F6CF9F00621220 /* rtpsession_priv.h */; }; - 222CA71411F6CF9F00621220 /* rtpsignaltable.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CC11F6CF9F00621220 /* rtpsignaltable.c */; }; - 222CA71511F6CF9F00621220 /* rtptimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CD11F6CF9F00621220 /* rtptimer.c */; }; 222CA71611F6CF9F00621220 /* rtptimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CE11F6CF9F00621220 /* rtptimer.h */; }; - 222CA71711F6CF9F00621220 /* scheduler.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CF11F6CF9F00621220 /* scheduler.c */; }; 222CA71811F6CF9F00621220 /* scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6D011F6CF9F00621220 /* scheduler.h */; }; - 222CA71911F6CF9F00621220 /* sessionset.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D111F6CF9F00621220 /* sessionset.c */; }; - 222CA71B11F6CF9F00621220 /* str_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D311F6CF9F00621220 /* str_utils.c */; }; - 222CA71C11F6CF9F00621220 /* stun.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D411F6CF9F00621220 /* stun.c */; }; - 222CA71D11F6CF9F00621220 /* stun_udp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D511F6CF9F00621220 /* stun_udp.c */; }; - 222CA71E11F6CF9F00621220 /* telephonyevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D711F6CF9F00621220 /* telephonyevents.c */; }; - 222CA72B11F6CF9F00621220 /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6F211F6CF9F00621220 /* utils.c */; }; 222CA72C11F6CF9F00621220 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6F311F6CF9F00621220 /* utils.h */; }; 222CA76511F6CFB100621220 /* address.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA72F11F6CFB100621220 /* address.c */; }; 222CA76611F6CFB100621220 /* authentication.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA73011F6CFB100621220 /* authentication.c */; }; @@ -174,35 +114,279 @@ 222CA78411F6CFB100621220 /* siplogin.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA76211F6CFB100621220 /* siplogin.c */; }; 222CA78511F6CFB100621220 /* sipsetup.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA76311F6CFB100621220 /* sipsetup.c */; }; 222CA78611F6CFB100621220 /* sipsetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA76411F6CFB100621220 /* sipsetup.h */; }; - 22512699145F13CE0041FBF2 /* aqsnd.c in Sources */ = {isa = PBXBuildFile; fileRef = 22512698145F13CE0041FBF2 /* aqsnd.c */; }; - 2252935B12F6CA4700DD9BFB /* ec-calibrator.c in Sources */ = {isa = PBXBuildFile; fileRef = 2252935A12F6CA4700DD9BFB /* ec-calibrator.c */; }; 2258C44113A9377B0087A596 /* swscale.h in Headers */ = {isa = PBXBuildFile; fileRef = 2258C44013A9377B0087A596 /* swscale.h */; }; 2258C44513A945520087A596 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2258C44213A945520087A596 /* libswscale.a */; }; 2258C44613A945520087A596 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2258C44313A945520087A596 /* libavutil.a */; }; 2258C44713A945520087A596 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2258C44413A945520087A596 /* libavcodec.a */; }; - 2258C44B13A946890087A596 /* videostream.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44813A946890087A596 /* videostream.c */; }; - 2258C44C13A946890087A596 /* videoenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44913A946890087A596 /* videoenc.c */; }; - 2258C44D13A946890087A596 /* videodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44A13A946890087A596 /* videodec.c */; }; - 225D355A124B1FF60008581C /* linphonecall.c in Sources */ = {isa = PBXBuildFile; fileRef = 225D3559124B1FF60008581C /* linphonecall.c */; }; - 2295130614A1FBE30007EE98 /* linphone_tunnel_manager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2295130414A1FBE30007EE98 /* linphone_tunnel_manager.cc */; }; - 2295130714A1FBE30007EE98 /* TunnelManager.cc in Sources */ = {isa = PBXBuildFile; fileRef = 2295130514A1FBE30007EE98 /* TunnelManager.cc */; }; - 229A614D13DDFE3500090183 /* g722_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614913DDFE3500090183 /* g722_decode.c */; }; - 229A614E13DDFE3500090183 /* g722_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614A13DDFE3500090183 /* g722_encode.c */; }; + 225D642F1521BFA6008B2E81 /* liblinphone_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* liblinphone_Prefix.pch */; }; + 225D64301521BFA6008B2E81 /* allfilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BE11F6CF7600621220 /* allfilters.h */; }; + 225D64311521BFA6008B2E81 /* dsptools.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BF11F6CF7600621220 /* dsptools.h */; }; + 225D64321521BFA6008B2E81 /* dtmfgen.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C011F6CF7600621220 /* dtmfgen.h */; }; + 225D64331521BFA6008B2E81 /* ice.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C111F6CF7600621220 /* ice.h */; }; + 225D64341521BFA6008B2E81 /* mediastream.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C411F6CF7600621220 /* mediastream.h */; }; + 225D64351521BFA6008B2E81 /* msaudiomixer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C511F6CF7600621220 /* msaudiomixer.h */; }; + 225D64361521BFA6008B2E81 /* mschanadapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C611F6CF7600621220 /* mschanadapter.h */; }; + 225D64371521BFA6008B2E81 /* mscommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C711F6CF7600621220 /* mscommon.h */; }; + 225D64381521BFA6008B2E81 /* msequalizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C811F6CF7600621220 /* msequalizer.h */; }; + 225D64391521BFA6008B2E81 /* mseventqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C911F6CF7600621220 /* mseventqueue.h */; }; + 225D643A1521BFA6008B2E81 /* msextdisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CA11F6CF7600621220 /* msextdisplay.h */; }; + 225D643B1521BFA6008B2E81 /* msfileplayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CB11F6CF7600621220 /* msfileplayer.h */; }; + 225D643C1521BFA6008B2E81 /* msfilerec.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CC11F6CF7600621220 /* msfilerec.h */; }; + 225D643D1521BFA6008B2E81 /* msfilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CD11F6CF7600621220 /* msfilter.h */; }; + 225D643E1521BFA6008B2E81 /* msinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CE11F6CF7600621220 /* msinterfaces.h */; }; + 225D643F1521BFA6008B2E81 /* msitc.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CF11F6CF7600621220 /* msitc.h */; }; + 225D64401521BFA6008B2E81 /* msqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D011F6CF7600621220 /* msqueue.h */; }; + 225D64411521BFA6008B2E81 /* msrtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D111F6CF7600621220 /* msrtp.h */; }; + 225D64421521BFA6008B2E81 /* mssndcard.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D211F6CF7600621220 /* mssndcard.h */; }; + 225D64431521BFA6008B2E81 /* mstee.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D311F6CF7600621220 /* mstee.h */; }; + 225D64441521BFA6008B2E81 /* msticker.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D411F6CF7600621220 /* msticker.h */; }; + 225D64451521BFA6008B2E81 /* msv4l.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D511F6CF7600621220 /* msv4l.h */; }; + 225D64461521BFA6008B2E81 /* msvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D611F6CF7600621220 /* msvideo.h */; }; + 225D64471521BFA6008B2E81 /* msvideoout.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D711F6CF7600621220 /* msvideoout.h */; }; + 225D64481521BFA6008B2E81 /* msvolume.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D811F6CF7600621220 /* msvolume.h */; }; + 225D64491521BFA6008B2E81 /* mswebcam.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D911F6CF7600621220 /* mswebcam.h */; }; + 225D644A1521BFA6008B2E81 /* rfc3984.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DA11F6CF7600621220 /* rfc3984.h */; }; + 225D644B1521BFA6008B2E81 /* waveheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DB11F6CF7600621220 /* waveheader.h */; }; + 225D644C1521BFA6008B2E81 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DE11F6CF7600621220 /* _kiss_fft_guts.h */; }; + 225D644D1521BFA6008B2E81 /* ffmpeg-priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EE11F6CF7600621220 /* ffmpeg-priv.h */; }; + 225D644E1521BFA6008B2E81 /* g711common.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EF11F6CF7600621220 /* g711common.h */; }; + 225D644F1521BFA6008B2E81 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F511F6CF7600621220 /* kiss_fft.h */; }; + 225D64501521BFA6008B2E81 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F711F6CF7600621220 /* kiss_fftr.h */; }; + 225D64511521BFA6008B2E81 /* rfc2429.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA61B11F6CF7600621220 /* rfc2429.h */; }; + 225D64521521BFA6008B2E81 /* vfw-missing.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA62411F6CF7600621220 /* vfw-missing.h */; }; + 225D64531521BFA6008B2E81 /* b64.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A511F6CF9F00621220 /* b64.h */; }; + 225D64541521BFA6008B2E81 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A611F6CF9F00621220 /* event.h */; }; + 225D64551521BFA6008B2E81 /* ortp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A911F6CF9F00621220 /* ortp.h */; }; + 225D64561521BFA6008B2E81 /* payloadtype.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AA11F6CF9F00621220 /* payloadtype.h */; }; + 225D64571521BFA6008B2E81 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AB11F6CF9F00621220 /* port.h */; }; + 225D64581521BFA6008B2E81 /* rtcp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AC11F6CF9F00621220 /* rtcp.h */; }; + 225D64591521BFA6008B2E81 /* rtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AD11F6CF9F00621220 /* rtp.h */; }; + 225D645A1521BFA6008B2E81 /* rtpsession.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AE11F6CF9F00621220 /* rtpsession.h */; }; + 225D645B1521BFA6008B2E81 /* rtpsignaltable.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AF11F6CF9F00621220 /* rtpsignaltable.h */; }; + 225D645C1521BFA6008B2E81 /* sessionset.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B011F6CF9F00621220 /* sessionset.h */; }; + 225D645D1521BFA6008B2E81 /* srtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B111F6CF9F00621220 /* srtp.h */; }; + 225D645E1521BFA6008B2E81 /* str_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B211F6CF9F00621220 /* str_utils.h */; }; + 225D645F1521BFA6008B2E81 /* stun.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B311F6CF9F00621220 /* stun.h */; }; + 225D64601521BFA6008B2E81 /* stun_udp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B411F6CF9F00621220 /* stun_udp.h */; }; + 225D64611521BFA6008B2E81 /* telephonyevents.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B511F6CF9F00621220 /* telephonyevents.h */; }; + 225D64621521BFA6008B2E81 /* jitterctl.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6BD11F6CF9F00621220 /* jitterctl.h */; }; + 225D64631521BFA6008B2E81 /* ortp-config-win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6C111F6CF9F00621220 /* ortp-config-win32.h */; }; + 225D64641521BFA6008B2E81 /* rtpsession_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CB11F6CF9F00621220 /* rtpsession_priv.h */; }; + 225D64651521BFA6008B2E81 /* rtptimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CE11F6CF9F00621220 /* rtptimer.h */; }; + 225D64661521BFA6008B2E81 /* scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6D011F6CF9F00621220 /* scheduler.h */; }; + 225D64671521BFA6008B2E81 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6F311F6CF9F00621220 /* utils.h */; }; + 225D64681521BFA6008B2E81 /* enum.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA73411F6CFB100621220 /* enum.h */; }; + 225D64691521BFA6008B2E81 /* linphonecore.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74011F6CFB100621220 /* linphonecore.h */; }; + 225D646A1521BFA6008B2E81 /* lpconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74311F6CFB100621220 /* lpconfig.h */; }; + 225D646B1521BFA6008B2E81 /* offeranswer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74811F6CFB100621220 /* offeranswer.h */; }; + 225D646C1521BFA6008B2E81 /* private.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75811F6CFB100621220 /* private.h */; }; + 225D646D1521BFA6008B2E81 /* sal.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75B11F6CFB100621220 /* sal.h */; }; + 225D646E1521BFA6008B2E81 /* sal_eXosip2.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75D11F6CFB100621220 /* sal_eXosip2.h */; }; + 225D646F1521BFA6008B2E81 /* sipsetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA76411F6CFB100621220 /* sipsetup.h */; }; + 225D64701521BFA6008B2E81 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B4F11F84E2D00373793 /* config.h */; }; + 225D64711521BFA6008B2E81 /* gsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5011F84E2D00373793 /* gsm.h */; }; + 225D64721521BFA6008B2E81 /* private.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5211F84E2D00373793 /* private.h */; }; + 225D64731521BFA6008B2E81 /* proto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5311F84E2D00373793 /* proto.h */; }; + 225D64741521BFA6008B2E81 /* toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5411F84E2D00373793 /* toast.h */; }; + 225D64751521BFA6008B2E81 /* unproto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5511F84E2D00373793 /* unproto.h */; }; + 225D64761521BFA6008B2E81 /* linphonecore_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 229B9D5813043EAB00EFCD1C /* linphonecore_utils.h */; }; + 225D64771521BFA6008B2E81 /* iosdisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2203127013A247B40049A2ED /* iosdisplay.h */; }; + 225D64781521BFA6008B2E81 /* nowebcam.h in Headers */ = {isa = PBXBuildFile; fileRef = 220ED1AA13A9062500AC21E0 /* nowebcam.h */; }; + 225D64791521BFA6008B2E81 /* swscale.h in Headers */ = {isa = PBXBuildFile; fileRef = 2258C44013A9377B0087A596 /* swscale.h */; }; + 225D647A1521BFA6008B2E81 /* alldescs.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58A313AB708C00D603C9 /* alldescs.h */; }; + 225D647B1521BFA6008B2E81 /* scaler.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58E313AF44B300D603C9 /* scaler.h */; }; + 225D647C1521BFA6008B2E81 /* g722.h in Headers */ = {isa = PBXBuildFile; fileRef = 229A614B13DDFE3500090183 /* g722.h */; }; + 225D647D1521BFA6008B2E81 /* shaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E542F613E14816002BA2C0 /* shaders.h */; }; + 225D64811521BFA6008B2E81 /* zrtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 7014533B13FA7ECA00A01D86 /* zrtp.h */; }; + 225D64831521BFA6008B2E81 /* alaw.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5DF11F6CF7600621220 /* alaw.c */; }; + 225D64841521BFA6008B2E81 /* audiomixer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E311F6CF7600621220 /* audiomixer.c */; }; + 225D64851521BFA6008B2E81 /* audiostream.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E411F6CF7600621220 /* audiostream.c */; }; + 225D64861521BFA6008B2E81 /* chanadapt.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E511F6CF7600621220 /* chanadapt.c */; }; + 225D64871521BFA6008B2E81 /* dsptools.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E711F6CF7600621220 /* dsptools.c */; }; + 225D64881521BFA6008B2E81 /* dtmfgen.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5E811F6CF7600621220 /* dtmfgen.c */; }; + 225D64891521BFA6008B2E81 /* equalizer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5EB11F6CF7600621220 /* equalizer.c */; }; + 225D648A1521BFA6008B2E81 /* eventqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5EC11F6CF7600621220 /* eventqueue.c */; }; + 225D648B1521BFA6008B2E81 /* extdisplay.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5ED11F6CF7600621220 /* extdisplay.c */; }; + 225D648C1521BFA6008B2E81 /* gsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F011F6CF7600621220 /* gsm.c */; }; + 225D648D1521BFA6008B2E81 /* ice.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F211F6CF7600621220 /* ice.c */; }; + 225D648E1521BFA6008B2E81 /* itc.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F311F6CF7600621220 /* itc.c */; }; + 225D648F1521BFA6008B2E81 /* kiss_fft.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F411F6CF7600621220 /* kiss_fft.c */; }; + 225D64901521BFA6008B2E81 /* kiss_fftr.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5F611F6CF7600621220 /* kiss_fftr.c */; }; + 225D64911521BFA6008B2E81 /* mire.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FB11F6CF7600621220 /* mire.c */; }; + 225D64921521BFA6008B2E81 /* mscommon.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FD11F6CF7600621220 /* mscommon.c */; }; + 225D64931521BFA6008B2E81 /* msconf.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA5FE11F6CF7600621220 /* msconf.c */; }; + 225D64941521BFA6008B2E81 /* msfileplayer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60011F6CF7600621220 /* msfileplayer.c */; }; + 225D64951521BFA6008B2E81 /* msfilerec.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60211F6CF7600621220 /* msfilerec.c */; }; + 225D64961521BFA6008B2E81 /* msfilter.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60411F6CF7600621220 /* msfilter.c */; }; + 225D64981521BFA6008B2E81 /* msjoin.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60611F6CF7600621220 /* msjoin.c */; }; + 225D64991521BFA6008B2E81 /* msqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60711F6CF7600621220 /* msqueue.c */; }; + 225D649A1521BFA6008B2E81 /* msresample.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60811F6CF7600621220 /* msresample.c */; }; + 225D649B1521BFA6008B2E81 /* msrtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60911F6CF7600621220 /* msrtp.c */; }; + 225D649C1521BFA6008B2E81 /* mssndcard.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60A11F6CF7600621220 /* mssndcard.c */; }; + 225D649D1521BFA6008B2E81 /* msspeex.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60B11F6CF7600621220 /* msspeex.c */; }; + 225D649E1521BFA6008B2E81 /* msticker.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA60C11F6CF7600621220 /* msticker.c */; }; + 225D649F1521BFA6008B2E81 /* msvolume.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61111F6CF7600621220 /* msvolume.c */; }; + 225D64A01521BFA6008B2E81 /* mtu.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61311F6CF7600621220 /* mtu.c */; }; + 225D64A11521BFA6008B2E81 /* rfc3984.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61C11F6CF7600621220 /* rfc3984.c */; }; + 225D64A21521BFA6008B2E81 /* speexec.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA61F11F6CF7600621220 /* speexec.c */; }; + 225D64A31521BFA6008B2E81 /* tee.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62111F6CF7600621220 /* tee.c */; }; + 225D64A41521BFA6008B2E81 /* ulaw.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62311F6CF7600621220 /* ulaw.c */; }; + 225D64A51521BFA6008B2E81 /* void.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA62911F6CF7600621220 /* void.c */; }; + 225D64BC1521BFA6008B2E81 /* address.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA72F11F6CFB100621220 /* address.c */; }; + 225D64BD1521BFA6008B2E81 /* authentication.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA73011F6CFB100621220 /* authentication.c */; }; + 225D64BE1521BFA6008B2E81 /* callbacks.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA73111F6CFB100621220 /* callbacks.c */; }; + 225D64BF1521BFA6008B2E81 /* chat.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA73211F6CFB100621220 /* chat.c */; }; + 225D64CE1521BFA6008B2E81 /* mswebcam.c in Sources */ = {isa = PBXBuildFile; fileRef = 22A10EE711F8920F00373793 /* mswebcam.c */; }; + 225D64D11521BFA6008B2E81 /* ioscapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 22D15AB3139F505400C7713A /* ioscapture.m */; }; + 225D64D21521BFA6008B2E81 /* iosdisplay.m in Sources */ = {isa = PBXBuildFile; fileRef = 2203127113A247B40049A2ED /* iosdisplay.m */; }; + 225D64D31521BFA6008B2E81 /* filter-template.c in Sources */ = {isa = PBXBuildFile; fileRef = 2203127413A249F70049A2ED /* filter-template.c */; }; + 225D64D41521BFA6008B2E81 /* nowebcam.c in Sources */ = {isa = PBXBuildFile; fileRef = 220ED1AB13A9062500AC21E0 /* nowebcam.c */; }; + 225D64D51521BFA6008B2E81 /* videostream.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44813A946890087A596 /* videostream.c */; }; + 225D64D61521BFA6008B2E81 /* videoenc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44913A946890087A596 /* videoenc.c */; }; + 225D64D71521BFA6008B2E81 /* videodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2258C44A13A946890087A596 /* videodec.c */; }; + 225D64D81521BFA6008B2E81 /* msvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F589B13AB4FC500D603C9 /* msvideo.c */; }; + 225D64D91521BFA6008B2E81 /* pixconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A113AB6F8000D603C9 /* pixconv.c */; }; + 225D64DA1521BFA6008B2E81 /* tonedetector.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A513AB716300D603C9 /* tonedetector.c */; }; + 225D64DB1521BFA6008B2E81 /* jpegwriter.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A613AB716300D603C9 /* jpegwriter.c */; }; + 225D64DC1521BFA6008B2E81 /* h264dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58A713AB716300D603C9 /* h264dec.c */; }; + 225D64DD1521BFA6008B2E81 /* sizeconv.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58AB13AB71A400D603C9 /* sizeconv.c */; }; + 225D64DE1521BFA6008B2E81 /* scaler.c in Sources */ = {isa = PBXBuildFile; fileRef = 221F58AD13ABA42800D603C9 /* scaler.c */; }; + 225D64DF1521BFA6008B2E81 /* qualityindicator.c in Sources */ = {isa = PBXBuildFile; fileRef = 22FC56A713CB69FA002FD0F1 /* qualityindicator.c */; }; + 225D64E01521BFA6008B2E81 /* bitratecontrol.c in Sources */ = {isa = PBXBuildFile; fileRef = 22FC56A913CB6A4F002FD0F1 /* bitratecontrol.c */; }; + 225D64E11521BFA6008B2E81 /* g722_decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614913DDFE3500090183 /* g722_decode.c */; }; + 225D64E21521BFA6008B2E81 /* g722_encode.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614A13DDFE3500090183 /* g722_encode.c */; }; + 225D64E31521BFA6008B2E81 /* msg722.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614C13DDFE3500090183 /* msg722.c */; }; + 225D64E41521BFA6008B2E81 /* vp8.c in Sources */ = {isa = PBXBuildFile; fileRef = 7066FC0613E82A3600EFC6DC /* vp8.c */; }; + 225D64E61521BFA6008B2E81 /* shaders.c in Sources */ = {isa = PBXBuildFile; fileRef = 7014533713FA7AEA00A01D86 /* shaders.c */; }; + 225D64E81521BFA6008B2E81 /* msvideo_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEA143AEA6300D611B8 /* msvideo_neon.c */; }; + 225D64E91521BFA6008B2E81 /* conference.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEC143AEBDA00D611B8 /* conference.c */; }; + 225D64EA1521BFA6008B2E81 /* audioconference.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEE143AEC2400D611B8 /* audioconference.c */; }; + 225D64ED1521BFA6008B2E81 /* bitratedriver.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F25E14583B580035B0D0 /* bitratedriver.c */; }; + 225D64EE1521BFA6008B2E81 /* qosanalyzer.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F25F14583B580035B0D0 /* qosanalyzer.c */; }; + 225D64EF1521BFA6008B2E81 /* aqsnd.c in Sources */ = {isa = PBXBuildFile; fileRef = 22512698145F13CE0041FBF2 /* aqsnd.c */; }; + 225D64F01521BFA6008B2E81 /* l16.c in Sources */ = {isa = PBXBuildFile; fileRef = 2211DB9B1476539600DEE054 /* l16.c */; }; + 225D64F21521BFA6008B2E81 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; + 225D64F31521BFA6008B2E81 /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DBA0147660BB00DEE054 /* libSKP_SILK_SDK.a */; }; + 225D64FC1521C009008B2E81 /* liblinphone_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* liblinphone_Prefix.pch */; }; + 225D64FD1521C009008B2E81 /* allfilters.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BE11F6CF7600621220 /* allfilters.h */; }; + 225D64FE1521C009008B2E81 /* dsptools.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5BF11F6CF7600621220 /* dsptools.h */; }; + 225D64FF1521C009008B2E81 /* dtmfgen.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C011F6CF7600621220 /* dtmfgen.h */; }; + 225D65001521C009008B2E81 /* ice.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C111F6CF7600621220 /* ice.h */; }; + 225D65011521C009008B2E81 /* mediastream.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C411F6CF7600621220 /* mediastream.h */; }; + 225D65021521C009008B2E81 /* msaudiomixer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C511F6CF7600621220 /* msaudiomixer.h */; }; + 225D65031521C009008B2E81 /* mschanadapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C611F6CF7600621220 /* mschanadapter.h */; }; + 225D65041521C009008B2E81 /* mscommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C711F6CF7600621220 /* mscommon.h */; }; + 225D65051521C009008B2E81 /* msequalizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C811F6CF7600621220 /* msequalizer.h */; }; + 225D65061521C009008B2E81 /* mseventqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5C911F6CF7600621220 /* mseventqueue.h */; }; + 225D65071521C009008B2E81 /* msextdisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CA11F6CF7600621220 /* msextdisplay.h */; }; + 225D65081521C009008B2E81 /* msfileplayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CB11F6CF7600621220 /* msfileplayer.h */; }; + 225D65091521C009008B2E81 /* msfilerec.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CC11F6CF7600621220 /* msfilerec.h */; }; + 225D650A1521C009008B2E81 /* msfilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CD11F6CF7600621220 /* msfilter.h */; }; + 225D650B1521C009008B2E81 /* msinterfaces.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CE11F6CF7600621220 /* msinterfaces.h */; }; + 225D650C1521C009008B2E81 /* msitc.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5CF11F6CF7600621220 /* msitc.h */; }; + 225D650D1521C009008B2E81 /* msqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D011F6CF7600621220 /* msqueue.h */; }; + 225D650E1521C009008B2E81 /* msrtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D111F6CF7600621220 /* msrtp.h */; }; + 225D650F1521C009008B2E81 /* mssndcard.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D211F6CF7600621220 /* mssndcard.h */; }; + 225D65101521C009008B2E81 /* mstee.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D311F6CF7600621220 /* mstee.h */; }; + 225D65111521C009008B2E81 /* msticker.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D411F6CF7600621220 /* msticker.h */; }; + 225D65121521C009008B2E81 /* msv4l.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D511F6CF7600621220 /* msv4l.h */; }; + 225D65131521C009008B2E81 /* msvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D611F6CF7600621220 /* msvideo.h */; }; + 225D65141521C009008B2E81 /* msvideoout.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D711F6CF7600621220 /* msvideoout.h */; }; + 225D65151521C009008B2E81 /* msvolume.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D811F6CF7600621220 /* msvolume.h */; }; + 225D65161521C009008B2E81 /* mswebcam.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5D911F6CF7600621220 /* mswebcam.h */; }; + 225D65171521C009008B2E81 /* rfc3984.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DA11F6CF7600621220 /* rfc3984.h */; }; + 225D65181521C009008B2E81 /* waveheader.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DB11F6CF7600621220 /* waveheader.h */; }; + 225D65191521C009008B2E81 /* _kiss_fft_guts.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5DE11F6CF7600621220 /* _kiss_fft_guts.h */; }; + 225D651A1521C009008B2E81 /* ffmpeg-priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EE11F6CF7600621220 /* ffmpeg-priv.h */; }; + 225D651B1521C009008B2E81 /* g711common.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5EF11F6CF7600621220 /* g711common.h */; }; + 225D651C1521C009008B2E81 /* kiss_fft.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F511F6CF7600621220 /* kiss_fft.h */; }; + 225D651D1521C009008B2E81 /* kiss_fftr.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA5F711F6CF7600621220 /* kiss_fftr.h */; }; + 225D651E1521C009008B2E81 /* rfc2429.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA61B11F6CF7600621220 /* rfc2429.h */; }; + 225D651F1521C009008B2E81 /* vfw-missing.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA62411F6CF7600621220 /* vfw-missing.h */; }; + 225D65201521C009008B2E81 /* b64.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A511F6CF9F00621220 /* b64.h */; }; + 225D65211521C009008B2E81 /* event.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A611F6CF9F00621220 /* event.h */; }; + 225D65221521C009008B2E81 /* ortp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6A911F6CF9F00621220 /* ortp.h */; }; + 225D65231521C009008B2E81 /* payloadtype.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AA11F6CF9F00621220 /* payloadtype.h */; }; + 225D65241521C009008B2E81 /* port.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AB11F6CF9F00621220 /* port.h */; }; + 225D65251521C009008B2E81 /* rtcp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AC11F6CF9F00621220 /* rtcp.h */; }; + 225D65261521C009008B2E81 /* rtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AD11F6CF9F00621220 /* rtp.h */; }; + 225D65271521C009008B2E81 /* rtpsession.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AE11F6CF9F00621220 /* rtpsession.h */; }; + 225D65281521C009008B2E81 /* rtpsignaltable.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6AF11F6CF9F00621220 /* rtpsignaltable.h */; }; + 225D65291521C009008B2E81 /* sessionset.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B011F6CF9F00621220 /* sessionset.h */; }; + 225D652A1521C009008B2E81 /* srtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B111F6CF9F00621220 /* srtp.h */; }; + 225D652B1521C009008B2E81 /* str_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B211F6CF9F00621220 /* str_utils.h */; }; + 225D652C1521C009008B2E81 /* stun.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B311F6CF9F00621220 /* stun.h */; }; + 225D652D1521C009008B2E81 /* stun_udp.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B411F6CF9F00621220 /* stun_udp.h */; }; + 225D652E1521C009008B2E81 /* telephonyevents.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6B511F6CF9F00621220 /* telephonyevents.h */; }; + 225D652F1521C009008B2E81 /* jitterctl.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6BD11F6CF9F00621220 /* jitterctl.h */; }; + 225D65301521C009008B2E81 /* ortp-config-win32.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6C111F6CF9F00621220 /* ortp-config-win32.h */; }; + 225D65311521C009008B2E81 /* rtpsession_priv.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CB11F6CF9F00621220 /* rtpsession_priv.h */; }; + 225D65321521C009008B2E81 /* rtptimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6CE11F6CF9F00621220 /* rtptimer.h */; }; + 225D65331521C009008B2E81 /* scheduler.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6D011F6CF9F00621220 /* scheduler.h */; }; + 225D65341521C009008B2E81 /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA6F311F6CF9F00621220 /* utils.h */; }; + 225D65351521C009008B2E81 /* enum.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA73411F6CFB100621220 /* enum.h */; }; + 225D65361521C009008B2E81 /* linphonecore.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74011F6CFB100621220 /* linphonecore.h */; }; + 225D65371521C009008B2E81 /* lpconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74311F6CFB100621220 /* lpconfig.h */; }; + 225D65381521C009008B2E81 /* offeranswer.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA74811F6CFB100621220 /* offeranswer.h */; }; + 225D65391521C009008B2E81 /* private.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75811F6CFB100621220 /* private.h */; }; + 225D653A1521C009008B2E81 /* sal.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75B11F6CFB100621220 /* sal.h */; }; + 225D653B1521C009008B2E81 /* sal_eXosip2.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA75D11F6CFB100621220 /* sal_eXosip2.h */; }; + 225D653C1521C009008B2E81 /* sipsetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 222CA76411F6CFB100621220 /* sipsetup.h */; }; + 225D653D1521C009008B2E81 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B4F11F84E2D00373793 /* config.h */; }; + 225D653E1521C009008B2E81 /* gsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5011F84E2D00373793 /* gsm.h */; }; + 225D653F1521C009008B2E81 /* private.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5211F84E2D00373793 /* private.h */; }; + 225D65401521C009008B2E81 /* proto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5311F84E2D00373793 /* proto.h */; }; + 225D65411521C009008B2E81 /* toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5411F84E2D00373793 /* toast.h */; }; + 225D65421521C009008B2E81 /* unproto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5511F84E2D00373793 /* unproto.h */; }; + 225D65431521C009008B2E81 /* linphonecore_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 229B9D5813043EAB00EFCD1C /* linphonecore_utils.h */; }; + 225D65441521C009008B2E81 /* iosdisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = 2203127013A247B40049A2ED /* iosdisplay.h */; }; + 225D65451521C009008B2E81 /* nowebcam.h in Headers */ = {isa = PBXBuildFile; fileRef = 220ED1AA13A9062500AC21E0 /* nowebcam.h */; }; + 225D65461521C009008B2E81 /* swscale.h in Headers */ = {isa = PBXBuildFile; fileRef = 2258C44013A9377B0087A596 /* swscale.h */; }; + 225D65471521C009008B2E81 /* alldescs.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58A313AB708C00D603C9 /* alldescs.h */; }; + 225D65481521C009008B2E81 /* scaler.h in Headers */ = {isa = PBXBuildFile; fileRef = 221F58E313AF44B300D603C9 /* scaler.h */; }; + 225D65491521C009008B2E81 /* g722.h in Headers */ = {isa = PBXBuildFile; fileRef = 229A614B13DDFE3500090183 /* g722.h */; }; + 225D654A1521C009008B2E81 /* shaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E542F613E14816002BA2C0 /* shaders.h */; }; + 225D654E1521C009008B2E81 /* zrtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 7014533B13FA7ECA00A01D86 /* zrtp.h */; }; + 225D65731521C009008B2E81 /* avprofile.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6B811F6CF9F00621220 /* avprofile.c */; }; + 225D65741521C009008B2E81 /* b64.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6B911F6CF9F00621220 /* b64.c */; }; + 225D65751521C009008B2E81 /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6BB11F6CF9F00621220 /* event.c */; }; + 225D65761521C009008B2E81 /* jitterctl.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6BC11F6CF9F00621220 /* jitterctl.c */; }; + 225D65771521C009008B2E81 /* ortp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C211F6CF9F00621220 /* ortp.c */; }; + 225D65781521C009008B2E81 /* payloadtype.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C311F6CF9F00621220 /* payloadtype.c */; }; + 225D65791521C009008B2E81 /* port.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C411F6CF9F00621220 /* port.c */; }; + 225D657A1521C009008B2E81 /* posixtimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C511F6CF9F00621220 /* posixtimer.c */; }; + 225D657B1521C009008B2E81 /* rtcp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C611F6CF9F00621220 /* rtcp.c */; }; + 225D657C1521C009008B2E81 /* rtcpparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C711F6CF9F00621220 /* rtcpparse.c */; }; + 225D657D1521C009008B2E81 /* rtpparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C811F6CF9F00621220 /* rtpparse.c */; }; + 225D657E1521C009008B2E81 /* rtpsession.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6C911F6CF9F00621220 /* rtpsession.c */; }; + 225D657F1521C009008B2E81 /* rtpsession_inet.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CA11F6CF9F00621220 /* rtpsession_inet.c */; }; + 225D65801521C009008B2E81 /* rtpsignaltable.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CC11F6CF9F00621220 /* rtpsignaltable.c */; }; + 225D65811521C009008B2E81 /* rtptimer.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CD11F6CF9F00621220 /* rtptimer.c */; }; + 225D65821521C009008B2E81 /* scheduler.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6CF11F6CF9F00621220 /* scheduler.c */; }; + 225D65831521C009008B2E81 /* sessionset.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D111F6CF9F00621220 /* sessionset.c */; }; + 225D65841521C009008B2E81 /* str_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D311F6CF9F00621220 /* str_utils.c */; }; + 225D65851521C009008B2E81 /* stun.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D411F6CF9F00621220 /* stun.c */; }; + 225D65861521C009008B2E81 /* stun_udp.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D511F6CF9F00621220 /* stun_udp.c */; }; + 225D65871521C009008B2E81 /* telephonyevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6D711F6CF9F00621220 /* telephonyevents.c */; }; + 225D65881521C009008B2E81 /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 222CA6F211F6CF9F00621220 /* utils.c */; }; + 225D65B41521C009008B2E81 /* zrtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7014533D13FA841E00A01D86 /* zrtp.c */; }; + 225D65B81521C009008B2E81 /* netsim.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F23D145710540035B0D0 /* netsim.c */; }; + 225D65B91521C009008B2E81 /* ortp_srtp.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F23E145710540035B0D0 /* ortp_srtp.c */; }; + 225D65BF1521C009008B2E81 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; + 225D65C01521C009008B2E81 /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DBA0147660BB00DEE054 /* libSKP_SILK_SDK.a */; }; + 225D65CC1521C195008B2E81 /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 225D64F81521BFA6008B2E81 /* libmediastreamer.a */; }; + 225D65CD1521C19A008B2E81 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 225D65C51521C009008B2E81 /* libortp.a */; }; 229A614F13DDFE3500090183 /* g722.h in Headers */ = {isa = PBXBuildFile; fileRef = 229A614B13DDFE3500090183 /* g722.h */; }; - 229A615013DDFE3500090183 /* msg722.c in Sources */ = {isa = PBXBuildFile; fileRef = 229A614C13DDFE3500090183 /* msg722.c */; }; 229A615313DEE8A500090183 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 229A615113DEE8A400090183 /* libx264.a */; }; 229A615413DEE8A500090183 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 229A615213DEE8A400090183 /* libmsx264.a */; }; 229B9D5913043EAB00EFCD1C /* linphonecore_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 229B9D5813043EAB00EFCD1C /* linphonecore_utils.h */; }; - 229ECDEB143AEA6300D611B8 /* msvideo_neon.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEA143AEA6300D611B8 /* msvideo_neon.c */; }; 229ECDED143AEBDA00D611B8 /* conference.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEC143AEBDA00D611B8 /* conference.c */; }; - 229ECDEF143AEC2400D611B8 /* audioconference.c in Sources */ = {isa = PBXBuildFile; fileRef = 229ECDEE143AEC2400D611B8 /* audioconference.c */; }; 22A10B5611F84E2D00373793 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B4F11F84E2D00373793 /* config.h */; }; 22A10B5711F84E2D00373793 /* gsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5011F84E2D00373793 /* gsm.h */; }; 22A10B5811F84E2D00373793 /* private.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5211F84E2D00373793 /* private.h */; }; 22A10B5911F84E2D00373793 /* proto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5311F84E2D00373793 /* proto.h */; }; 22A10B5A11F84E2D00373793 /* toast.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5411F84E2D00373793 /* toast.h */; }; 22A10B5B11F84E2D00373793 /* unproto.h in Headers */ = {isa = PBXBuildFile; fileRef = 22A10B5511F84E2D00373793 /* unproto.h */; }; - 22A10EE811F8920F00373793 /* mswebcam.c in Sources */ = {isa = PBXBuildFile; fileRef = 22A10EE711F8920F00373793 /* mswebcam.c */; }; 22B5106913B060E100CD87DA /* nowebcamCIF.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 22B5106813AFD37B00CD87DA /* nowebcamCIF.jpg */; }; 22DD19C113A8D7FA0018ECD4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD19C013A8D7FA0018ECD4 /* UIKit.framework */; }; 22DD19C213A8D7FA0018ECD4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; @@ -211,38 +395,52 @@ 22DD21AE13A8E3310018ECD4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 22DD21A113A8E3310018ECD4 /* InfoPlist.strings */; }; 22DD21AF13A8E3310018ECD4 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22DD21A313A8E3310018ECD4 /* MainWindow.xib */; }; 22DD21B013A8E3310018ECD4 /* mediastreamViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22DD21A513A8E3310018ECD4 /* mediastreamViewController.xib */; }; - 22DD21B213A8E3310018ECD4 /* mediastream-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22DD21A813A8E3310018ECD4 /* mediastream-Info.plist */; }; 22DD21B313A8E3310018ECD4 /* mediastreamAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 22DD21AB13A8E3310018ECD4 /* mediastreamAppDelegate.m */; }; 22DD21B413A8E3310018ECD4 /* mediastreamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22DD21AD13A8E3310018ECD4 /* mediastreamViewController.m */; }; - 22FC56A813CB69FB002FD0F1 /* qualityindicator.c in Sources */ = {isa = PBXBuildFile; fileRef = 22FC56A713CB69FA002FD0F1 /* qualityindicator.c */; }; - 22FC56AA13CB6A4F002FD0F1 /* bitratecontrol.c in Sources */ = {isa = PBXBuildFile; fileRef = 22FC56A913CB6A4F002FD0F1 /* bitratecontrol.c */; }; - 7014533813FA7AEA00A01D86 /* opengles_display.c in Sources */ = {isa = PBXBuildFile; fileRef = 7014533513FA7AEA00A01D86 /* opengles_display.c */; }; - 7014533913FA7AEA00A01D86 /* opengles_display.h in Headers */ = {isa = PBXBuildFile; fileRef = 7014533613FA7AEA00A01D86 /* opengles_display.h */; }; - 7014533A13FA7AEA00A01D86 /* shaders.c in Sources */ = {isa = PBXBuildFile; fileRef = 7014533713FA7AEA00A01D86 /* shaders.c */; }; 7014533C13FA7ECA00A01D86 /* zrtp.h in Headers */ = {isa = PBXBuildFile; fileRef = 7014533B13FA7ECA00A01D86 /* zrtp.h */; }; - 7014533E13FA841E00A01D86 /* zrtp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7014533D13FA841E00A01D86 /* zrtp.c */; }; - 7066FC0713E82A3600EFC6DC /* vp8.c in Sources */ = {isa = PBXBuildFile; fileRef = 7066FC0613E82A3600EFC6DC /* vp8.c */; }; 7066FC0A13E830B800EFC6DC /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0913E830B800EFC6DC /* libvpx.a */; }; 70E542EE13E147C7002BA2C0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542ED13E147C7002BA2C0 /* OpenGLES.framework */; }; 70E542F113E147CE002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F013E147CE002BA2C0 /* QuartzCore.framework */; }; 70E542FA13E14816002BA2C0 /* shaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E542F613E14816002BA2C0 /* shaders.h */; }; - 70E542FC13E14816002BA2C0 /* yuv2rgb.fs.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E542F813E14816002BA2C0 /* yuv2rgb.fs.h */; }; - 70E542FD13E14816002BA2C0 /* yuv2rgb.vs.h in Headers */ = {isa = PBXBuildFile; fileRef = 70E542F913E14816002BA2C0 /* yuv2rgb.vs.h */; }; AA747D9F0F9514B9006C5449 /* liblinphone_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* liblinphone_Prefix.pch */; }; AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; - F4D9F23F145710540035B0D0 /* netsim.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F23D145710540035B0D0 /* netsim.c */; }; - F4D9F240145710540035B0D0 /* ortp_srtp.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F23E145710540035B0D0 /* ortp_srtp.c */; }; - F4D9F26014583B580035B0D0 /* bitratedriver.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F25E14583B580035B0D0 /* bitratedriver.c */; }; - F4D9F26114583B580035B0D0 /* qosanalyzer.c in Sources */ = {isa = PBXBuildFile; fileRef = F4D9F25F14583B580035B0D0 /* qosanalyzer.c */; }; /* End PBXBuildFile section */ +/* Begin PBXBuildRule section */ + 221DCB701535856E0025E54D /* PBXBuildRule */ = { + isa = PBXBuildRule; + compilerSpec = com.apple.compilers.proxy.script; + filePatterns = "*.vs *.fs"; + fileType = pattern.proxy; + isEditable = 1; + outputFiles = ( + "${INPUT_FILE_PATH}.h", + ); + script = "cd ${INPUT_FILE_DIR}\nxxd -i ${INPUT_FILE_NAME} | sed s/}\\;/,0x00}\\;/ > ${INPUT_FILE_PATH}.h"; + }; +/* End PBXBuildRule section */ + /* Begin PBXContainerItemProxy section */ - 220ED19513A8F82A00AC21E0 /* PBXContainerItemProxy */ = { + 225D65C61521C09D008B2E81 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; proxyType = 1; - remoteGlobalIDString = D2AAC07D0554694100DB518D; - remoteInfo = liblinphone; + remoteGlobalIDString = 225D64FA1521C009008B2E81; + remoteInfo = libortp; + }; + 225D65C81521C0D1008B2E81 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 225D642D1521BFA6008B2E81; + remoteInfo = libmediastreamer; + }; + 225D65CA1521C181008B2E81 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 225D642D1521BFA6008B2E81; + remoteInfo = libmediastreamer; }; /* End PBXContainerItemProxy section */ @@ -264,6 +462,9 @@ 2211DB9B1476539600DEE054 /* l16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = l16.c; sourceTree = ""; }; 2211DB9E14765CEC00DEE054 /* libmssilk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmssilk.a; path = "../liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmssilk.a"; sourceTree = ""; }; 2211DBA0147660BB00DEE054 /* libSKP_SILK_SDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSKP_SILK_SDK.a; path = "../liblinphone-sdk/apple-darwin/lib/libSKP_SILK_SDK.a"; sourceTree = ""; }; + 221DCB6715347EF80025E54D /* opengles_display.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opengles_display.c; sourceTree = ""; }; + 221DCB6A153584410025E54D /* yuv2rgb.fs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = yuv2rgb.fs; sourceTree = ""; }; + 221DCB6B153584410025E54D /* yuv2rgb.vs */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = yuv2rgb.vs; sourceTree = ""; }; 221F589913AB4EEE00D603C9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; 221F589B13AB4FC500D603C9 /* msvideo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msvideo.c; sourceTree = ""; }; 221F589D13AB503F00D603C9 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; @@ -338,7 +539,7 @@ 222CA60011F6CF7600621220 /* msfileplayer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msfileplayer.c; sourceTree = ""; }; 222CA60211F6CF7600621220 /* msfilerec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msfilerec.c; sourceTree = ""; }; 222CA60411F6CF7600621220 /* msfilter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msfilter.c; sourceTree = ""; }; - 222CA60511F6CF7600621220 /* msiounit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msiounit.c; sourceTree = ""; }; + 222CA60511F6CF7600621220 /* msiounit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = msiounit.m; sourceTree = ""; }; 222CA60611F6CF7600621220 /* msjoin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msjoin.c; sourceTree = ""; }; 222CA60711F6CF7600621220 /* msqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msqueue.c; sourceTree = ""; }; 222CA60811F6CF7600621220 /* msresample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msresample.c; sourceTree = ""; }; @@ -454,8 +655,8 @@ 2258C44913A946890087A596 /* videoenc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = videoenc.c; sourceTree = ""; }; 2258C44A13A946890087A596 /* videodec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = videodec.c; sourceTree = ""; }; 225D3559124B1FF60008581C /* linphonecall.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = linphonecall.c; sourceTree = ""; }; - 2295130414A1FBE30007EE98 /* linphone_tunnel_manager.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = linphone_tunnel_manager.cc; sourceTree = ""; }; - 2295130514A1FBE30007EE98 /* TunnelManager.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TunnelManager.cc; sourceTree = ""; }; + 225D64F81521BFA6008B2E81 /* libmediastreamer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmediastreamer.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 225D65C51521C009008B2E81 /* libortp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libortp.a; sourceTree = BUILT_PRODUCTS_DIR; }; 229A614913DDFE3500090183 /* g722_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = g722_decode.c; sourceTree = ""; }; 229A614A13DDFE3500090183 /* g722_encode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = g722_encode.c; sourceTree = ""; }; 229A614B13DDFE3500090183 /* g722.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = g722.h; sourceTree = ""; }; @@ -492,8 +693,6 @@ 22DD21AD13A8E3310018ECD4 /* mediastreamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = mediastreamViewController.m; sourceTree = ""; }; 22FC56A713CB69FA002FD0F1 /* qualityindicator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qualityindicator.c; sourceTree = ""; }; 22FC56A913CB6A4F002FD0F1 /* bitratecontrol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitratecontrol.c; sourceTree = ""; }; - 7014533513FA7AEA00A01D86 /* opengles_display.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = opengles_display.c; sourceTree = ""; }; - 7014533613FA7AEA00A01D86 /* opengles_display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opengles_display.h; sourceTree = ""; }; 7014533713FA7AEA00A01D86 /* shaders.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = shaders.c; sourceTree = ""; }; 7014533B13FA7ECA00A01D86 /* zrtp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zrtp.h; sourceTree = ""; }; 7014533D13FA841E00A01D86 /* zrtp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zrtp.c; sourceTree = ""; }; @@ -502,8 +701,6 @@ 70E542ED13E147C7002BA2C0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 70E542F013E147CE002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 70E542F613E14816002BA2C0 /* shaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shaders.h; sourceTree = ""; }; - 70E542F813E14816002BA2C0 /* yuv2rgb.fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv2rgb.fs.h; sourceTree = ""; }; - 70E542F913E14816002BA2C0 /* yuv2rgb.vs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yuv2rgb.vs.h; sourceTree = ""; }; AA747D9E0F9514B9006C5449 /* liblinphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = liblinphone_Prefix.pch; sourceTree = SOURCE_ROOT; }; AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; D2AAC07E0554694100DB518D /* liblinphone.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblinphone.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -514,10 +711,30 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 225D64F11521BFA6008B2E81 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D64F21521BFA6008B2E81 /* Foundation.framework in Frameworks */, + 225D64F31521BFA6008B2E81 /* libSKP_SILK_SDK.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 225D65BE1521C009008B2E81 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D65BF1521C009008B2E81 /* Foundation.framework in Frameworks */, + 225D65C01521C009008B2E81 /* libSKP_SILK_SDK.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22DD19BB13A8D7FA0018ECD4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 225D65CD1521C19A008B2E81 /* libortp.a in Frameworks */, + 225D65CC1521C195008B2E81 /* libmediastreamer.a in Frameworks */, 2211DB9F14765CED00DEE054 /* libmssilk.a in Frameworks */, 7066FC0A13E830B800EFC6DC /* libvpx.a in Frameworks */, 70E542F113E147CE002BA2C0 /* QuartzCore.framework in Frameworks */, @@ -559,6 +776,8 @@ isa = PBXGroup; children = ( 22DD19BE13A8D7FA0018ECD4 /* mediastream.app */, + 225D64F81521BFA6008B2E81 /* libmediastreamer.a */, + 225D65C51521C009008B2E81 /* libortp.a */, ); name = Products; sourceTree = ""; @@ -701,6 +920,9 @@ 222CA5DC11F6CF7600621220 /* src */ = { isa = PBXGroup; children = ( + 221DCB6A153584410025E54D /* yuv2rgb.fs */, + 221DCB6B153584410025E54D /* yuv2rgb.vs */, + 221DCB6715347EF80025E54D /* opengles_display.c */, 2211DB9B1476539600DEE054 /* l16.c */, 22512698145F13CE0041FBF2 /* aqsnd.c */, F4D9F25E14583B580035B0D0 /* bitratedriver.c */, @@ -710,13 +932,9 @@ 229ECDEA143AEA6300D611B8 /* msvideo_neon.c */, 224AD57314320EB400510FF3 /* scaler_arm.S */, 224AD571143208BB00510FF3 /* android-display.c */, - 7014533513FA7AEA00A01D86 /* opengles_display.c */, - 7014533613FA7AEA00A01D86 /* opengles_display.h */, 7014533713FA7AEA00A01D86 /* shaders.c */, 7066FC0613E82A3600EFC6DC /* vp8.c */, 70E542F613E14816002BA2C0 /* shaders.h */, - 70E542F813E14816002BA2C0 /* yuv2rgb.fs.h */, - 70E542F913E14816002BA2C0 /* yuv2rgb.vs.h */, 229A614913DDFE3500090183 /* g722_decode.c */, 229A614A13DDFE3500090183 /* g722_encode.c */, 229A614B13DDFE3500090183 /* g722.h */, @@ -767,7 +985,7 @@ 222CA60011F6CF7600621220 /* msfileplayer.c */, 222CA60211F6CF7600621220 /* msfilerec.c */, 222CA60411F6CF7600621220 /* msfilter.c */, - 222CA60511F6CF7600621220 /* msiounit.c */, + 222CA60511F6CF7600621220 /* msiounit.m */, 222CA60611F6CF7600621220 /* msjoin.c */, 222CA60711F6CF7600621220 /* msqueue.c */, 222CA60811F6CF7600621220 /* msresample.c */, @@ -875,8 +1093,6 @@ 222CA72D11F6CFB100621220 /* coreapi */ = { isa = PBXGroup; children = ( - 2295130414A1FBE30007EE98 /* linphone_tunnel_manager.cc */, - 2295130514A1FBE30007EE98 /* TunnelManager.cc */, 229ECDEC143AEBDA00D611B8 /* conference.c */, 229B9D5813043EAB00EFCD1C /* linphonecore_utils.h */, 225D3559124B1FF60008581C /* linphonecall.c */, @@ -992,6 +1208,180 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 225D642E1521BFA6008B2E81 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D642F1521BFA6008B2E81 /* liblinphone_Prefix.pch in Headers */, + 225D64301521BFA6008B2E81 /* allfilters.h in Headers */, + 225D64311521BFA6008B2E81 /* dsptools.h in Headers */, + 225D64321521BFA6008B2E81 /* dtmfgen.h in Headers */, + 225D64331521BFA6008B2E81 /* ice.h in Headers */, + 225D64341521BFA6008B2E81 /* mediastream.h in Headers */, + 225D64351521BFA6008B2E81 /* msaudiomixer.h in Headers */, + 225D64361521BFA6008B2E81 /* mschanadapter.h in Headers */, + 225D64371521BFA6008B2E81 /* mscommon.h in Headers */, + 225D64381521BFA6008B2E81 /* msequalizer.h in Headers */, + 225D64391521BFA6008B2E81 /* mseventqueue.h in Headers */, + 225D643A1521BFA6008B2E81 /* msextdisplay.h in Headers */, + 225D643B1521BFA6008B2E81 /* msfileplayer.h in Headers */, + 225D643C1521BFA6008B2E81 /* msfilerec.h in Headers */, + 225D643D1521BFA6008B2E81 /* msfilter.h in Headers */, + 225D643E1521BFA6008B2E81 /* msinterfaces.h in Headers */, + 225D643F1521BFA6008B2E81 /* msitc.h in Headers */, + 225D64401521BFA6008B2E81 /* msqueue.h in Headers */, + 225D64411521BFA6008B2E81 /* msrtp.h in Headers */, + 225D64421521BFA6008B2E81 /* mssndcard.h in Headers */, + 225D64431521BFA6008B2E81 /* mstee.h in Headers */, + 225D64441521BFA6008B2E81 /* msticker.h in Headers */, + 225D64451521BFA6008B2E81 /* msv4l.h in Headers */, + 225D64461521BFA6008B2E81 /* msvideo.h in Headers */, + 225D64471521BFA6008B2E81 /* msvideoout.h in Headers */, + 225D64481521BFA6008B2E81 /* msvolume.h in Headers */, + 225D64491521BFA6008B2E81 /* mswebcam.h in Headers */, + 225D644A1521BFA6008B2E81 /* rfc3984.h in Headers */, + 225D644B1521BFA6008B2E81 /* waveheader.h in Headers */, + 225D644C1521BFA6008B2E81 /* _kiss_fft_guts.h in Headers */, + 225D644D1521BFA6008B2E81 /* ffmpeg-priv.h in Headers */, + 225D644E1521BFA6008B2E81 /* g711common.h in Headers */, + 225D644F1521BFA6008B2E81 /* kiss_fft.h in Headers */, + 225D64501521BFA6008B2E81 /* kiss_fftr.h in Headers */, + 225D64511521BFA6008B2E81 /* rfc2429.h in Headers */, + 225D64521521BFA6008B2E81 /* vfw-missing.h in Headers */, + 225D64531521BFA6008B2E81 /* b64.h in Headers */, + 225D64541521BFA6008B2E81 /* event.h in Headers */, + 225D64551521BFA6008B2E81 /* ortp.h in Headers */, + 225D64561521BFA6008B2E81 /* payloadtype.h in Headers */, + 225D64571521BFA6008B2E81 /* port.h in Headers */, + 225D64581521BFA6008B2E81 /* rtcp.h in Headers */, + 225D64591521BFA6008B2E81 /* rtp.h in Headers */, + 225D645A1521BFA6008B2E81 /* rtpsession.h in Headers */, + 225D645B1521BFA6008B2E81 /* rtpsignaltable.h in Headers */, + 225D645C1521BFA6008B2E81 /* sessionset.h in Headers */, + 225D645D1521BFA6008B2E81 /* srtp.h in Headers */, + 225D645E1521BFA6008B2E81 /* str_utils.h in Headers */, + 225D645F1521BFA6008B2E81 /* stun.h in Headers */, + 225D64601521BFA6008B2E81 /* stun_udp.h in Headers */, + 225D64611521BFA6008B2E81 /* telephonyevents.h in Headers */, + 225D64621521BFA6008B2E81 /* jitterctl.h in Headers */, + 225D64631521BFA6008B2E81 /* ortp-config-win32.h in Headers */, + 225D64641521BFA6008B2E81 /* rtpsession_priv.h in Headers */, + 225D64651521BFA6008B2E81 /* rtptimer.h in Headers */, + 225D64661521BFA6008B2E81 /* scheduler.h in Headers */, + 225D64671521BFA6008B2E81 /* utils.h in Headers */, + 225D64681521BFA6008B2E81 /* enum.h in Headers */, + 225D64691521BFA6008B2E81 /* linphonecore.h in Headers */, + 225D646A1521BFA6008B2E81 /* lpconfig.h in Headers */, + 225D646B1521BFA6008B2E81 /* offeranswer.h in Headers */, + 225D646C1521BFA6008B2E81 /* private.h in Headers */, + 225D646D1521BFA6008B2E81 /* sal.h in Headers */, + 225D646E1521BFA6008B2E81 /* sal_eXosip2.h in Headers */, + 225D646F1521BFA6008B2E81 /* sipsetup.h in Headers */, + 225D64701521BFA6008B2E81 /* config.h in Headers */, + 225D64711521BFA6008B2E81 /* gsm.h in Headers */, + 225D64721521BFA6008B2E81 /* private.h in Headers */, + 225D64731521BFA6008B2E81 /* proto.h in Headers */, + 225D64741521BFA6008B2E81 /* toast.h in Headers */, + 225D64751521BFA6008B2E81 /* unproto.h in Headers */, + 225D64761521BFA6008B2E81 /* linphonecore_utils.h in Headers */, + 225D64771521BFA6008B2E81 /* iosdisplay.h in Headers */, + 225D64781521BFA6008B2E81 /* nowebcam.h in Headers */, + 225D64791521BFA6008B2E81 /* swscale.h in Headers */, + 225D647A1521BFA6008B2E81 /* alldescs.h in Headers */, + 225D647B1521BFA6008B2E81 /* scaler.h in Headers */, + 225D647C1521BFA6008B2E81 /* g722.h in Headers */, + 225D647D1521BFA6008B2E81 /* shaders.h in Headers */, + 225D64811521BFA6008B2E81 /* zrtp.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 225D64FB1521C009008B2E81 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D64FC1521C009008B2E81 /* liblinphone_Prefix.pch in Headers */, + 225D64FD1521C009008B2E81 /* allfilters.h in Headers */, + 225D64FE1521C009008B2E81 /* dsptools.h in Headers */, + 225D64FF1521C009008B2E81 /* dtmfgen.h in Headers */, + 225D65001521C009008B2E81 /* ice.h in Headers */, + 225D65011521C009008B2E81 /* mediastream.h in Headers */, + 225D65021521C009008B2E81 /* msaudiomixer.h in Headers */, + 225D65031521C009008B2E81 /* mschanadapter.h in Headers */, + 225D65041521C009008B2E81 /* mscommon.h in Headers */, + 225D65051521C009008B2E81 /* msequalizer.h in Headers */, + 225D65061521C009008B2E81 /* mseventqueue.h in Headers */, + 225D65071521C009008B2E81 /* msextdisplay.h in Headers */, + 225D65081521C009008B2E81 /* msfileplayer.h in Headers */, + 225D65091521C009008B2E81 /* msfilerec.h in Headers */, + 225D650A1521C009008B2E81 /* msfilter.h in Headers */, + 225D650B1521C009008B2E81 /* msinterfaces.h in Headers */, + 225D650C1521C009008B2E81 /* msitc.h in Headers */, + 225D650D1521C009008B2E81 /* msqueue.h in Headers */, + 225D650E1521C009008B2E81 /* msrtp.h in Headers */, + 225D650F1521C009008B2E81 /* mssndcard.h in Headers */, + 225D65101521C009008B2E81 /* mstee.h in Headers */, + 225D65111521C009008B2E81 /* msticker.h in Headers */, + 225D65121521C009008B2E81 /* msv4l.h in Headers */, + 225D65131521C009008B2E81 /* msvideo.h in Headers */, + 225D65141521C009008B2E81 /* msvideoout.h in Headers */, + 225D65151521C009008B2E81 /* msvolume.h in Headers */, + 225D65161521C009008B2E81 /* mswebcam.h in Headers */, + 225D65171521C009008B2E81 /* rfc3984.h in Headers */, + 225D65181521C009008B2E81 /* waveheader.h in Headers */, + 225D65191521C009008B2E81 /* _kiss_fft_guts.h in Headers */, + 225D651A1521C009008B2E81 /* ffmpeg-priv.h in Headers */, + 225D651B1521C009008B2E81 /* g711common.h in Headers */, + 225D651C1521C009008B2E81 /* kiss_fft.h in Headers */, + 225D651D1521C009008B2E81 /* kiss_fftr.h in Headers */, + 225D651E1521C009008B2E81 /* rfc2429.h in Headers */, + 225D651F1521C009008B2E81 /* vfw-missing.h in Headers */, + 225D65201521C009008B2E81 /* b64.h in Headers */, + 225D65211521C009008B2E81 /* event.h in Headers */, + 225D65221521C009008B2E81 /* ortp.h in Headers */, + 225D65231521C009008B2E81 /* payloadtype.h in Headers */, + 225D65241521C009008B2E81 /* port.h in Headers */, + 225D65251521C009008B2E81 /* rtcp.h in Headers */, + 225D65261521C009008B2E81 /* rtp.h in Headers */, + 225D65271521C009008B2E81 /* rtpsession.h in Headers */, + 225D65281521C009008B2E81 /* rtpsignaltable.h in Headers */, + 225D65291521C009008B2E81 /* sessionset.h in Headers */, + 225D652A1521C009008B2E81 /* srtp.h in Headers */, + 225D652B1521C009008B2E81 /* str_utils.h in Headers */, + 225D652C1521C009008B2E81 /* stun.h in Headers */, + 225D652D1521C009008B2E81 /* stun_udp.h in Headers */, + 225D652E1521C009008B2E81 /* telephonyevents.h in Headers */, + 225D652F1521C009008B2E81 /* jitterctl.h in Headers */, + 225D65301521C009008B2E81 /* ortp-config-win32.h in Headers */, + 225D65311521C009008B2E81 /* rtpsession_priv.h in Headers */, + 225D65321521C009008B2E81 /* rtptimer.h in Headers */, + 225D65331521C009008B2E81 /* scheduler.h in Headers */, + 225D65341521C009008B2E81 /* utils.h in Headers */, + 225D65351521C009008B2E81 /* enum.h in Headers */, + 225D65361521C009008B2E81 /* linphonecore.h in Headers */, + 225D65371521C009008B2E81 /* lpconfig.h in Headers */, + 225D65381521C009008B2E81 /* offeranswer.h in Headers */, + 225D65391521C009008B2E81 /* private.h in Headers */, + 225D653A1521C009008B2E81 /* sal.h in Headers */, + 225D653B1521C009008B2E81 /* sal_eXosip2.h in Headers */, + 225D653C1521C009008B2E81 /* sipsetup.h in Headers */, + 225D653D1521C009008B2E81 /* config.h in Headers */, + 225D653E1521C009008B2E81 /* gsm.h in Headers */, + 225D653F1521C009008B2E81 /* private.h in Headers */, + 225D65401521C009008B2E81 /* proto.h in Headers */, + 225D65411521C009008B2E81 /* toast.h in Headers */, + 225D65421521C009008B2E81 /* unproto.h in Headers */, + 225D65431521C009008B2E81 /* linphonecore_utils.h in Headers */, + 225D65441521C009008B2E81 /* iosdisplay.h in Headers */, + 225D65451521C009008B2E81 /* nowebcam.h in Headers */, + 225D65461521C009008B2E81 /* swscale.h in Headers */, + 225D65471521C009008B2E81 /* alldescs.h in Headers */, + 225D65481521C009008B2E81 /* scaler.h in Headers */, + 225D65491521C009008B2E81 /* g722.h in Headers */, + 225D654A1521C009008B2E81 /* shaders.h in Headers */, + 225D654E1521C009008B2E81 /* zrtp.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; D2AAC07A0554694100DB518D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1075,9 +1465,6 @@ 221F58E413AF44B300D603C9 /* scaler.h in Headers */, 229A614F13DDFE3500090183 /* g722.h in Headers */, 70E542FA13E14816002BA2C0 /* shaders.h in Headers */, - 70E542FC13E14816002BA2C0 /* yuv2rgb.fs.h in Headers */, - 70E542FD13E14816002BA2C0 /* yuv2rgb.vs.h in Headers */, - 7014533913FA7AEA00A01D86 /* opengles_display.h in Headers */, 7014533C13FA7ECA00A01D86 /* zrtp.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1085,6 +1472,42 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 225D642D1521BFA6008B2E81 /* libmediastreamer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 225D64F41521BFA6008B2E81 /* Build configuration list for PBXNativeTarget "libmediastreamer" */; + buildPhases = ( + 225D642E1521BFA6008B2E81 /* Headers */, + 225D64821521BFA6008B2E81 /* Sources */, + 225D64F11521BFA6008B2E81 /* Frameworks */, + ); + buildRules = ( + 221DCB701535856E0025E54D /* PBXBuildRule */, + ); + dependencies = ( + 225D65C71521C09D008B2E81 /* PBXTargetDependency */, + ); + name = libmediastreamer; + productName = liblinphone; + productReference = 225D64F81521BFA6008B2E81 /* libmediastreamer.a */; + productType = "com.apple.product-type.library.static"; + }; + 225D64FA1521C009008B2E81 /* libortp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 225D65C11521C009008B2E81 /* Build configuration list for PBXNativeTarget "libortp" */; + buildPhases = ( + 225D64FB1521C009008B2E81 /* Headers */, + 225D654F1521C009008B2E81 /* Sources */, + 225D65BE1521C009008B2E81 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libortp; + productName = liblinphone; + productReference = 225D65C51521C009008B2E81 /* libortp.a */; + productType = "com.apple.product-type.library.static"; + }; 22DD19BD13A8D7FA0018ECD4 /* mediastream */ = { isa = PBXNativeTarget; buildConfigurationList = 22DD19DA13A8D7FA0018ECD4 /* Build configuration list for PBXNativeTarget "mediastream" */; @@ -1096,7 +1519,7 @@ buildRules = ( ); dependencies = ( - 220ED19613A8F82A00AC21E0 /* PBXTargetDependency */, + 225D65CB1521C181008B2E81 /* PBXTargetDependency */, ); name = mediastream; productName = mediastream; @@ -1114,6 +1537,7 @@ buildRules = ( ); dependencies = ( + 225D65C91521C0D1008B2E81 /* PBXTargetDependency */, ); name = liblinphone; productName = liblinphone; @@ -1125,8 +1549,11 @@ /* Begin PBXProject section */ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + }; buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "liblinphone" */; - compatibilityVersion = "Xcode 3.1"; + compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( @@ -1143,6 +1570,8 @@ targets = ( D2AAC07D0554694100DB518D /* liblinphone */, 22DD19BD13A8D7FA0018ECD4 /* mediastream */, + 225D642D1521BFA6008B2E81 /* libmediastreamer */, + 225D64FA1521C009008B2E81 /* libortp */, ); }; /* End PBXProject section */ @@ -1155,7 +1584,6 @@ 22DD21AE13A8E3310018ECD4 /* InfoPlist.strings in Resources */, 22DD21AF13A8E3310018ECD4 /* MainWindow.xib in Resources */, 22DD21B013A8E3310018ECD4 /* mediastreamViewController.xib in Resources */, - 22DD21B213A8E3310018ECD4 /* mediastream-Info.plist in Resources */, 22B5106913B060E100CD87DA /* nowebcamCIF.jpg in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1163,6 +1591,116 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 225D64821521BFA6008B2E81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D64831521BFA6008B2E81 /* alaw.c in Sources */, + 225D64841521BFA6008B2E81 /* audiomixer.c in Sources */, + 225D64851521BFA6008B2E81 /* audiostream.c in Sources */, + 225D64861521BFA6008B2E81 /* chanadapt.c in Sources */, + 225D64871521BFA6008B2E81 /* dsptools.c in Sources */, + 225D64881521BFA6008B2E81 /* dtmfgen.c in Sources */, + 225D64891521BFA6008B2E81 /* equalizer.c in Sources */, + 225D648A1521BFA6008B2E81 /* eventqueue.c in Sources */, + 225D648B1521BFA6008B2E81 /* extdisplay.c in Sources */, + 225D648C1521BFA6008B2E81 /* gsm.c in Sources */, + 225D648D1521BFA6008B2E81 /* ice.c in Sources */, + 225D648E1521BFA6008B2E81 /* itc.c in Sources */, + 225D648F1521BFA6008B2E81 /* kiss_fft.c in Sources */, + 225D64901521BFA6008B2E81 /* kiss_fftr.c in Sources */, + 225D64911521BFA6008B2E81 /* mire.c in Sources */, + 225D64921521BFA6008B2E81 /* mscommon.c in Sources */, + 225D64931521BFA6008B2E81 /* msconf.c in Sources */, + 225D64941521BFA6008B2E81 /* msfileplayer.c in Sources */, + 225D64951521BFA6008B2E81 /* msfilerec.c in Sources */, + 225D64961521BFA6008B2E81 /* msfilter.c in Sources */, + 225D64981521BFA6008B2E81 /* msjoin.c in Sources */, + 225D64991521BFA6008B2E81 /* msqueue.c in Sources */, + 225D649A1521BFA6008B2E81 /* msresample.c in Sources */, + 225D649B1521BFA6008B2E81 /* msrtp.c in Sources */, + 225D649C1521BFA6008B2E81 /* mssndcard.c in Sources */, + 225D649D1521BFA6008B2E81 /* msspeex.c in Sources */, + 225D649E1521BFA6008B2E81 /* msticker.c in Sources */, + 225D649F1521BFA6008B2E81 /* msvolume.c in Sources */, + 225D64A01521BFA6008B2E81 /* mtu.c in Sources */, + 225D64A11521BFA6008B2E81 /* rfc3984.c in Sources */, + 225D64A21521BFA6008B2E81 /* speexec.c in Sources */, + 225D64A31521BFA6008B2E81 /* tee.c in Sources */, + 225D64A41521BFA6008B2E81 /* ulaw.c in Sources */, + 225D64A51521BFA6008B2E81 /* void.c in Sources */, + 225D64BC1521BFA6008B2E81 /* address.c in Sources */, + 225D64BD1521BFA6008B2E81 /* authentication.c in Sources */, + 225D64BE1521BFA6008B2E81 /* callbacks.c in Sources */, + 225D64BF1521BFA6008B2E81 /* chat.c in Sources */, + 225D64CE1521BFA6008B2E81 /* mswebcam.c in Sources */, + 225D64D11521BFA6008B2E81 /* ioscapture.m in Sources */, + 225D64D21521BFA6008B2E81 /* iosdisplay.m in Sources */, + 225D64D31521BFA6008B2E81 /* filter-template.c in Sources */, + 225D64D41521BFA6008B2E81 /* nowebcam.c in Sources */, + 225D64D51521BFA6008B2E81 /* videostream.c in Sources */, + 225D64D61521BFA6008B2E81 /* videoenc.c in Sources */, + 225D64D71521BFA6008B2E81 /* videodec.c in Sources */, + 225D64D81521BFA6008B2E81 /* msvideo.c in Sources */, + 225D64D91521BFA6008B2E81 /* pixconv.c in Sources */, + 225D64DA1521BFA6008B2E81 /* tonedetector.c in Sources */, + 225D64DB1521BFA6008B2E81 /* jpegwriter.c in Sources */, + 225D64DC1521BFA6008B2E81 /* h264dec.c in Sources */, + 225D64DD1521BFA6008B2E81 /* sizeconv.c in Sources */, + 225D64DE1521BFA6008B2E81 /* scaler.c in Sources */, + 225D64DF1521BFA6008B2E81 /* qualityindicator.c in Sources */, + 225D64E01521BFA6008B2E81 /* bitratecontrol.c in Sources */, + 225D64E11521BFA6008B2E81 /* g722_decode.c in Sources */, + 225D64E21521BFA6008B2E81 /* g722_encode.c in Sources */, + 225D64E31521BFA6008B2E81 /* msg722.c in Sources */, + 225D64E41521BFA6008B2E81 /* vp8.c in Sources */, + 225D64E61521BFA6008B2E81 /* shaders.c in Sources */, + 225D64E81521BFA6008B2E81 /* msvideo_neon.c in Sources */, + 225D64E91521BFA6008B2E81 /* conference.c in Sources */, + 225D64EA1521BFA6008B2E81 /* audioconference.c in Sources */, + 225D64ED1521BFA6008B2E81 /* bitratedriver.c in Sources */, + 225D64EE1521BFA6008B2E81 /* qosanalyzer.c in Sources */, + 225D64EF1521BFA6008B2E81 /* aqsnd.c in Sources */, + 225D64F01521BFA6008B2E81 /* l16.c in Sources */, + 221DCB4D1529E2EB0025E54D /* msiounit.m in Sources */, + 221DCB6915347EF80025E54D /* opengles_display.c in Sources */, + 221DCB6D153584410025E54D /* yuv2rgb.fs in Sources */, + 221DCB6F153584410025E54D /* yuv2rgb.vs in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 225D654F1521C009008B2E81 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 225D65731521C009008B2E81 /* avprofile.c in Sources */, + 225D65741521C009008B2E81 /* b64.c in Sources */, + 225D65751521C009008B2E81 /* event.c in Sources */, + 225D65761521C009008B2E81 /* jitterctl.c in Sources */, + 225D65771521C009008B2E81 /* ortp.c in Sources */, + 225D65781521C009008B2E81 /* payloadtype.c in Sources */, + 225D65791521C009008B2E81 /* port.c in Sources */, + 225D657A1521C009008B2E81 /* posixtimer.c in Sources */, + 225D657B1521C009008B2E81 /* rtcp.c in Sources */, + 225D657C1521C009008B2E81 /* rtcpparse.c in Sources */, + 225D657D1521C009008B2E81 /* rtpparse.c in Sources */, + 225D657E1521C009008B2E81 /* rtpsession.c in Sources */, + 225D657F1521C009008B2E81 /* rtpsession_inet.c in Sources */, + 225D65801521C009008B2E81 /* rtpsignaltable.c in Sources */, + 225D65811521C009008B2E81 /* rtptimer.c in Sources */, + 225D65821521C009008B2E81 /* scheduler.c in Sources */, + 225D65831521C009008B2E81 /* sessionset.c in Sources */, + 225D65841521C009008B2E81 /* str_utils.c in Sources */, + 225D65851521C009008B2E81 /* stun.c in Sources */, + 225D65861521C009008B2E81 /* stun_udp.c in Sources */, + 225D65871521C009008B2E81 /* telephonyevents.c in Sources */, + 225D65881521C009008B2E81 /* utils.c in Sources */, + 225D65B41521C009008B2E81 /* zrtp.c in Sources */, + 225D65B81521C009008B2E81 /* netsim.c in Sources */, + 225D65B91521C009008B2E81 /* ortp_srtp.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 22DD19BA13A8D7FA0018ECD4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1177,63 +1715,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 222CA64F11F6CF7600621220 /* alaw.c in Sources */, - 222CA65311F6CF7600621220 /* audiomixer.c in Sources */, - 222CA65411F6CF7600621220 /* audiostream.c in Sources */, - 222CA65511F6CF7600621220 /* chanadapt.c in Sources */, - 222CA65711F6CF7600621220 /* dsptools.c in Sources */, - 222CA65811F6CF7600621220 /* dtmfgen.c in Sources */, - 222CA65B11F6CF7600621220 /* equalizer.c in Sources */, - 222CA65C11F6CF7600621220 /* eventqueue.c in Sources */, - 222CA65D11F6CF7600621220 /* extdisplay.c in Sources */, - 222CA66011F6CF7600621220 /* gsm.c in Sources */, - 222CA66211F6CF7600621220 /* ice.c in Sources */, - 222CA66311F6CF7600621220 /* itc.c in Sources */, - 222CA66411F6CF7600621220 /* kiss_fft.c in Sources */, - 222CA66611F6CF7600621220 /* kiss_fftr.c in Sources */, - 222CA66911F6CF7600621220 /* mire.c in Sources */, - 222CA66B11F6CF7600621220 /* mscommon.c in Sources */, - 222CA66C11F6CF7600621220 /* msconf.c in Sources */, - 222CA66E11F6CF7600621220 /* msfileplayer.c in Sources */, - 222CA67011F6CF7600621220 /* msfilerec.c in Sources */, - 222CA67211F6CF7600621220 /* msfilter.c in Sources */, - 222CA67311F6CF7600621220 /* msiounit.c in Sources */, - 222CA67411F6CF7600621220 /* msjoin.c in Sources */, - 222CA67511F6CF7600621220 /* msqueue.c in Sources */, - 222CA67611F6CF7600621220 /* msresample.c in Sources */, - 222CA67711F6CF7600621220 /* msrtp.c in Sources */, - 222CA67811F6CF7600621220 /* mssndcard.c in Sources */, - 222CA67911F6CF7600621220 /* msspeex.c in Sources */, - 222CA67A11F6CF7600621220 /* msticker.c in Sources */, - 222CA67F11F6CF7600621220 /* msvolume.c in Sources */, - 222CA68111F6CF7600621220 /* mtu.c in Sources */, - 222CA68911F6CF7600621220 /* rfc3984.c in Sources */, - 222CA68C11F6CF7600621220 /* speexec.c in Sources */, - 222CA68E11F6CF7600621220 /* tee.c in Sources */, - 222CA69011F6CF7600621220 /* ulaw.c in Sources */, - 222CA69611F6CF7600621220 /* void.c in Sources */, - 222CA70311F6CF9F00621220 /* avprofile.c in Sources */, - 222CA70411F6CF9F00621220 /* b64.c in Sources */, - 222CA70611F6CF9F00621220 /* event.c in Sources */, - 222CA70711F6CF9F00621220 /* jitterctl.c in Sources */, - 222CA70A11F6CF9F00621220 /* ortp.c in Sources */, - 222CA70B11F6CF9F00621220 /* payloadtype.c in Sources */, - 222CA70C11F6CF9F00621220 /* port.c in Sources */, - 222CA70D11F6CF9F00621220 /* posixtimer.c in Sources */, - 222CA70E11F6CF9F00621220 /* rtcp.c in Sources */, - 222CA70F11F6CF9F00621220 /* rtcpparse.c in Sources */, - 222CA71011F6CF9F00621220 /* rtpparse.c in Sources */, - 222CA71111F6CF9F00621220 /* rtpsession.c in Sources */, - 222CA71211F6CF9F00621220 /* rtpsession_inet.c in Sources */, - 222CA71411F6CF9F00621220 /* rtpsignaltable.c in Sources */, - 222CA71511F6CF9F00621220 /* rtptimer.c in Sources */, - 222CA71711F6CF9F00621220 /* scheduler.c in Sources */, - 222CA71911F6CF9F00621220 /* sessionset.c in Sources */, - 222CA71B11F6CF9F00621220 /* str_utils.c in Sources */, - 222CA71C11F6CF9F00621220 /* stun.c in Sources */, - 222CA71D11F6CF9F00621220 /* stun_udp.c in Sources */, - 222CA71E11F6CF9F00621220 /* telephonyevents.c in Sources */, - 222CA72B11F6CF9F00621220 /* utils.c in Sources */, 222CA76511F6CFB100621220 /* address.c in Sources */, 222CA76611F6CFB100621220 /* authentication.c in Sources */, 222CA76711F6CFB100621220 /* callbacks.c in Sources */, @@ -1252,53 +1733,32 @@ 222CA78111F6CFB100621220 /* sal_eXosip2_sdp.c in Sources */, 222CA78411F6CFB100621220 /* siplogin.c in Sources */, 222CA78511F6CFB100621220 /* sipsetup.c in Sources */, - 22A10EE811F8920F00373793 /* mswebcam.c in Sources */, - 225D355A124B1FF60008581C /* linphonecall.c in Sources */, - 2252935B12F6CA4700DD9BFB /* ec-calibrator.c in Sources */, - 2203126F139F61990049A2ED /* ioscapture.m in Sources */, - 2203127313A247B50049A2ED /* iosdisplay.m in Sources */, - 2203127613A249F70049A2ED /* filter-template.c in Sources */, - 220ED1AD13A9062600AC21E0 /* nowebcam.c in Sources */, - 2258C44B13A946890087A596 /* videostream.c in Sources */, - 2258C44C13A946890087A596 /* videoenc.c in Sources */, - 2258C44D13A946890087A596 /* videodec.c in Sources */, - 221F589C13AB4FC500D603C9 /* msvideo.c in Sources */, - 221F58A213AB6F8100D603C9 /* pixconv.c in Sources */, - 221F58A813AB716400D603C9 /* tonedetector.c in Sources */, - 221F58A913AB716400D603C9 /* jpegwriter.c in Sources */, - 221F58AA13AB716400D603C9 /* h264dec.c in Sources */, - 221F58AC13AB71A400D603C9 /* sizeconv.c in Sources */, - 221F58AE13ABA42800D603C9 /* scaler.c in Sources */, - 22FC56A813CB69FB002FD0F1 /* qualityindicator.c in Sources */, - 22FC56AA13CB6A4F002FD0F1 /* bitratecontrol.c in Sources */, - 229A614D13DDFE3500090183 /* g722_decode.c in Sources */, - 229A614E13DDFE3500090183 /* g722_encode.c in Sources */, - 229A615013DDFE3500090183 /* msg722.c in Sources */, - 7066FC0713E82A3600EFC6DC /* vp8.c in Sources */, - 7014533813FA7AEA00A01D86 /* opengles_display.c in Sources */, - 7014533A13FA7AEA00A01D86 /* shaders.c in Sources */, - 7014533E13FA841E00A01D86 /* zrtp.c in Sources */, - 229ECDEB143AEA6300D611B8 /* msvideo_neon.c in Sources */, 229ECDED143AEBDA00D611B8 /* conference.c in Sources */, - 229ECDEF143AEC2400D611B8 /* audioconference.c in Sources */, - F4D9F23F145710540035B0D0 /* netsim.c in Sources */, - F4D9F240145710540035B0D0 /* ortp_srtp.c in Sources */, - F4D9F26014583B580035B0D0 /* bitratedriver.c in Sources */, - F4D9F26114583B580035B0D0 /* qosanalyzer.c in Sources */, - 22512699145F13CE0041FBF2 /* aqsnd.c in Sources */, - 2211DB9C1476539600DEE054 /* l16.c in Sources */, - 2295130614A1FBE30007EE98 /* linphone_tunnel_manager.cc in Sources */, - 2295130714A1FBE30007EE98 /* TunnelManager.cc in Sources */, + 221DCB561529FE660025E54D /* linphonecall.c in Sources */, + 221DCB57152A07050025E54D /* ec-calibrator.c in Sources */, + 221DCB6815347EF80025E54D /* opengles_display.c in Sources */, + 221DCB6C153584410025E54D /* yuv2rgb.fs in Sources */, + 221DCB6E153584410025E54D /* yuv2rgb.vs in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 220ED19613A8F82A00AC21E0 /* PBXTargetDependency */ = { + 225D65C71521C09D008B2E81 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D2AAC07D0554694100DB518D /* liblinphone */; - targetProxy = 220ED19513A8F82A00AC21E0 /* PBXContainerItemProxy */; + target = 225D64FA1521C009008B2E81 /* libortp */; + targetProxy = 225D65C61521C09D008B2E81 /* PBXContainerItemProxy */; + }; + 225D65C91521C0D1008B2E81 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 225D642D1521BFA6008B2E81 /* libmediastreamer */; + targetProxy = 225D65C81521C0D1008B2E81 /* PBXContainerItemProxy */; + }; + 225D65CB1521C181008B2E81 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 225D642D1521BFA6008B2E81 /* libmediastreamer */; + targetProxy = 225D65CA1521C181008B2E81 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -1341,13 +1801,11 @@ COPY_PHASE_STRIP = NO; DSTROOT = /tmp/liblinphone.dst; GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = liblinphone_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( - TUNNEL_ENABLED, "_BYTE_ORDER=_LITTLE_ENDIAN", ORTP_INET6, ENABLE_TRACE, @@ -1369,8 +1827,9 @@ HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, ); + GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( linphone/mediastreamer2/build/iphone, linphone/mediastreamer2/include, @@ -1406,7 +1865,6 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = liblinphone_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( - TUNNEL_ENABLED, "_BYTE_ORDER=_LITTLE_ENDIAN", ORTP_INET6, ENABLE_TRACE, @@ -1428,8 +1886,9 @@ HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, ); + GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( linphone/mediastreamer2/build/iphone, linphone/mediastreamer2/include, @@ -1488,7 +1947,6 @@ externals/speex/include, ); OTHER_LDFLAGS = "-ObjC"; - PREBINDING = NO; SDKROOT = iphoneos; VALID_ARCHS = "armv6 armv7 i386"; }; @@ -1530,12 +1988,371 @@ externals/speex/include, ); OTHER_LDFLAGS = "-ObjC"; - PREBINDING = NO; SDKROOT = iphoneos; VALID_ARCHS = "armv6 armv7 i386"; }; name = Release; }; + 225D64F51521BFA6008B2E81 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/liblinphone.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = mediastreamer; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 225D64F61521BFA6008B2E81 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + DSTROOT = /tmp/liblinphone.dst; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = mediastreamer; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 225D64F71521BFA6008B2E81 /* DistributionAdhoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + DSTROOT = /tmp/liblinphone.dst; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = mediastreamer; + SKIP_INSTALL = YES; + }; + name = DistributionAdhoc; + }; + 225D65C21521C009008B2E81 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + COPY_PHASE_STRIP = NO; + DSTROOT = /tmp/liblinphone.dst; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = ortp; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 225D65C31521C009008B2E81 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + DSTROOT = /tmp/liblinphone.dst; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = ortp; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 225D65C41521C009008B2E81 /* DistributionAdhoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = ( + armv6, + "$(ARCHS_STANDARD_32_BIT)", + ); + DSTROOT = /tmp/liblinphone.dst; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = liblinphone_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_BYTE_ORDER=_LITTLE_ENDIAN", + ORTP_INET6, + ENABLE_TRACE, + "LINPHONE_VERSION=\\\"debug\\\"", + "LINPHONE_PLUGINS_DIR=\\\"\\\\tmp\\\"", + "LOG_DOMAIN=\\\"Linphone\\\"", + "ORTP_MAJOR_VERSION=0", + "ORTP_MICRO_VERSION=0", + "ORTP_MINOR_VERSION=15", + "ORTP_VERSION=\\\"0.15.0\\\"", + "PACKAGE=\\\"ortp\\\"", + "POSIXTIMER_INTERVAL=10000", + IN_LINPHONE, + __MAC_AQ_ENABLED__, + HAVE_EXOSIP_GET_SOCKET, + MS2_INTERNAL, + VIDEO_ENABLED, + HAVE_LIBAVCODEC_AVCODEC_H, + HAVE_LIBSWSCALE_SWSCALE_H, + TARGET_OS_IPHONE, + ); + GCC_THUMB_SUPPORT = NO; + GCC_UNROLL_LOOPS = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ( + linphone/mediastreamer2/build/iphone, + linphone/mediastreamer2/include, + linphone/oRTP/include, + externals/gsm/, + externals/osip/include, + externals/exosip/include, + externals/speex/include, + externals/ffmpeg, + external/ffmpeg/swscale, + "../liblinphone-sdk/apple-darwin/include", + ); + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../liblinphone-sdk/apple-darwin/lib\"", + ); + PRODUCT_NAME = ortp; + SKIP_INSTALL = YES; + }; + name = DistributionAdhoc; + }; 229A615513DF03B200090183 /* DistributionAdhoc */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1572,7 +2389,6 @@ externals/speex/include, ); OTHER_LDFLAGS = "-ObjC"; - PREBINDING = NO; SDKROOT = iphoneos; VALID_ARCHS = "armv6 armv7 i386"; }; @@ -1591,7 +2407,6 @@ GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = liblinphone_Prefix.pch; GCC_PREPROCESSOR_DEFINITIONS = ( - TUNNEL_ENABLED, "_BYTE_ORDER=_LITTLE_ENDIAN", ORTP_INET6, ENABLE_TRACE, @@ -1613,8 +2428,9 @@ HAVE_LIBSWSCALE_SWSCALE_H, TARGET_OS_IPHONE, ); + GCC_THUMB_SUPPORT = NO; GCC_UNROLL_LOOPS = NO; - GCC_VERSION = com.apple.compilers.llvmgcc42; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( linphone/mediastreamer2/build/iphone, linphone/mediastreamer2/include, @@ -1806,6 +2622,26 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 225D64F41521BFA6008B2E81 /* Build configuration list for PBXNativeTarget "libmediastreamer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 225D64F51521BFA6008B2E81 /* Debug */, + 225D64F61521BFA6008B2E81 /* Release */, + 225D64F71521BFA6008B2E81 /* DistributionAdhoc */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 225D65C11521C009008B2E81 /* Build configuration list for PBXNativeTarget "libortp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 225D65C21521C009008B2E81 /* Debug */, + 225D65C31521C009008B2E81 /* Release */, + 225D65C41521C009008B2E81 /* DistributionAdhoc */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 22DD19DA13A8D7FA0018ECD4 /* Build configuration list for PBXNativeTarget "mediastream" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/submodules/linphone b/submodules/linphone index ffe1d65f3..38d4730be 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit ffe1d65f344a7dd940bcf47b8148cd0d31242935 +Subproject commit 38d4730be5d172c13d0bd58a53c397c140f81231 diff --git a/submodules/msilbc b/submodules/msilbc index 3d49d56a5..fbb153573 160000 --- a/submodules/msilbc +++ b/submodules/msilbc @@ -1 +1 @@ -Subproject commit 3d49d56a596cf5611b43f7676af9103aacc11624 +Subproject commit fbb153573c0ccbda5e7191de9aa7d7d9e114b3d8 diff --git a/submodules/mssilk b/submodules/mssilk index a0ad1cca9..391b6d6b0 160000 --- a/submodules/mssilk +++ b/submodules/mssilk @@ -1 +1 @@ -Subproject commit a0ad1cca900afc17204856fd7c2de7e8d511eaad +Subproject commit 391b6d6b0fdf6854e5a25f287c4d8461730a1d40 diff --git a/submodules/tunnel b/submodules/tunnel index 16c233f6a..21de31a17 160000 --- a/submodules/tunnel +++ b/submodules/tunnel @@ -1 +1 @@ -Subproject commit 16c233f6a08f9e78def1725505b51e415bd88463 +Subproject commit 21de31a17e022d0d65d559784cc24ad1dfb99a21