diff --git a/.gitmodules b/.gitmodules index b95960230..8fda1e943 100644 --- a/.gitmodules +++ b/.gitmodules @@ -58,3 +58,6 @@ [submodule "submodules/externals/polarssl"] path = submodules/externals/polarssl url = git://git.linphone.org/polarssl.git +[submodule "submodules/externals/opus"] + path = submodules/externals/opus + url = git://git.opus-codec.org/opus.git diff --git a/Classes/ChatViewController.m b/Classes/ChatViewController.m index 4f52378a2..1bc923dbc 100644 --- a/Classes/ChatViewController.m +++ b/Classes/ChatViewController.m @@ -122,7 +122,7 @@ static UICompositeViewDescription *compositeDescription = nil; if ([[addressField text ]length] == 0) { // if no address is manually set, lauch address book [ContactSelection setSelectionMode:ContactSelectionModeMessage]; [ContactSelection setAddAddress:nil]; - [ContactSelection setSipFilter:TRUE]; + [ContactSelection setSipFilter: [LinphoneManager instance].contactFilter]; [ContactSelection setEmailFilter:FALSE]; [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE]; } else { diff --git a/Classes/ContactDetailsTableViewController.m b/Classes/ContactDetailsTableViewController.m index 8f49fd838..42332e723 100644 --- a/Classes/ContactDetailsTableViewController.m +++ b/Classes/ContactDetailsTableViewController.m @@ -198,20 +198,32 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i); BOOL add = false; if(CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { - if(CFStringCompare((CFStringRef)kContactSipField, CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), kCFCompareCaseInsensitive) == 0) { + if(CFStringCompare((CFStringRef)[LinphoneManager instance].contactSipField, CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), kCFCompareCaseInsensitive) == 0) { add = true; } - } else { - add = true; - } - if(add) { - Entry *entry = [[Entry alloc] initWithData:identifier]; - [subArray addObject: entry]; - [entry release]; - } - CFRelease(lDict); - } - CFRelease(lMap); + } else { //check domain + LinphoneAddress* address = linphone_address_new([(NSString*)CFDictionaryGetValue(lDict,kABPersonInstantMessageUsernameKey) UTF8String]); + if (address) { + if ([[ContactSelection getSipFilter] compare:@"*" options:NSCaseInsensitiveSearch] == NSOrderedSame) { + add = true; + } else { + NSString* domain = [NSString stringWithCString:linphone_address_get_domain(address) + encoding:[NSString defaultCStringEncoding]]; + add = [domain compare:[ContactSelection getSipFilter] options:NSCaseInsensitiveSearch] == NSOrderedSame; + } + linphone_address_destroy(address); + } else { + add = false; + } + } + if(add) { + Entry *entry = [[Entry alloc] initWithData:identifier]; + [subArray addObject: entry]; + [entry release]; + } + CFRelease(lDict); + } + CFRelease(lMap); } [dataCache addObject:subArray]; } @@ -241,6 +253,68 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C [self.tableView reloadData]; } +-(Entry *) setOrCreateSipContactEntry:(Entry *)entry withValue:(NSString*)value { + ABMultiValueRef lcMap = ABRecordCopyValue(contact, kABPersonInstantMessageProperty); + ABMutableMultiValueRef lMap; + if(lcMap != NULL) { + lMap = ABMultiValueCreateMutableCopy(lcMap); + CFRelease(lcMap); + } else { + lMap = ABMultiValueCreateMutable(kABStringPropertyType); + } + ABMultiValueIdentifier index; + NSError* error = NULL; + + CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey}; + CFTypeRef values[] = { [value copy], [LinphoneManager instance].contactSipField }; + CFDictionaryRef lDict = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 2, NULL, NULL); + if (entry) { + index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]); + ABMultiValueReplaceValueAtIndex(lMap, lDict, index); + } else { + + CFStringRef label = (CFStringRef)[labelArray objectAtIndex:0]; + ABMultiValueAddValueAndLabel(lMap, lDict, label, &index); + } + if (!ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) { + [LinphoneLogger log:LinphoneLoggerLog format:@"Can't set contact with value [%@] cause [%@]", value,[error localizedDescription]]; + } else { + if (entry == nil) { + entry = [[Entry alloc] initWithData:index]; + } + CFRelease(lDict); + /*check if message type is kept or not*/ + lcMap = ABRecordCopyValue(contact, kABPersonInstantMessageProperty); + lMap = ABMultiValueCreateMutableCopy(lcMap); + CFRelease(lcMap); + index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]); + lDict = ABMultiValueCopyValueAtIndex(lMap,index); + if(!CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { + /*too bad probably a gtalk number, storing uri*/ + NSString* username = CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey); + LinphoneAddress* address = linphone_core_interpret_url([LinphoneManager getLc] + ,[username UTF8String]); + char* uri = linphone_address_as_string_uri_only(address); + CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey}; + CFTypeRef values[] = { [NSString stringWithCString:uri encoding:[NSString defaultCStringEncoding]], [LinphoneManager instance].contactSipField }; + CFDictionaryRef lDict2 = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 2, NULL, NULL); + ABMultiValueReplaceValueAtIndex(lMap, lDict2, index); + if (!ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) { + [LinphoneLogger log:LinphoneLoggerLog format:@"Can't set contact with value [%@] cause [%@]", value,[error localizedDescription]]; + } + CFRelease(lDict2); + linphone_address_destroy(address); + ms_free(uri); + } + CFRelease(lMap); + } + CFRelease(lDict); + + return entry; +} +-(void) setSipContactEntry:(Entry *)entry withValue:(NSString*)value { + [self setOrCreateSipContactEntry:entry withValue:value]; +} - (void)addEntry:(UITableView*)tableview section:(NSInteger)section animated:(BOOL)animated { [self addEntry:tableview section:section animated:animated value:@""]; } @@ -275,33 +349,15 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C } CFRelease(lMap); } else if(contactSections[section] == ContactSections_Sip) { - ABMultiValueIdentifier identifier; - ABMultiValueRef lcMap = ABRecordCopyValue(contact, kABPersonInstantMessageProperty); - ABMutableMultiValueRef lMap; - if(lcMap != NULL) { - lMap = ABMultiValueCreateMutableCopy(lcMap); - CFRelease(lcMap); - } else { - lMap = ABMultiValueCreateMutable(kABDictionaryPropertyType); - } - CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey }; - CFTypeRef values[] = { [value copy], kContactSipField }; - CFDictionaryRef lDict = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 1, NULL, NULL); - CFStringRef label = (CFStringRef)[labelArray objectAtIndex:0]; - if(!ABMultiValueAddValueAndLabel(lMap, lDict, label, &identifier)) { - added = false; - } - CFRelease(lDict); - - if(added && ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) { - Entry *entry = [[Entry alloc] initWithData:identifier]; - [sectionArray addObject:entry]; - [entry release]; - } else { - added = false; - [LinphoneLogger log:LinphoneLoggerError format:@"Can't add entry: %@", [error localizedDescription]]; - } - CFRelease(lMap); + Entry *entry = [self setOrCreateSipContactEntry:nil withValue:value]; + if (entry) { + [sectionArray addObject:entry]; + [entry release]; + added=true; + } else { + added=false; + [LinphoneLogger log:LinphoneLoggerError format:@"Can't add entry for value: %@", value]; + } } else if(contactSections[section] == ContactSections_Email) { ABMultiValueIdentifier identifier; ABMultiValueRef lcMap = ABRecordCopyValue(contact, kABPersonEmailProperty); @@ -497,7 +553,17 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, index); CFStringRef valueRef = CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey); if(valueRef != NULL) { - value = [NSString stringWithString:(NSString*) valueRef]; + LinphoneAddress* addr=NULL; + if ([[LinphoneManager instance] lpConfigBoolForKey:@"contact_display_username_only"] + && (addr=linphone_address_new([(NSString *)valueRef UTF8String]))) { + if (linphone_address_get_username(addr)) { + value = [NSString stringWithCString:linphone_address_get_username(addr) + encoding:[NSString defaultCStringEncoding]]; + } /*else value=@""*/ + } else { + value = [NSString stringWithString:(NSString*) valueRef]; + } + if (addr) linphone_address_destroy(addr); } CFRelease(lDict); CFRelease(lMap); @@ -537,7 +603,7 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C NSMutableArray *sectionDict = [self getSectionData:[indexPath section]]; Entry *entry = [sectionDict objectAtIndex:[indexPath row]]; if (![self isEditing]) { - NSString *dest; + NSString *dest=NULL;; if(contactSections[[indexPath section]] == ContactSections_Number) { ABMultiValueRef lMap = ABRecordCopyValue(contact, kABPersonPhoneProperty); int index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]); @@ -820,17 +886,7 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C ABRecordSetValue(contact, kABPersonPhoneProperty, lMap, nil); CFRelease(lMap); } else if(contactSections[[path section]] == ContactSections_Sip) { - ABMultiValueRef lcMap = ABRecordCopyValue(contact, kABPersonInstantMessageProperty); - ABMutableMultiValueRef lMap = ABMultiValueCreateMutableCopy(lcMap); - CFRelease(lcMap); - int index = ABMultiValueGetIndexForIdentifier(lMap, [entry identifier]); - CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey}; - CFTypeRef values[] = { [value copy], kContactSipField }; - CFDictionaryRef lDict = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 2, NULL, NULL); - ABMultiValueReplaceValueAtIndex(lMap, lDict, index); - CFRelease(lDict); - ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, nil); - CFRelease(lMap); + [self setSipContactEntry:entry withValue:value]; } else if(contactSections[[path section]] == ContactSections_Email) { ABMultiValueRef lcMap = ABRecordCopyValue(contact, kABPersonEmailProperty); ABMutableMultiValueRef lMap = ABMultiValueCreateMutableCopy(lcMap); diff --git a/Classes/ContactsTableViewController.m b/Classes/ContactsTableViewController.m index 866b247ce..c424b1ea5 100644 --- a/Classes/ContactsTableViewController.m +++ b/Classes/ContactsTableViewController.m @@ -87,13 +87,26 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i); if(CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { CFStringRef serviceKey = CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey); - if(CFStringCompare((CFStringRef)@"SIP", serviceKey, kCFCompareCaseInsensitive) == 0) { - add = true; - } - } else { - NSString* usernameKey = CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey); - if([usernameKey hasPrefix:@"sip:"]) { + CFStringRef username = username=CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey); + if(CFStringCompare((CFStringRef)[LinphoneManager instance].contactSipField, serviceKey, kCFCompareCaseInsensitive) == 0) { add = true; + } else { + add=false; + } + } else { + //check domain + LinphoneAddress* address = linphone_address_new([(NSString*)CFDictionaryGetValue(lDict,kABPersonInstantMessageUsernameKey) UTF8String]); + if (address) { + if ([[ContactSelection getSipFilter] compare:@"*" options:NSCaseInsensitiveSearch] == NSOrderedSame) { + add = true; + } else { + NSString* domain = [NSString stringWithCString:linphone_address_get_domain(address) + encoding:[NSString defaultCStringEncoding]]; + add = [domain compare:[ContactSelection getSipFilter] options:NSCaseInsensitiveSearch] == NSOrderedSame; + } + linphone_address_destroy(address); + } else { + add = false; } } CFRelease(lDict); diff --git a/Classes/ContactsViewController.h b/Classes/ContactsViewController.h index 00da1d3ad..c21948896 100644 --- a/Classes/ContactsViewController.h +++ b/Classes/ContactsViewController.h @@ -36,8 +36,9 @@ typedef enum _ContactSelectionMode { + (ContactSelectionMode)getSelectionMode; + (void)setAddAddress:(NSString*)address; + (NSString*)getAddAddress; -+ (void)setSipFilter:(BOOL)enable; -+ (BOOL)getSipFilter; +/* define sip filter, can be * or sip domain*/ ++ (void)setSipFilter:(NSString*) domain; ++ (NSString*)getSipFilter; + (void)setEmailFilter:(BOOL)enable; + (BOOL)getEmailFilter; diff --git a/Classes/ContactsViewController.m b/Classes/ContactsViewController.m index cf23d9d01..d3b54c122 100644 --- a/Classes/ContactsViewController.m +++ b/Classes/ContactsViewController.m @@ -27,7 +27,7 @@ static ContactSelectionMode sSelectionMode = ContactSelectionModeNone; static NSString* sAddAddress = nil; -static BOOL sSipFilter = FALSE; +static NSString* sSipFilter = nil; static BOOL sEmailFilter = FALSE; + (void)setSelectionMode:(ContactSelectionMode)selectionMode { @@ -52,11 +52,12 @@ static BOOL sEmailFilter = FALSE; return sAddAddress; } -+ (void)setSipFilter:(BOOL)enable { - sSipFilter = enable; ++ (void)setSipFilter:(NSString*)domain { + [sSipFilter release]; + sSipFilter = [domain retain]; } -+ (BOOL)getSipFilter { ++ (NSString*)getSipFilter { return sSipFilter; } @@ -197,7 +198,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)changeView:(HistoryView)view { if(view == History_All) { - [ContactSelection setSipFilter:FALSE]; + [ContactSelection setSipFilter:nil]; [ContactSelection setEmailFilter:FALSE]; [tableController loadData]; allButton.selected = TRUE; @@ -206,7 +207,7 @@ static UICompositeViewDescription *compositeDescription = nil; } if(view == History_Linphone) { - [ContactSelection setSipFilter:TRUE]; + [ContactSelection setSipFilter:[LinphoneManager instance].contactFilter]; [ContactSelection setEmailFilter:FALSE]; [tableController loadData]; linphoneButton.selected = TRUE; diff --git a/Classes/DialerViewController.m b/Classes/DialerViewController.m index 0263d8138..cb28fefaa 100644 --- a/Classes/DialerViewController.m +++ b/Classes/DialerViewController.m @@ -317,7 +317,7 @@ static UICompositeViewDescription *compositeDescription = nil; - (IBAction)onAddContactClick: (id) event { [ContactSelection setSelectionMode:ContactSelectionModeEdit]; [ContactSelection setAddAddress:[addressField text]]; - [ContactSelection setSipFilter:FALSE]; + [ContactSelection setSipFilter:nil]; [ContactSelection setEmailFilter:FALSE]; ContactsViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE], ContactsViewController); if(controller != nil) { diff --git a/Classes/HistoryDetailsViewController.m b/Classes/HistoryDetailsViewController.m index 16454d126..ec172566a 100644 --- a/Classes/HistoryDetailsViewController.m +++ b/Classes/HistoryDetailsViewController.m @@ -281,13 +281,15 @@ static UICompositeViewDescription *compositeDescription = nil; // contact name [plainAddressLabel setText:@""]; if (addr != NULL) { - char* lAddress = linphone_address_as_string_uri_only(addr); - if(lAddress != NULL) { - [plainAddressLabel setText:[NSString stringWithUTF8String:lAddress]]; - ms_free(lAddress); - } else { - - } + if ([[LinphoneManager instance] lpConfigBoolForKey:@"contact_display_username_only"]) { + [plainAddressLabel setText:[NSString stringWithUTF8String:linphone_address_get_username(addr)?linphone_address_get_username(addr):""]]; + } else { + char* lAddress = linphone_address_as_string_uri_only(addr); + if(lAddress != NULL) { + [plainAddressLabel setText:[NSString stringWithUTF8String:lAddress]]; + ms_free(lAddress); + } + } } if (addr != NULL) { @@ -327,7 +329,7 @@ static UICompositeViewDescription *compositeDescription = nil; [ContactSelection setAddAddress:[NSString stringWithUTF8String:lAddress]]; [ContactSelection setSelectionMode:ContactSelectionModeEdit]; - [ContactSelection setSipFilter:FALSE]; + [ContactSelection setSipFilter:nil]; [ContactSelection setEmailFilter:FALSE]; ContactsViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription] push:TRUE], ContactsViewController); if(controller != nil) { diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index b90e36f74..da64fca6c 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -47,8 +47,6 @@ extern NSString *const kLinphoneLogsUpdate; extern NSString *const kLinphoneSettingsUpdate; extern NSString *const kLinphoneBluetoothAvailabilityUpdate; -extern NSString *const kContactSipField; - typedef enum _NetworkType { network_none = 0, network_2g, @@ -117,6 +115,7 @@ typedef struct _LinphoneManagerSounds { + (NSSet *)unsupportedCodecs; + (NSString *)getUserAgent; + - (void)startLibLinphone; - (void)destroyLibLinphone; - (BOOL)resignActive; @@ -144,6 +143,7 @@ typedef struct _LinphoneManagerSounds { - (void)lpConfigSetString:(NSString*)value forKey:(NSString*)key; - (NSString*)lpConfigStringForKey:(NSString*)key; +- (NSString*)lpConfigStringForKey:(NSString*)key withDefault:(NSString*)value; - (void)lpConfigSetString:(NSString*)value forKey:(NSString*)key forSection:(NSString*)section; - (NSString*)lpConfigStringForKey:(NSString*)key forSection:(NSString*)section; - (void)lpConfigSetInt:(NSInteger)value forKey:(NSString*)key; @@ -155,6 +155,7 @@ typedef struct _LinphoneManagerSounds { - (void)lpConfigSetBool:(BOOL)value forKey:(NSString*)key forSection:(NSString*)section; - (BOOL)lpConfigBoolForKey:(NSString*)key forSection:(NSString*)section; + @property (readonly) FastAddressBook* fastAddressBook; @property Connectivity connectivity; @property (readonly) NetworkType network; @@ -168,6 +169,8 @@ typedef struct _LinphoneManagerSounds { @property (nonatomic, assign) BOOL bluetoothAvailable; @property (nonatomic, assign) BOOL bluetoothEnabled; @property (readonly) ALAssetsLibrary *photoLibrary; +@property (readonly) NSString* contactSipField; +@property (readonly,copy) NSString* contactFilter; @end diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 92976227d..bd1cdf406 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -57,7 +57,7 @@ NSString *const kLinphoneMainViewChange = @"LinphoneMainViewChange"; NSString *const kLinphoneLogsUpdate = @"LinphoneLogsUpdate"; NSString *const kLinphoneSettingsUpdate = @"LinphoneSettingsUpdate"; NSString *const kLinphoneBluetoothAvailabilityUpdate = @"LinphoneBluetoothAvailabilityUpdate"; -NSString *const kContactSipField = @"SIP"; + extern void libmsilbc_init(); @@ -133,6 +133,7 @@ struct codec_name_pref_table codec_pref_table[]={ { "vp8", 90000, @"vp8_preference"}, { "mpeg4-generic", 44100, @"aaceld_44k_preference"}, { "mpeg4-generic", 22050, @"aaceld_22k_preference"}, + { "opus", 48000, @"opus_preference"}, { NULL,0,Nil } }; @@ -245,6 +246,7 @@ struct codec_name_pref_table codec_pref_table[]={ [self copyDefaultSettings]; pendindCallIdFromRemoteNotif = [[NSMutableArray alloc] init ]; photoLibrary = [[ALAssetsLibrary alloc] init]; + } return self; } @@ -840,6 +842,10 @@ static LinphoneCoreVTable linphonec_vtable = { ,self); linphone_core_set_user_agent(theLinphoneCore,"LinphoneIPhone", [[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey] UTF8String]); + [_contactSipField release]; + _contactSipField = [[self lpConfigStringForKey:@"contact_im_type_value" withDefault:@"SIP"] retain]; + + fastAddressBook = [[FastAddressBook alloc] init]; linphone_core_set_root_ca(theLinphoneCore, lRootCa); @@ -924,6 +930,7 @@ static LinphoneCoreVTable linphonec_vtable = { //go directly to bg mode [self resignActive]; } + // Post event NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSValue valueWithPointer:theLinphoneCore] forKey:@"core"]; @@ -1413,6 +1420,10 @@ static void audioRouteChangeListenerCallback ( - (NSString*)lpConfigStringForKey:(NSString*)key { return [self lpConfigStringForKey:key forSection:[NSString stringWithUTF8String:LINPHONERC_APPLICATION_KEY]]; } +- (NSString*)lpConfigStringForKey:(NSString*)key withDefault:(NSString*)defaultValue { + NSString* value = [self lpConfigStringForKey:key]; + return value?value:defaultValue; +} - (NSString*)lpConfigStringForKey:(NSString*)key forSection:(NSString *)section { if (!key) return nil; @@ -1497,4 +1508,16 @@ static void audioRouteChangeListenerCallback ( } } //else nop, keep call in paused state } +-(NSString*) contactFilter { + NSString* filter=@"*"; + if ( [self lpConfigBoolForKey:@"contact_filter_on_default_domain"]) { + LinphoneProxyConfig* proxy_cfg; + linphone_core_get_default_proxy(theLinphoneCore, &proxy_cfg); + if (proxy_cfg && linphone_proxy_config_get_addr(proxy_cfg)) { + return [NSString stringWithCString:linphone_proxy_config_get_domain(proxy_cfg) + encoding:[NSString defaultCStringEncoding]]; + } + } + return filter; +} @end diff --git a/Classes/LinphoneUI/UICompositeViewController.m b/Classes/LinphoneUI/UICompositeViewController.m index aa7237646..7a1913db0 100644 --- a/Classes/LinphoneUI/UICompositeViewController.m +++ b/Classes/LinphoneUI/UICompositeViewController.m @@ -103,7 +103,7 @@ - (void)initUICompositeViewController { viewControllerCache = [[NSMutableDictionary alloc] init]; - currentOrientation = UIDeviceOrientationUnknown; + currentOrientation = (UIInterfaceOrientation)UIDeviceOrientationUnknown; } - (id)init{ @@ -416,18 +416,18 @@ if(currentOrientation == UIDeviceOrientationUnknown) { return [UIApplication sharedApplication].statusBarOrientation; } - deviceOrientation = currentOrientation; + deviceOrientation = (UIDeviceOrientation)currentOrientation; } if (UIDeviceOrientationIsPortrait(deviceOrientation)) { if ([currentViewDescription portraitMode]) { - return deviceOrientation; + return (UIInterfaceOrientation)deviceOrientation; } else { return UIInterfaceOrientationLandscapeLeft; } } if (UIDeviceOrientationIsLandscape(deviceOrientation)) { if ([currentViewDescription landscapeMode]) { - return deviceOrientation; + return (UIInterfaceOrientation)deviceOrientation; } else { return UIInterfaceOrientationPortrait; } @@ -435,7 +435,7 @@ } else if([rotationPreference isEqualToString:@"portrait"]) { if ([currentViewDescription portraitMode]) { if (UIDeviceOrientationIsPortrait(deviceOrientation)) { - return deviceOrientation; + return (UIInterfaceOrientation)deviceOrientation; } else { if(UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) { return [UIApplication sharedApplication].statusBarOrientation; @@ -449,7 +449,7 @@ } else if([rotationPreference isEqualToString:@"landscape"]) { if ([currentViewDescription landscapeMode]) { if (UIDeviceOrientationIsLandscape(deviceOrientation)) { - return deviceOrientation; + return (UIInterfaceOrientation)deviceOrientation; } else { if(UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { return [UIApplication sharedApplication].statusBarOrientation; diff --git a/Classes/LinphoneUI/UIMainBar.m b/Classes/LinphoneUI/UIMainBar.m index 5e7cbe771..18d750620 100644 --- a/Classes/LinphoneUI/UIMainBar.m +++ b/Classes/LinphoneUI/UIMainBar.m @@ -400,7 +400,7 @@ static NSString * const kDisappearAnimation = @"disappear"; - (IBAction)onContactsClick:(id)event { [ContactSelection setSelectionMode:ContactSelectionModeNone]; [ContactSelection setAddAddress:nil]; - [ContactSelection setSipFilter:FALSE]; + [ContactSelection setSipFilter:nil]; [ContactSelection setEmailFilter:FALSE]; [[PhoneMainView instance] changeCurrentView:[ContactsViewController compositeViewDescription]]; } diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index ab5f0b1a3..9831c2812 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -179,7 +179,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i); BOOL add = false; if(CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) { - if(CFStringCompare((CFStringRef)kContactSipField, CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), kCFCompareCaseInsensitive) == 0) { + if(CFStringCompare((CFStringRef)[LinphoneManager instance].contactSipField, CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), kCFCompareCaseInsensitive) == 0) { add = true; } } else { diff --git a/Resources/linphonerc-factory b/Resources/linphonerc-factory index fb48ebbdf..cc6384010 100644 --- a/Resources/linphonerc-factory +++ b/Resources/linphonerc-factory @@ -47,3 +47,7 @@ stun=stun.linphone.org [video] display_filter_auto_rotate=0 + +[app] +#contact_display_username_only=1 +#contact_filter_on_default_domain=1 diff --git a/Settings/InAppSettings.bundle/Audio.plist b/Settings/InAppSettings.bundle/Audio.plist index 4331a88d4..5fa9900a1 100644 --- a/Settings/InAppSettings.bundle/Audio.plist +++ b/Settings/InAppSettings.bundle/Audio.plist @@ -30,6 +30,16 @@ Type PSToggleSwitchSpecifier + + DefaultValue + + Key + opus_preference + Title + Opus 48kHz + Type + PSToggleSwitchSpecifier + DefaultValue @@ -50,6 +60,28 @@ Type PSToggleSwitchSpecifier + + DefaultValue + + Key + aaceld_22k_preference + Title + AAC-ELD 22kHz + Type + PSToggleSwitchSpecifier + + + New item + + DefaultValue + + Key + aaceld_44k_preference + Title + AAC-ELD 44kHz + Type + PSToggleSwitchSpecifier + DefaultValue @@ -120,26 +152,6 @@ Type PSToggleSwitchSpecifier - - DefaultValue - - Key - aaceld_44k_preference - Title - AAC-ELD 44kHz - Type - PSToggleSwitchSpecifier - - - DefaultValue - - Key - aaceld_22k_preference - Title - AAC-ELD 22kHz - Type - PSToggleSwitchSpecifier - Key audio_advanced_group diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index ad22b25d3..8ec10367f 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -75,6 +75,8 @@ 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, ); }; }; + 2200C2DB174BB87A002E9A70 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EED1600B4E400B92522 /* AssetsLibrary.framework */; }; + 2200C2DC174BBB24002E9A70 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 226EF06B15FA256B005865C7 /* MobileCoreServices.framework */; }; 22058C71116E305000B08DDD /* linphone_icon_57.png in Resources */ = {isa = PBXBuildFile; fileRef = 22058C70116E305000B08DDD /* linphone_icon_57.png */; }; 220FAD3210765B400068D98F /* libgsm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2910765B400068D98F /* libgsm.a */; }; 220FAD3810765B400068D98F /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2F10765B400068D98F /* libspeex.a */; }; @@ -128,6 +130,8 @@ 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 */; }; + 22AF73C21754C0D100BE8398 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AF73C11754C0D000BE8398 /* libopus.a */; }; + 22AF73C31754C0D800BE8398 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AF73C11754C0D000BE8398 /* libopus.a */; }; 22B5EFA310CE50BD00777D97 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */; }; 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5F03410CE6B2F00777D97 /* AddressBook.framework */; }; 22BB1A69132FF16A005CD7AA /* UIEraseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22BB1A68132FF16A005CD7AA /* UIEraseButton.m */; }; @@ -1608,6 +1612,7 @@ 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 = ""; }; + 22AF73C11754C0D000BE8398 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "liblinphone-sdk/apple-darwin/lib/libopus.a"; sourceTree = ""; }; 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; }; 22B5F03410CE6B2F00777D97 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; 22BB1A67132FF16A005CD7AA /* UIEraseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEraseButton.h; sourceTree = ""; }; @@ -2414,6 +2419,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22AF73C21754C0D100BE8398 /* libopus.a in Frameworks */, 57B0E360173C010400A476B8 /* libpolarssl.a in Frameworks */, 223CA7E616D9255800EF1BEC /* libantlr3c.a in Frameworks */, 223CA7E716D9255800EF1BEC /* libbellesip.a in Frameworks */, @@ -2472,6 +2478,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2200C2DC174BBB24002E9A70 /* MobileCoreServices.framework in Frameworks */, + 2200C2DB174BB87A002E9A70 /* AssetsLibrary.framework in Frameworks */, D30562131671DC3E00C97967 /* libNinePatch.a in Frameworks */, D30562141671DC3E00C97967 /* libXMLRPC.a in Frameworks */, 22D8F170147548E2008C97DB /* AVFoundation.framework in Frameworks */, @@ -2509,6 +2517,7 @@ 22D8F15B147548E2008C97DB /* libvpx.a in Frameworks */, 223CA7E816D9256E00EF1BEC /* libantlr3c.a in Frameworks */, 223CA7E916D9257200EF1BEC /* libbellesip.a in Frameworks */, + 22AF73C31754C0D800BE8398 /* libopus.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2972,6 +2981,7 @@ 57B0E35F173C010400A476B8 /* libpolarssl.a */, 223CA7E416D9255800EF1BEC /* libantlr3c.a */, 223CA7E516D9255800EF1BEC /* libbellesip.a */, + 22AF73C11754C0D000BE8398 /* libopus.a */, 2258633C11410BAC00C5A737 /* README */, 22276E8013C73D3100210156 /* libavcodec.a */, 22276E8113C73D3100210156 /* libavutil.a */, @@ -3786,7 +3796,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0450; + LastUpgradeCheck = 0460; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "linphone" */; compatibilityVersion = "Xcode 3.2"; @@ -5480,15 +5490,20 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; GCC_THUMB_SUPPORT = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; LIBRARY_SEARCH_PATHS = ""; - PROVISIONING_PROFILE = "7763350E-083E-4ADA-8535-05883F19F947"; + PROVISIONING_PROFILE = "BB7E624F-8CD6-448B-A235-CE8DBB401F92"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; TARGETED_DEVICE_FAMILY = "1,2"; @@ -5500,6 +5515,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CODE_SIGN_ENTITLEMENTS = ""; + CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; COMPRESS_PNG_FILES = NO; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = ""; @@ -5538,6 +5554,7 @@ ORDER_FILE = ""; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = linphone; + PROVISIONING_PROFILE = "B0005B58-1160-4269-B1FC-C5BA54ACBA65"; SKIP_INSTALL = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -5718,10 +5735,15 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; GCC_THUMB_SUPPORT = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; @@ -5784,10 +5806,15 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Distribution: jehan monnier"; GCC_THUMB_SUPPORT = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; @@ -5851,10 +5878,15 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "iPhone Developer: jehan monnier (E8MYPN2NXL)"; GCC_THUMB_SUPPORT = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 4.3; diff --git a/submodules/belle-sip b/submodules/belle-sip index ef33d5b71..89aa5d6a1 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit ef33d5b7158c1b8391a67f9fd01759ae00cc612b +Subproject commit 89aa5d6a1b9957b73696f250043b799b462a5c0f diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk index 86d69cb12..5798a0bb9 100644 --- a/submodules/build/builder-iphone-os.mk +++ b/submodules/build/builder-iphone-os.mk @@ -22,6 +22,7 @@ host?=armv7-apple-darwin config_site:=iphone-config.site +config_site_gcc:=iphone-config-gcc.site library_mode:= --disable-shared --enable-static linphone_configure_controls= \ --disable-strict \ @@ -112,18 +113,18 @@ veryclean: veryclean-linphone veryclean-msbcg729 rm -rf $(BUILDER_BUILD_DIR) -.NOTPARALLEL build-linphone: init build-polarssl build-libantlr build-belle-sip build-srtp build-zrtpcpp build-speex build-libgsm build-ffmpeg build-libvpx detect_gpl_mode_switch $(LINPHONE_BUILD_DIR)/Makefile +.NOTPARALLEL build-linphone: init build-polarssl build-libantlr build-belle-sip build-srtp build-zrtpcpp build-speex build-libgsm build-ffmpeg build-libvpx build-opus detect_gpl_mode_switch $(LINPHONE_BUILD_DIR)/Makefile cd $(LINPHONE_BUILD_DIR) && export PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig export CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make newdate && make && make install mkdir -p $(prefix)/share/linphone/tutorials && cp -f $(LINPHONE_SRC_DIR)/coreapi/help/*.c $(prefix)/share/linphone/tutorials/ -clean-linphone: clean-libantlr clean-polarssl clean-belle-sip clean-speex clean-libgsm clean-srtp clean-zrtpcpp clean-msilbc clean-libilbc clean-msamr clean-mssilk clean-ffmpeg clean-libvpx clean-msx264 +clean-linphone: clean-libantlr clean-polarssl clean-belle-sip clean-speex clean-libgsm clean-srtp clean-zrtpcpp clean-msilbc clean-libilbc clean-msamr clean-mssilk clean-ffmpeg clean-libvpx clean-msx264 clean-opus cd $(LINPHONE_BUILD_DIR) && make clean -veryclean-linphone: veryclean-libantlr veryclean-polarssl veryclean-belle-sip veryclean-speex veryclean-srtp veryclean-zrtpcpp veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl veryclean-msamr veryclean-mssilk veryclean-msx264 veryclean-libvpx +veryclean-linphone: veryclean-libantlr veryclean-polarssl veryclean-belle-sip veryclean-speex veryclean-srtp veryclean-zrtpcpp veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl veryclean-msamr veryclean-mssilk veryclean-msx264 veryclean-libvpx veryclean-opus #-cd $(LINPHONE_BUILD_DIR) && make distclean -cd $(LINPHONE_SRC_DIR) && rm -f configure -clean-makefile-linphone: clean-makefile-libantlr clean-makefile-polarssl clean-makefile-belle-sip clean-makefile-speex clean-makefile-srtp clean-makefile-zrtpcpp clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl clean-makefile-msamr clean-makefile-ffmpeg clean-makefile-libvpx clean-makefile-mssilk +clean-makefile-linphone: clean-makefile-libantlr clean-makefile-polarssl clean-makefile-belle-sip clean-makefile-speex clean-makefile-srtp clean-makefile-zrtpcpp clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl clean-makefile-msamr clean-makefile-ffmpeg clean-makefile-libvpx clean-makefile-mssilk clean-makefile-opus cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile diff --git a/submodules/build/builders.d/libvpx.mk b/submodules/build/builders.d/libvpx.mk index a0a164e78..7623bbe11 100644 --- a/submodules/build/builders.d/libvpx.mk +++ b/submodules/build/builders.d/libvpx.mk @@ -14,6 +14,9 @@ else libvpx_configure_options+= --target=x86-darwin10-gcc endif libvpx_dir?=externals/libvpx +all_p=armv6-darwin-gcc #neon Cortex-A8 +all_p+=armv7-darwin-gcc #neon Cortex-A8 +all_p+=armv7s-darwin-gcc #neon Cortex-A8 $(BUILDER_SRC_DIR)/$(libvpx_dir)/patched.stamp: cd $(BUILDER_SRC_DIR)/$(libvpx_dir) \ @@ -24,7 +27,7 @@ $(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk: $(BUILDER_SRC_DIR)/$(libvpx_dir)/p mkdir -p $(BUILDER_BUILD_DIR)/$(libvpx_dir) cd $(BUILDER_BUILD_DIR)/$(libvpx_dir)/ \ && host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \ - && SYSROOT_PATH=$$SYSROOT_PATH SDK_BIN_PATH=$$SDK_BIN_PATH $(BUILDER_SRC_DIR)/$(libvpx_dir)/configure --prefix=$(prefix) $(libvpx_configure_options) + && export all_platforms="${all_p}" && $(BUILDER_SRC_DIR)/$(libvpx_dir)/configure --prefix=$(prefix) --sdk-path=$$SDK_BIN_PATH/../../ --libc=$$SYSROOT_PATH $(libvpx_configure_options) build-libvpx: $(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install diff --git a/submodules/build/builders.d/libvpx.patch b/submodules/build/builders.d/libvpx.patch index d651ccfc8..0cd793f5f 100644 --- a/submodules/build/builders.d/libvpx.patch +++ b/submodules/build/builders.d/libvpx.patch @@ -1,29 +1,9 @@ diff --git a/build/make/configure.sh b/build/make/configure.sh -index 0426f92..38fdcb2 100755 +index c99a01c..48f8876 100755 --- a/build/make/configure.sh +++ b/build/make/configure.sh -@@ -624,6 +624,9 @@ process_common_toolchain() { - if [ -d "/Developer/SDKs/MacOSX10.7.sdk" ]; then - osx_sdk_dir="/Developer/SDKs/MacOSX10.7.sdk" - fi -+ if test -n "$SYSROOT_PATH" ; then -+ osx_sdk_dir=$SYSROOT_PATH -+ fi - - case ${toolchain} in - *-darwin8-*) -@@ -743,9 +746,17 @@ process_common_toolchain() { - darwin*) - SDK_PATH=/Developer/Platforms/iPhoneOS.platform/Developer - TOOLCHAIN_PATH=${SDK_PATH}/usr/bin -+ if test -n "$SYSROOT_PATH" ; then -+ SDK_FULL_PATH=$SYSROOT_PATH -+ else -+ SDK_FULL_PATH="${SDK_PATH}/SDKs/iPhoneOS5.0.sdk" -+ fi -+ if test -n "$SDK_BIN_PATH" ; then -+ TOOLCHAIN_PATH=$SDK_BIN_PATH -+ fi +@@ -892,7 +892,7 @@ process_common_toolchain() { + CXX=${TOOLCHAIN_PATH}/g++ CC=${TOOLCHAIN_PATH}/gcc AR=${TOOLCHAIN_PATH}/ar - LD=${TOOLCHAIN_PATH}/arm-apple-darwin10-llvm-gcc-4.2 @@ -31,39 +11,12 @@ index 0426f92..38fdcb2 100755 AS=${TOOLCHAIN_PATH}/as STRIP=${TOOLCHAIN_PATH}/strip NM=${TOOLCHAIN_PATH}/nm -@@ -757,12 +768,12 @@ process_common_toolchain() { +@@ -904,7 +904,7 @@ process_common_toolchain() { ASFLAGS="-version -arch ${tgt_isa} -g" add_cflags -arch ${tgt_isa} - add_ldflags -arch_only ${tgt_isa} + add_ldflags -arch ${tgt_isa} -- add_cflags "-isysroot ${SDK_PATH}/SDKs/iPhoneOS5.0.sdk" -+ add_cflags "-isysroot $SDK_FULL_PATH" - - # This should be overridable -- alt_libc=${SDK_PATH}/SDKs/iPhoneOS5.0.sdk -+ alt_libc=$SDK_FULL_PATH - - # Add the paths for the alternate libc - for d in usr/include; do -diff --git a/configure b/configure -index 6f20c6b..4638ea2 100755 ---- a/configure -+++ b/configure -@@ -94,6 +94,7 @@ all_platforms="${all_platforms} iwmmxt-linux-gcc" - all_platforms="${all_platforms} iwmmxt2-linux-rvct" - all_platforms="${all_platforms} iwmmxt2-linux-gcc" - all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8 -+all_platforms="${all_platforms} armv7s-darwin-gcc" #neon Cortex-A8 - all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8 - all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8 - all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8 -@@ -198,6 +199,7 @@ ARCH_EXT_LIST=" - armv5te - armv6 - armv7 -+ armv7s - iwmmxt - iwmmxt2 - + if [ -z "${alt_libc}" ]; then + alt_libc=${SDK_PATH}/SDKs/iPhoneOS5.1.sdk diff --git a/submodules/build/builders.d/mssilk.mk b/submodules/build/builders.d/mssilk.mk index dcf8978c7..d6dcda448 100644 --- a/submodules/build/builders.d/mssilk.mk +++ b/submodules/build/builders.d/mssilk.mk @@ -30,7 +30,7 @@ $(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile: $(BUILDER_SRC_DIR)/$(mssilk_dir)/co echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(mssilk_dir) \033[0m" mkdir -p $(BUILDER_BUILD_DIR)/$(mssilk_dir) cd $(BUILDER_BUILD_DIR)/$(mssilk_dir)/ \ - && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site_gcc) \ $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \ --enable-static @@ -39,8 +39,8 @@ ifeq ($(enable_silk),yes) build-mssilk: $(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile echo -e "\033[01;32m building silk \033[0m" cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) \ - && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig \ - CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \ + CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site_gcc) \ make -j1 && make install diff --git a/submodules/build/builders.d/opencore-amr.mk b/submodules/build/builders.d/opencore-amr.mk index 362cbeafa..d701283a7 100644 --- a/submodules/build/builders.d/opencore-amr.mk +++ b/submodules/build/builders.d/opencore-amr.mk @@ -31,11 +31,11 @@ $(BUILDER_SRC_DIR)/$(opencore-amr_dir)/configure: $(BUILDER_SRC_DIR)/$(opencore- $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/Makefile: $(BUILDER_SRC_DIR)/$(opencore-amr_dir)/configure mkdir -p $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/ \ - && CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + && CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site_gcc) \ $(BUILDER_SRC_DIR)/$(opencore-amr_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} ${opencore-amr-configure-option} build-opencore-amr: $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/Makefile - cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install + cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site_gcc) make && make install clean-opencore-amr: cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && make clean diff --git a/submodules/build/builders.d/opus.mk b/submodules/build/builders.d/opus.mk new file mode 100644 index 000000000..f0e6dcf32 --- /dev/null +++ b/submodules/build/builders.d/opus.mk @@ -0,0 +1,69 @@ +############################################################################ +# opus.mk +# Copyright (C) 2013 Belledonne Communications,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. +# +############################################################################ +opus_dir?=externals/opus +enable_opus?=yes + +libopus_configure_options=--disable-extra-programs --disable-doc +ifneq (,$(findstring armv7,$(host))) + libopus_configure_options+= --enable-fixed-point --disable-asm +endif +ifneq (,$(findstring armv7s,$(host))) + libopus_configure_options+= --enable-fixed-point --disable-asm +endif + +$(BUILDER_SRC_DIR)/$(opus_dir)/configure: + @echo -e "\033[01;32m Running autogen for msopus in $(BUILDER_SRC_DIR)/$(opus_dir) \033[0m" + cd $(BUILDER_SRC_DIR)/$(opus_dir) && ./autogen.sh + +$(BUILDER_BUILD_DIR)/$(opus_dir)/Makefile: $(BUILDER_SRC_DIR)/$(opus_dir)/configure + @echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(opus_dir) \033[0m" + mkdir -p $(BUILDER_BUILD_DIR)/$(opus_dir) + cd $(BUILDER_BUILD_DIR)/$(opus_dir)/ \ + && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + $(BUILDER_SRC_DIR)/$(opus_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \ + ${libopus_configure_options} + +ifeq ($(enable_opus),yes) + +build-opus: $(BUILDER_BUILD_DIR)/$(opus_dir)/Makefile + @echo -e "\033[01;32m building opus \033[0m" + cd $(BUILDER_BUILD_DIR)/$(opus_dir) \ + && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \ + CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + make && make install + + +else +build-opus: + @echo "opus is disabled" + +endif + +clean-opus: + -cd $(BUILDER_BUILD_DIR)/$(opus_dir) && make clean + +veryclean-opus: + -cd $(BUILDER_BUILD_DIR)/$(opus_dir) && make distclean + rm -f $(BUILDER_SRC_DIR)/$(opus_dir)/configure + +clean-makefile-opus: + -cd $(BUILDER_BUILD_DIR)/$(opus_dir) && rm -f Makefile diff --git a/submodules/build/builders.d/srtp.mk b/submodules/build/builders.d/srtp.mk index dd5ebfc22..ee2d6c92a 100644 --- a/submodules/build/builders.d/srtp.mk +++ b/submodules/build/builders.d/srtp.mk @@ -11,7 +11,7 @@ $(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile: $(BUILDER_SRC_DIR)/$(srtp_dir)/config build-srtp: $(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile host_alias=$(host) && . /$(BUILDER_SRC_DIR)/build/$(config_site) && \ - cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make libsrtp.a AR=$$AR && make install + cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make libsrtp.a AR="$$AR" && make install clean-srtp: -cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make clean diff --git a/submodules/build/iphone-config-gcc.site b/submodules/build/iphone-config-gcc.site new file mode 100644 index 000000000..125bdebcd --- /dev/null +++ b/submodules/build/iphone-config-gcc.site @@ -0,0 +1,51 @@ +# -*- shell-script -*- + +SDK_VERSION_MAJOR=4 +SDK_VERSION=4.0 +MCPU="" +if test "${host_alias}" = "i386-apple-darwin" ; then + PLATFORM=Simulator + ARCH=i386 + CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=i386" + MCPU="" +elif test "${host_alias}" = "armv6-apple-darwin" ; then + ARCH=armv6 + PLATFORM=OS + CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=arm" + MCPU="-mcpu=arm1176jzf-s" +elif test "${host_alias}" = "armv7-apple-darwin" ; then + ARCH=armv7 + PLATFORM=OS + CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=arm" + MCPU="-mcpu=cortex-a8" +elif test "${host_alias}" = "armv7s-apple-darwin" ; then + ARCH=armv7s + PLATFORM=OS + CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=arm" +else + echo "bad host ${host_alias} must be either i386-apple-darwin or armv6-apple-darwin" + exit +fi +echo "Loading config.site for iPhone platform=${PLATFORM} version=${SDK_VERSION}" +XCODE_DEV_PATH=`xcode-select -print-path` +#new path with Xcode 4.3: +if test -d ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs ; then + SDK_PATH_LIST=`ls -drt ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*` + SDK_BIN_PATH=${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin +else + SDK_PATH_LIST=`ls -drt /Developer/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*` + SDK_BIN_PATH=/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin +fi + +for SYSROOT_PATH in $SDK_PATH_LIST ; do echo $SYSROOT_PATH ; done ; +echo "Selecting SDK path = ${SYSROOT_PATH}" +COMMON_FLAGS=" -arch ${ARCH} ${MCPU} -isysroot ${SYSROOT_PATH} -miphoneos-version-min=${SDK_VERSION} -DTARGET_OS_IPHONE=1 -D__IOS" +CC="${SDK_BIN_PATH}/gcc -std=c99 $COMMON_FLAGS" +OBJC="${SDK_BIN_PATH}/gcc -std=c99 $COMMON_FLAGS" +CXX="${SDK_BIN_PATH}/g++ $COMMON_FLAGS" +LD="${SDK_BIN_PATH}/ld -arch ${ARCH}" +AR=${SDK_BIN_PATH}/ar +RANLIB=${SDK_BIN_PATH}/ranlib + +CPPFLAGS="-Dasm=__asm" +OBJCFLAGS="-x objective-c -fexceptions -gdwarf-2 -fobjc-abi-version=2 -fobjc-legacy-dispatch" diff --git a/submodules/build/iphone-config.site b/submodules/build/iphone-config.site index 61b1105b5..b7f89f6a7 100644 --- a/submodules/build/iphone-config.site +++ b/submodules/build/iphone-config.site @@ -27,11 +27,11 @@ else exit fi echo "Loading config.site for iPhone platform=${PLATFORM} version=${SDK_VERSION}" -XCODE_ROOT=/Applications/Xcode.app +XCODE_DEV_PATH=`xcode-select -print-path` #new path with Xcode 4.3: -if test -d ${XCODE_ROOT}/Contents/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs ; then - SDK_PATH_LIST=`ls -drt ${XCODE_ROOT}/Contents/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*` - SDK_BIN_PATH=${XCODE_ROOT}/Contents/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin +if test -d ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs ; then + SDK_PATH_LIST=`ls -drt ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*` + SDK_BIN_PATH=${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin else SDK_PATH_LIST=`ls -drt /Developer/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*` SDK_BIN_PATH=/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin @@ -40,12 +40,12 @@ fi for SYSROOT_PATH in $SDK_PATH_LIST ; do echo $SYSROOT_PATH ; done ; echo "Selecting SDK path = ${SYSROOT_PATH}" COMMON_FLAGS=" -arch ${ARCH} ${MCPU} -isysroot ${SYSROOT_PATH} -miphoneos-version-min=${SDK_VERSION} -DTARGET_OS_IPHONE=1 -D__IOS -fms-extensions" -CC="${SDK_BIN_PATH}/gcc -std=c99 $COMMON_FLAGS" -OBJC="${SDK_BIN_PATH}/gcc -std=c99 $COMMON_FLAGS" -CXX="${SDK_BIN_PATH}/g++ $COMMON_FLAGS" -LD="${SDK_BIN_PATH}/ld -arch ${ARCH}" -AR=${SDK_BIN_PATH}/ar -RANLIB=${SDK_BIN_PATH}/ranlib +CC="xcrun clang -std=c99 $COMMON_FLAGS" +OBJC="xcrun clang -std=c99 $COMMON_FLAGS" +CXX="xcrun clang++ $COMMON_FLAGS" +LD="xcrun ld -arch ${ARCH}" +AR="xcrun ar" +RANLIB="xcrun ranlib" CPPFLAGS="-Dasm=__asm" OBJCFLAGS="-x objective-c -fexceptions -gdwarf-2 -fobjc-abi-version=2 -fobjc-legacy-dispatch" diff --git a/submodules/externals/libvpx b/submodules/externals/libvpx index c8df1656b..b9ce43029 160000 --- a/submodules/externals/libvpx +++ b/submodules/externals/libvpx @@ -1 +1 @@ -Subproject commit c8df1656bd94928059204242e778bd5b8b9dc7aa +Subproject commit b9ce43029298182668d4dcb0e0814189e4a63c2a diff --git a/submodules/externals/opus b/submodules/externals/opus new file mode 160000 index 000000000..fcecd29ab --- /dev/null +++ b/submodules/externals/opus @@ -0,0 +1 @@ +Subproject commit fcecd29abf32164326e568acdcdf7d8e877b33b1 diff --git a/submodules/externals/speex b/submodules/externals/speex index 89e99a481..3c3178184 160000 --- a/submodules/externals/speex +++ b/submodules/externals/speex @@ -1 +1 @@ -Subproject commit 89e99a4814fd62945ff559d3d37d9aa92caf3169 +Subproject commit 3c317818481b67e0dd732e5dc045d6b981a8775b diff --git a/submodules/liblinphone.xcodeproj/project.pbxproj b/submodules/liblinphone.xcodeproj/project.pbxproj index 9e9444f17..826660b82 100644 --- a/submodules/liblinphone.xcodeproj/project.pbxproj +++ b/submodules/liblinphone.xcodeproj/project.pbxproj @@ -467,6 +467,16 @@ 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 */; }; + 22AF73BE1753E83700BE8398 /* msopus.c in Sources */ = {isa = PBXBuildFile; fileRef = 22AF73BD1753E83700BE8398 /* msopus.c */; }; + 22AF73C01753F3E100BE8398 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AF73BF1753F3E100BE8398 /* libopus.a */; }; + 22D07CD016F3BC5F009F2C9E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 22D07CB416F3BC5F009F2C9E /* InfoPlist.strings */; }; + 22D07CD116F3BC5F009F2C9E /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22D07CB616F3BC5F009F2C9E /* MainWindow.xib */; }; + 22D07CD216F3BC5F009F2C9E /* mediastreamViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22D07CB816F3BC5F009F2C9E /* mediastreamViewController.xib */; }; + 22D07CD316F3BC5F009F2C9E /* mediastream-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22D07CBA16F3BC5F009F2C9E /* mediastream-Info.plist */; }; + 22D07CD416F3BC5F009F2C9E /* mediastreamAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 22D07CBD16F3BC5F009F2C9E /* mediastreamAppDelegate.m */; }; + 22D07CD516F3BC5F009F2C9E /* mediastreamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22D07CBF16F3BC5F009F2C9E /* mediastreamViewController.m */; }; + 22D07CD616F3BC5F009F2C9E /* mediastream.c in Sources */ = {isa = PBXBuildFile; fileRef = 22D07CC016F3BC5F009F2C9E /* mediastream.c */; }; + 22D07CE516F3BFCB009F2C9E /* speexec.c in Sources */ = {isa = PBXBuildFile; fileRef = 22D07CE416F3BFCB009F2C9E /* speexec.c */; }; 22DD19C113A8D7FA0018ECD4 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD19C013A8D7FA0018ECD4 /* UIKit.framework */; }; 22DD19C213A8D7FA0018ECD4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; 22DD19C413A8D7FA0018ECD4 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD19C313A8D7FA0018ECD4 /* CoreGraphics.framework */; }; @@ -777,6 +787,19 @@ 22A10B5311F84E2D00373793 /* proto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = proto.h; sourceTree = ""; }; 22A10B5411F84E2D00373793 /* toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = toast.h; sourceTree = ""; }; 22A10B5511F84E2D00373793 /* unproto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unproto.h; sourceTree = ""; }; + 22AF73BD1753E83700BE8398 /* msopus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msopus.c; sourceTree = ""; }; + 22AF73BF1753F3E100BE8398 /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopus.a; path = "../liblinphone-sdk/apple-darwin/lib/libopus.a"; sourceTree = ""; }; + 22D07CB516F3BC5F009F2C9E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 22D07CB716F3BC5F009F2C9E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; + 22D07CB916F3BC5F009F2C9E /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/mediastreamViewController.xib; sourceTree = ""; }; + 22D07CBA16F3BC5F009F2C9E /* mediastream-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "mediastream-Info.plist"; sourceTree = ""; }; + 22D07CBB16F3BC5F009F2C9E /* mediastream-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mediastream-Prefix.pch"; sourceTree = ""; }; + 22D07CBC16F3BC5F009F2C9E /* mediastreamAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mediastreamAppDelegate.h; sourceTree = ""; }; + 22D07CBD16F3BC5F009F2C9E /* mediastreamAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = mediastreamAppDelegate.m; sourceTree = ""; }; + 22D07CBE16F3BC5F009F2C9E /* mediastreamViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mediastreamViewController.h; sourceTree = ""; }; + 22D07CBF16F3BC5F009F2C9E /* mediastreamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = mediastreamViewController.m; sourceTree = ""; }; + 22D07CC016F3BC5F009F2C9E /* mediastream.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = mediastream.c; sourceTree = ""; }; + 22D07CE416F3BFCB009F2C9E /* speexec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = speexec.c; sourceTree = ""; }; 22DD19BE13A8D7FA0018ECD4 /* mediastream.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = mediastream.app; sourceTree = BUILT_PRODUCTS_DIR; }; 22DD19C013A8D7FA0018ECD4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 22DD19C313A8D7FA0018ECD4 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -834,6 +857,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22AF73C01753F3E100BE8398 /* libopus.a in Frameworks */, 225D65CD1521C19A008B2E81 /* libortp.a in Frameworks */, 225D65CC1521C195008B2E81 /* libmediastreamer.a in Frameworks */, 2211DB9F14765CED00DEE054 /* libmssilk.a in Frameworks */, @@ -887,6 +911,7 @@ 0867D691FE84028FC02AAC07 /* liblinphone */ = { isa = PBXGroup; children = ( + 22AF73BF1753F3E100BE8398 /* libopus.a */, 2211DBA0147660BB00DEE054 /* libSKP_SILK_SDK.a */, 2211DB9E14765CEC00DEE054 /* libmssilk.a */, 7066FC0913E830B800EFC6DC /* libvpx.a */, @@ -1171,6 +1196,9 @@ 223CA7EF16D9268D00EF1BEC /* audiofilters */ = { isa = PBXGroup; children = ( + 22AF73BD1753E83700BE8398 /* msopus.c */, + 0406A7651721FF79009FD24F /* aac-eld.c */, + 22D07CE416F3BFCB009F2C9E /* speexec.c */, 223CA7F016D9268D00EF1BEC /* alaw.c */, 223CA7F216D9268D00EF1BEC /* aqsnd.c */, 223CA7F416D9268D00EF1BEC /* audiomixer.c */, @@ -1938,6 +1966,8 @@ 223CA8D316D9268D00EF1BEC /* ringstream.c in Sources */, 223CA8D416D9268D00EF1BEC /* scaler.c in Sources */, 223CA8D716D9268D00EF1BEC /* videostream.c in Sources */, + 22D07CE516F3BFCB009F2C9E /* speexec.c in Sources */, + 22AF73BE1753E83700BE8398 /* msopus.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/linphone b/submodules/linphone index aae5ae888..6e3c6551a 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit aae5ae888c24542bda99ecdef882f0fa0f607670 +Subproject commit 6e3c6551a9cac6d231910420386e9666a0a30c0b