implement mini incall view

This commit is contained in:
Jehan Monnier 2010-02-05 11:53:28 +01:00
parent fce7a0f297
commit 38c6aa938f
18 changed files with 436 additions and 2440 deletions

View file

@ -79,7 +79,7 @@
<object class="IBUIButton" id="292237329">
<reference key="NSNextResponder" ref="646889387"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{238, 0}, {72, 37}}</string>
<string key="NSFrame">{{238, 4}, {72, 37}}</string>
<reference key="NSSuperview" ref="646889387"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>

View file

@ -38,7 +38,7 @@
CFTypeRef multiValue = ABRecordCopyValue(person, property);
CFIndex valueIdx = ABMultiValueGetIndexForIdentifier(multiValue,identifier);
NSString *phoneNumber = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, valueIdx);
[phoneControllerDelegate setPhoneNumber:phoneNumber];
[phoneControllerDelegate setPhoneNumber:phoneNumber withDisplayName:(NSString*)ABRecordCopyCompositeName(person)];
[linphoneDelegate selectDialerTab];
return false;

View file

@ -1,36 +0,0 @@
/* FavoriteTableViewController.h
*
* Copyright (C) 2009 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 Library 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 <UIKit/UIKit.h>
#import "GenericTabViewController.h"
@interface FavoriteTableViewController : GenericTabViewController<ABPeoplePickerNavigationControllerDelegate> {
UIButton* add;
UIButton* edit;
}
- (IBAction)doAddFavorite:(id)sender;
- (IBAction)doEditFavorite:(id)sender;
@property (nonatomic, retain) IBOutlet UIButton* add;
@property (nonatomic, retain) IBOutlet UIButton* edit;
@end

View file

@ -1,242 +0,0 @@
/* FavoriteTableViewController.h
*
* Copyright (C) 2009 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 Library 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 "FavoriteTableViewController.h"
@implementation FavoriteTableViewController
@synthesize add;
@synthesize edit;
/*
- (id)initWithStyle:(UITableViewStyle)style {
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
if (self = [super initWithStyle:style]) {
}
return self;
}
*/
/*
- (void)viewDidLoad {
[super viewDidLoad];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
*/
/*
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
*/
/*
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
*/
/*
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
}
*/
/*
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (IBAction)doAddFavorite:(id)sender {
ABPeoplePickerNavigationController* peoplePickerController = [[[ABPeoplePickerNavigationController alloc] init] autorelease];
[peoplePickerController setPeoplePickerDelegate:self];
[self presentModalViewController: peoplePickerController animated:true];
}
- (IBAction)doEditFavorite:(id)sender {
if ([ self tableView:self.tableView numberOfRowsInSection:0] <= 0) {
return;
}
if (self.tableView.editing) {
[self.tableView setEditing:false animated:true];
[self.edit setTitle:@"Edit" forState: UIControlStateNormal];
} else {
[self.tableView setEditing:true animated:true];
[self.edit setTitle:@"Ok" forState: UIControlStateNormal];
}
}
#pragma mark Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
const MSList * friends =linphone_core_get_friend_list(myLinphoneCore);
return ms_list_size(friends);
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
const char* name = linphone_address_get_username(linphone_friend_get_uri(friend));
[cell.textLabel setText:[[NSString alloc] initWithCString:name encoding:[NSString defaultCStringEncoding]]];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
/*
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
if (isEditing) {
} else {
[super tableView:tableView accessoryButtonTappedForRowWithIndexPath:indexPath];
}
}
*/
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Navigation logic may go here. Create and push another view controller.
// AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
// [self.navigationController pushViewController:anotherViewController];
// [anotherViewController release];
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
const char* name = linphone_address_get_username(linphone_friend_get_uri(friend));
[phoneControllerDelegate setPhoneNumber:[[NSString alloc] initWithCString:name encoding:[NSString defaultCStringEncoding]]];
[linphoneDelegate selectDialerTab];
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
LinphoneFriend* friend = ms_list_nth_data(linphone_core_get_friend_list(myLinphoneCore), indexPath.row);
linphone_core_remove_friend(myLinphoneCore, friend);
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
if ([ self tableView:self.tableView numberOfRowsInSection:0] <= 0) {
[self.tableView setEditing:false animated:true];
[self.edit setTitle:@"Edit" forState: UIControlStateNormal];
}
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
return true;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier {
CFTypeRef multiValue = ABRecordCopyValue(person, property);
CFIndex valueIdx = ABMultiValueGetIndexForIdentifier(multiValue,identifier);
NSString *phone = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, valueIdx);
NSString *phoneUri = [NSString stringWithFormat:@"sip:%s@dummy.net",[phone cStringUsingEncoding:[NSString defaultCStringEncoding]]];
NSString* compositeName = ABRecordCopyCompositeName(person);
LinphoneFriend * newFriend = linphone_friend_new_with_addr([phoneUri cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_friend_set_name(newFriend,[compositeName cStringUsingEncoding:[NSString defaultCStringEncoding]]);
linphone_friend_send_subscribe(newFriend, false);
//linphone_friend_set_sip_addr(newFriend, const char *uri);
linphone_core_add_friend(myLinphoneCore, newFriend);
[self dismissModalViewControllerAnimated:true];
return false;
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
[self dismissModalViewControllerAnimated:true];
}
- (void)dealloc {
[super dealloc];
}
@end

View file

@ -1,382 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">784</int>
<string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">680</string>
<string key="IBDocument.AppKitVersion">949.54</string>
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="4"/>
<integer value="9"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
</object>
<object class="IBUITableView" id="873029372">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor" id="855852336">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<bool key="IBUIBouncesZoom">NO</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
<float key="IBUIRowHeight">4.400000e+01</float>
<float key="IBUISectionHeaderHeight">2.200000e+01</float>
<float key="IBUISectionFooterHeight">2.200000e+01</float>
</object>
<object class="IBUIView" id="789622983">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="265048111">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">Favorites</string>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<object class="NSColor" key="IBUIShadowColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwLjAwOTk5OTk5OTgAA</bytes>
</object>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
<int key="IBUITextAlignment">1</int>
</object>
<object class="IBUIButton" id="904182832">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{264, 3}, {44, 37}}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSFont" key="IBUIFont" id="303503024">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">+</string>
<reference key="IBUIHighlightedTitleColor" ref="855852336"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="186894792">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<object class="IBUIButton" id="162202316">
<reference key="NSNextResponder" ref="789622983"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 3}, {61, 37}}</string>
<reference key="NSSuperview" ref="789622983"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="303503024"/>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Edit</string>
<reference key="IBUIHighlightedTitleColor" ref="855852336"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="186894792"/>
</object>
</object>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42OTcwODAzMSAwLjk5MDAwMDAxAA</bytes>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="873029372"/>
</object>
<int key="connectionID">5</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="873029372"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">6</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="873029372"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">7</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">header</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="789622983"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">add</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="904182832"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doAddFavorite:</string>
<reference key="source" ref="904182832"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">edit</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="162202316"/>
</object>
<int key="connectionID">15</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doEditFavorite:</string>
<reference key="source" ref="162202316"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">16</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBObjectRecord">
<int key="objectID">0</int>
<object class="NSArray" key="object" id="766671930">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="766671930"/>
<string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="766671930"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="873029372"/>
<reference key="parent" ref="766671930"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="789622983"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="265048111"/>
<reference ref="904182832"/>
<reference ref="162202316"/>
</object>
<reference key="parent" ref="766671930"/>
<string key="objectName">header</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="265048111"/>
<reference key="parent" ref="789622983"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="904182832"/>
<reference key="parent" ref="789622983"/>
<string key="objectName">add</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="162202316"/>
<reference key="parent" ref="789622983"/>
<string key="objectName">edit</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>10.IBPluginDependency</string>
<string>11.IBPluginDependency</string>
<string>4.IBEditorWindowLastContentRect</string>
<string>4.IBPluginDependency</string>
<string>8.IBEditorWindowLastContentRect</string>
<string>8.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>FavoriteTableViewController</string>
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{441, 269}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{312, 742}, {320, 44}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
<object class="NSMutableDictionary" key="unlocalizedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">16</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">FavoriteTableViewController</string>
<string key="superclassName">GenericTabViewController</string>
<object class="NSMutableDictionary" key="actions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>doAddFavorite:</string>
<string>doEditFavorite:</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>add</string>
<string>edit</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIButton</string>
<string>UIButton</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/FavoriteTableViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">GenericTabViewController</string>
<string key="superclassName">UITableViewController</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>header</string>
<string>linphoneDelegate</string>
<string>phoneControllerDelegate</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIView</string>
<string>id</string>
<string>id</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/GenericTabViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.LastKnownRelativeProjectPath">../linphone.xcodeproj</string>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">3.1</string>
</data>
</archive>

View file

@ -1,102 +0,0 @@
/* IncallViewController.h
*
* Copyright (C) 2009 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 Library 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 <UIKit/UIKit.h>
#import "linphonecore.h"
#import "PhoneViewController.h"
#import <AddressBookUI/ABPeoplePickerNavigationController.h>
@interface IncallViewController : UIViewController <ABPeoplePickerNavigationControllerDelegate> {
LinphoneCore* myLinphoneCore;
id<PhoneViewControllerDelegate> phoneviewDelegate;
NSTimer *durationRefreasher;
UIView* controlSubView;
UIView* padSubView;
UILabel* peerName;
UILabel* peerNumber;
UILabel* callDuration;
UILabel* status;
UIButton* end;
UIButton* dialer;
UIButton* mute;
UIButton* speaker;
UIButton* contacts;
//key pad
UIButton* one;
UIButton* two;
UIButton* three;
UIButton* four;
UIButton* five;
UIButton* six;
UIButton* seven;
UIButton* eight;
UIButton* nine;
UIButton* star;
UIButton* zero;
UIButton* hash;
UIButton* close;
bool isMuted;
bool isSpeaker;
ABPeoplePickerNavigationController* myPeoplePickerController;
}
-(void) setLinphoneCore:(LinphoneCore*) lc;
-(void) startCall;
-(void)displayStatus:(NSString*) message;
- (IBAction)doAction:(id)sender;
@property (nonatomic, retain) IBOutlet UIView* controlSubView;
@property (nonatomic, retain) IBOutlet UIView* padSubView;
@property (nonatomic, retain) IBOutlet UILabel* peerName;
@property (nonatomic, retain) IBOutlet UILabel* peerNumber;
@property (nonatomic, retain) IBOutlet UILabel* callDuration;
@property (nonatomic, retain) IBOutlet UILabel* status;
@property (nonatomic, retain) IBOutlet UIButton* end;
@property (nonatomic, retain) IBOutlet UIButton* dialer;
@property (nonatomic, retain) IBOutlet UIButton* mute;
@property (nonatomic, retain) IBOutlet UIButton* speaker;
@property (nonatomic, retain) IBOutlet UIButton* contacts;
@property (nonatomic, retain) IBOutlet UIButton* one;
@property (nonatomic, retain) IBOutlet UIButton* two;
@property (nonatomic, retain) IBOutlet UIButton* three;
@property (nonatomic, retain) IBOutlet UIButton* four;
@property (nonatomic, retain) IBOutlet UIButton* five;
@property (nonatomic, retain) IBOutlet UIButton* six;
@property (nonatomic, retain) IBOutlet UIButton* seven;
@property (nonatomic, retain) IBOutlet UIButton* eight;
@property (nonatomic, retain) IBOutlet UIButton* nine;
@property (nonatomic, retain) IBOutlet UIButton* star;
@property (nonatomic, retain) IBOutlet UIButton* zero;
@property (nonatomic, retain) IBOutlet UIButton* hash;
@property (nonatomic, retain) IBOutlet UIButton* close;
@property (nonatomic, retain) id<PhoneViewControllerDelegate> phoneviewDelegate;
@end

View file

@ -1,243 +0,0 @@
/* IncallViewController.h
*
* Copyright (C) 2009 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 Library 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 "IncallViewController.h"
#import <AudioToolbox/AudioToolbox.h>
#import "linphonecore.h"
@implementation IncallViewController
@synthesize phoneviewDelegate;
@synthesize controlSubView;
@synthesize padSubView;
@synthesize peerName;
@synthesize peerNumber;
@synthesize callDuration;
@synthesize status;
@synthesize end;
@synthesize close;
@synthesize mute;
@synthesize dialer;
@synthesize speaker;
@synthesize contacts;
@synthesize one;
@synthesize two;
@synthesize three;
@synthesize four;
@synthesize five;
@synthesize six;
@synthesize seven;
@synthesize eight;
@synthesize nine;
@synthesize star;
@synthesize zero;
@synthesize hash;
/*
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
isMuted = false;
isSpeaker = false;
}
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
if (durationRefreasher != nil) {
[ durationRefreasher invalidate];
}
}
-(void) setLinphoneCore:(LinphoneCore*) lc {
myLinphoneCore = lc;
}
-(void)displayStatus:(NSString*) message {
[status setText:message];
}
-(void) startCall {
const LinphoneAddress* address = linphone_core_get_remote_uri(myLinphoneCore);
const char* displayName = linphone_address_get_display_name(address)?linphone_address_get_display_name(address):"";
[peerName setText:[NSString stringWithCString:displayName length:strlen(displayName)]];
const char* username = linphone_address_get_username(address)!=0?linphone_address_get_username(address):"";
[peerNumber setText:[NSString stringWithCString:username length:strlen(username)]];
// start scheduler
durationRefreasher = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(updateCallDuration)
userInfo:nil
repeats:YES];
}
-(void)updateCallDuration {
int lDuration = linphone_core_get_current_call_duration(myLinphoneCore);
if (lDuration < 60) {
[callDuration setText:[NSString stringWithFormat: @"%i s", lDuration]];
} else {
[callDuration setText:[NSString stringWithFormat: @"%i:%i", lDuration/60,lDuration - 60 *(lDuration/60)]];
}
}
- (IBAction)doAction:(id)sender {
if (linphone_core_in_call(myLinphoneCore)) {
//incall behavior
if (sender == one) {
linphone_core_send_dtmf(myLinphoneCore,'1');
} else if (sender == two) {
linphone_core_send_dtmf(myLinphoneCore,'2');
} else if (sender == three) {
linphone_core_send_dtmf(myLinphoneCore,'3');
} else if (sender == four) {
linphone_core_send_dtmf(myLinphoneCore,'4');
} else if (sender == five) {
linphone_core_send_dtmf(myLinphoneCore,'5');
} else if (sender == six) {
linphone_core_send_dtmf(myLinphoneCore,'6');
} else if (sender == seven) {
linphone_core_send_dtmf(myLinphoneCore,'7');
} else if (sender == eight) {
linphone_core_send_dtmf(myLinphoneCore,'8');
} else if (sender == nine) {
linphone_core_send_dtmf(myLinphoneCore,'9');
} else if (sender == star) {
linphone_core_send_dtmf(myLinphoneCore,'*');
} else if (sender == zero) {
linphone_core_send_dtmf(myLinphoneCore,'0');
} else if (sender == hash) {
linphone_core_send_dtmf(myLinphoneCore,'#');
}
}
if (sender == end) {
linphone_core_terminate_call(myLinphoneCore,NULL);
} else if (sender == dialer) {
[controlSubView setHidden:true];
[padSubView setHidden:false];
} else if (sender == contacts) {
// start people picker
myPeoplePickerController = [[[ABPeoplePickerNavigationController alloc] init] autorelease];
[myPeoplePickerController setPeoplePickerDelegate:self];
[self presentModalViewController: myPeoplePickerController animated:true];
} else if (sender == close) {
[controlSubView setHidden:false];
[padSubView setHidden:true];
} else if (sender == mute) {
isMuted = isMuted?false:true;
linphone_core_mute_mic(myLinphoneCore,isMuted);
// swithc buttun state
UIImage * tmpImage = [mute backgroundImageForState: UIControlStateNormal];
[mute setBackgroundImage:[mute backgroundImageForState: UIControlStateHighlighted] forState:UIControlStateNormal];
[mute setBackgroundImage:tmpImage forState:UIControlStateHighlighted];
} else if (sender == speaker) {
isSpeaker = isSpeaker?false:true;
if (isSpeaker) {
//redirect audio to speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
} else {
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
}
// switch button state
UIImage * tmpImage = [speaker backgroundImageForState: UIControlStateNormal];
[speaker setBackgroundImage:[speaker backgroundImageForState: UIControlStateHighlighted] forState:UIControlStateNormal];
[speaker setBackgroundImage:tmpImage forState:UIControlStateHighlighted];
}else {
NSLog(@"unknown event from incall view");
}
}
// handle people picker behavior
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
return true;
}
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier {
return false;
}
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {
[self dismissModalViewControllerAnimated:true];
}
- (void)dealloc {
[super dealloc];
}
@end

File diff suppressed because it is too large Load diff

View file

@ -23,6 +23,7 @@
@protocol PhoneViewControllerDelegate
-(void)setPhoneNumber:(NSString*)number;
-(void)setPhoneNumber:(NSString*)number withDisplayName:(NSString*) name;
-(void)dismissIncallView;
-(void)displayStatus:(NSString*) message;
@end
@ -33,6 +34,15 @@
@private
//UI definition
UITextField* address;
NSString* displayName;
UIView* incallView;
UILabel* callDuration;
UIButton* mute;
UIButton* speaker;
UILabel* peerLabel;
NSTimer *durationRefreasher;
UIButton* call;
UIButton* hangup;
@ -53,6 +63,10 @@
UIButton* hash;
UIButton* back;
bool isMuted;
bool isSpeaker;
/*
* lib linphone main context
*/
@ -65,6 +79,13 @@
@property (nonatomic, retain) IBOutlet UIButton* hangup;
@property (nonatomic, retain) IBOutlet UILabel* status;
@property (nonatomic, retain) IBOutlet UIView* incallView;
@property (nonatomic, retain) IBOutlet UILabel* callDuration;
@property (nonatomic, retain) IBOutlet UIButton* mute;
@property (nonatomic, retain) IBOutlet UIButton* speaker;
@property (nonatomic, retain) IBOutlet UILabel* peerLabel;
@property (nonatomic, retain) IBOutlet UIButton* one;
@property (nonatomic, retain) IBOutlet UIButton* two;
@property (nonatomic, retain) IBOutlet UIButton* three;
@ -102,7 +123,11 @@
- (IBAction)doKeyPadUp:(id)sender;
-(void) muteAction:(bool) value;
-(void) speakerAction:(bool) value;
-(void) dismissAlertDialog:(UIAlertView*)alertView;
@end

View file

@ -31,6 +31,12 @@
@synthesize hangup;
@synthesize status;
@synthesize incallView;
@synthesize callDuration;
@synthesize mute;
@synthesize speaker;
@synthesize peerLabel;
@synthesize one;
@synthesize two;
@synthesize three;
@ -48,6 +54,14 @@
-(void)setPhoneNumber:(NSString*)number {
[address setText:number];
if (displayName) {
[displayName release];
displayName=nil;
}
}
-(void)setPhoneNumber:(NSString*)number withDisplayName:(NSString*) name {
[self setPhoneNumber:number];
displayName = name;
}
-(void)dismissIncallView {
@ -59,22 +73,39 @@
if (sender == call) {
if (!linphone_core_in_call(mCore)) {
const char* lCallee = [[address text] cStringUsingEncoding:[NSString defaultCStringEncoding]];
linphone_core_invite(mCore,lCallee) ;
if ([address.text length] == 0) return; //just return
if ([address.text hasPrefix:@"sip:"]) {
linphone_core_invite(mCore, [address.text cStringUsingEncoding:[NSString defaultCStringEncoding]]);
} else {
char normalizedUserName[256];
LinphoneProxyConfig* proxyCfg;
//get default proxy
linphone_core_get_default_proxy(mCore,&proxyCfg);
NSString* toUserName = [NSString stringWithString:[address text]];
linphone_proxy_config_normalize_number(proxyCfg,[toUserName cStringUsingEncoding:[NSString defaultCStringEncoding]],normalizedUserName,sizeof(normalizedUserName));
LinphoneAddress* tmpAddress = linphone_address_new(linphone_core_get_identity(mCore));
linphone_address_set_username(tmpAddress,normalizedUserName);
linphone_address_set_display_name(tmpAddress,displayName?[displayName cStringUsingEncoding:[NSString defaultCStringEncoding]]:nil);
linphone_core_invite(mCore,linphone_address_as_string(tmpAddress)) ;
linphone_address_destroy(tmpAddress);
}
if (linphone_core_inc_invite_pending(mCore)) {
} else if (linphone_core_inc_invite_pending(mCore)) {
linphone_core_accept_call(mCore,NULL);
}
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
}
//Cancel audio route redirection
} else if (sender == hangup) {
linphone_core_terminate_call(mCore,NULL);
} else if (sender == mute) {
[self muteAction:!isMuted];
} else if (sender == speaker) {
[self speakerAction:!isSpeaker];
}
}
@ -200,14 +231,6 @@
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
if (myIncallViewController == nil) {
myIncallViewController = [[IncallViewController alloc] initWithNibName:@"IncallViewController" bundle:[NSBundle mainBundle]];
[myIncallViewController setPhoneviewDelegate:self];
}
}
@ -245,6 +268,17 @@
[alertView dismissWithClickedButtonIndex:0 animated:TRUE];
}
-(void)updateCallDuration {
int lDuration = linphone_core_get_current_call_duration(mCore);
if (lDuration < 60) {
[callDuration setText:[NSString stringWithFormat: @"%i s", lDuration]];
} else {
[callDuration setText:[NSString stringWithFormat: @"%i:%i", lDuration/60,lDuration - 60 *(lDuration/60)]];
}
}
- (void)dealloc {
[address dealloc];
[call dealloc];
@ -295,10 +329,43 @@
break;
case GSTATE_CALL_IN_CONNECTED:
case GSTATE_CALL_OUT_CONNECTED: {
[self muteAction:false];
[self speakerAction:false];
const LinphoneAddress* callAddress = linphone_core_get_remote_uri(mCore);
const char* callDisplayName = linphone_address_get_display_name(callAddress)?linphone_address_get_display_name(callAddress):"";
if (callDisplayName && callDisplayName[0] != '\000') {
[peerLabel setText:[NSString stringWithCString:callDisplayName length:strlen(callDisplayName)]];
} else {
const char* username = linphone_address_get_username(callAddress)!=0?linphone_address_get_username(callAddress):"";
[peerLabel setText:[NSString stringWithCString:username length:strlen(username)]];
}
// start scheduler
durationRefreasher = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(updateCallDuration)
userInfo:nil
repeats:YES];
[address setHidden:true];
[incallView setHidden:false];
[call setEnabled:false];
break;
}
case GSTATE_CALL_END: {
[address setHidden:false];
[incallView setHidden:true];
[call setEnabled:true];
if (durationRefreasher != nil) {
[ durationRefreasher invalidate];
durationRefreasher=nil;
}
[peerLabel setText:@""];
[callDuration setText:@""];
break;
}
default:
@ -307,5 +374,35 @@
}
-(void) muteAction:(bool) value {
linphone_core_mute_mic(mCore,value);
if (value) {
[mute setImage:[UIImage imageNamed:@"mic_muted.png"] forState:UIControlStateNormal];
} else {
[mute setImage:[UIImage imageNamed:@"mic_active.png"] forState:UIControlStateNormal];
}
isMuted=value;
// swithc buttun state
};
-(void) speakerAction:(bool) value {
if (value) {
//redirect audio to speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
[speaker setImage:[UIImage imageNamed:@"Speaker-32-on.png"] forState:UIControlStateNormal];
} else {
//Cancel audio route redirection
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
[speaker setImage:[UIImage imageNamed:@"Speaker-32-off.png"] forState:UIControlStateNormal];
}
isSpeaker=value;
};
@end

View file

@ -8,7 +8,7 @@
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="80"/>
<integer value="1"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -37,26 +37,49 @@
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="116730630">
<object class="IBUIView" id="232448859">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">-2147483356</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUILabel" id="397196327">
<reference key="NSNextResponder" ref="232448859"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{18, -6}, {282, 49}}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MSAwAA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="146567718">
<int key="NSID">2</int>
</object>
</object>
<string key="NSFrameSize">{320, 40}</string>
<reference key="NSSuperview" ref="232448859"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">who</string>
<object class="NSColor" key="IBUITextColor" id="246311853">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<object class="IBUIButton" id="661303162">
<reference key="NSNextResponder" ref="191373211"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
<int key="IBUITextAlignment">1</int>
</object>
<object class="IBUILabel" id="323870097">
<reference key="NSNextResponder" ref="232448859"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 331}, {160, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<string key="NSFrame">{{98, 46}, {124, 21}}</string>
<reference key="NSSuperview" ref="232448859"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">how long</string>
<reference key="IBUITextColor" ref="246311853"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
<int key="IBUITextAlignment">1</int>
</object>
<object class="IBUIButton" id="963349321">
<reference key="NSNextResponder" ref="232448859"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{241, 38}, {72, 37}}</string>
<reference key="NSSuperview" ref="232448859"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -66,7 +89,6 @@
<double key="NSSize">1.500000e+01</double>
<int key="NSfFlags">16</int>
</object>
<int key="IBUIButtonType">1</int>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="923326808">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -79,6 +101,58 @@
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">Speaker-32-off.png</string>
</object>
</object>
<object class="IBUIButton" id="743511023">
<reference key="NSNextResponder" ref="232448859"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 38}, {72, 37}}</string>
<reference key="NSSuperview" ref="232448859"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="551268947"/>
<reference key="IBUIHighlightedTitleColor" ref="923326808"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="177190558"/>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">mic_active.png</string>
</object>
</object>
</object>
<string key="NSFrameSize">{320, 90}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC45MDE5NjA3OSAwLjkwMTk2MDc5IDAuOTAxOTYwNzkAA</bytes>
</object>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
</object>
<object class="IBUIButton" id="661303162">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 331}, {160, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="551268947"/>
<int key="IBUIButtonType">1</int>
<reference key="IBUIHighlightedTitleColor" ref="923326808"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="177190558"/>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">green.png</string>
@ -93,10 +167,7 @@
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="IBUIText">status</string>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<reference key="IBUITextColor" ref="246311853"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">1.000000e+01</float>
@ -104,7 +175,7 @@
<object class="IBUIButton" id="1070392235">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{213, 89}, {107, 60}}</string>
<string key="NSFrame">{{213, 90}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -123,7 +194,7 @@
<object class="IBUIButton" id="539158319">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 149}, {107, 60}}</string>
<string key="NSFrame">{{0, 150}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -142,7 +213,7 @@
<object class="IBUIButton" id="539781036">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{107, 149}, {106, 60}}</string>
<string key="NSFrame">{{107, 150}, {106, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -161,7 +232,7 @@
<object class="IBUIButton" id="573280603">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{213, 149}, {107, 60}}</string>
<string key="NSFrame">{{213, 150}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -180,7 +251,7 @@
<object class="IBUIButton" id="150499342">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 209}, {107, 60}}</string>
<string key="NSFrame">{{0, 210}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -199,7 +270,7 @@
<object class="IBUIButton" id="624378925">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{213, 209}, {107, 60}}</string>
<string key="NSFrame">{{213, 210}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -218,7 +289,7 @@
<object class="IBUIButton" id="607229252">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{107, 89}, {106, 60}}</string>
<string key="NSFrame">{{107, 90}, {106, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -237,7 +308,7 @@
<object class="IBUIButton" id="201618948">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 89}, {107, 60}}</string>
<string key="NSFrame">{{0, 90}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -260,7 +331,7 @@
<object class="IBUIButton" id="465571136">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 269}, {107, 60}}</string>
<string key="NSFrame">{{0, 270}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -279,7 +350,7 @@
<object class="IBUIButton" id="602859574">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{107, 269}, {106, 60}}</string>
<string key="NSFrame">{{107, 270}, {106, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -298,7 +369,7 @@
<object class="IBUIButton" id="310945439">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{213, 269}, {107, 60}}</string>
<string key="NSFrame">{{213, 270}, {107, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -317,7 +388,7 @@
<object class="IBUIButton" id="616388880">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{107, 209}, {106, 60}}</string>
<string key="NSFrame">{{107, 210}, {106, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -336,7 +407,7 @@
<object class="IBUIButton" id="319430047">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 333}, {160, 60}}</string>
<string key="NSFrame">{{160, 331}, {160, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -369,7 +440,9 @@
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
<reference key="NSCustomColorSpace" ref="146567718"/>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica</string>
@ -675,6 +748,64 @@
</object>
<int key="connectionID">110</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">incallView</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="232448859"/>
</object>
<int key="connectionID">119</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">peerLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="397196327"/>
</object>
<int key="connectionID">120</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">callDuration</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="323870097"/>
</object>
<int key="connectionID">121</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">speaker</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="963349321"/>
</object>
<int key="connectionID">123</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doAction:</string>
<reference key="source" ref="963349321"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">124</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mute</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="743511023"/>
</object>
<int key="connectionID">125</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doAction:</string>
<reference key="source" ref="743511023"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">126</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -712,7 +843,6 @@
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="116730630"/>
<reference ref="1070392235"/>
<reference ref="539158319"/>
<reference ref="539781036"/>
@ -729,6 +859,7 @@
<reference ref="319430047"/>
<reference ref="465571136"/>
<reference ref="751637181"/>
<reference ref="232448859"/>
</object>
<reference key="parent" ref="627403670"/>
</object>
@ -798,15 +929,6 @@
<reference key="parent" ref="191373211"/>
<string key="objectName">Call</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">104</int>
<reference key="object" ref="116730630"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="191373211"/>
<string key="objectName">AddressView</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="616388880"/>
@ -823,6 +945,43 @@
<reference key="parent" ref="191373211"/>
<string key="objectName">Address</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">114</int>
<reference key="object" ref="232448859"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="963349321"/>
<reference ref="743511023"/>
<reference ref="323870097"/>
<reference ref="397196327"/>
</object>
<reference key="parent" ref="191373211"/>
<string key="objectName">inCall</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">117</int>
<reference key="object" ref="963349321"/>
<reference key="parent" ref="232448859"/>
<string key="objectName">speaker</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">118</int>
<reference key="object" ref="743511023"/>
<reference key="parent" ref="232448859"/>
<string key="objectName">mute</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">116</int>
<reference key="object" ref="323870097"/>
<reference key="parent" ref="232448859"/>
<string key="objectName">duration</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">115</int>
<reference key="object" ref="397196327"/>
<reference key="parent" ref="232448859"/>
<string key="objectName">display</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -834,8 +993,14 @@
<string>1.IBEditorWindowLastContentRect</string>
<string>1.IBPluginDependency</string>
<string>1.IBUserGuides</string>
<string>104.IBPluginDependency</string>
<string>107.IBPluginDependency</string>
<string>114.IBEditorWindowLastContentRect</string>
<string>114.IBPluginDependency</string>
<string>114.IBUserGuides</string>
<string>115.IBPluginDependency</string>
<string>116.IBPluginDependency</string>
<string>117.IBPluginDependency</string>
<string>118.IBPluginDependency</string>
<string>29.IBPluginDependency</string>
<string>30.IBPluginDependency</string>
<string>31.IBPluginDependency</string>
@ -867,6 +1032,22 @@
<float key="location">4.100000e+02</float>
<int key="affinity">1</int>
</object>
<object class="IBUserGuide">
<reference key="view" ref="191373211"/>
<float key="location">9.000000e+01</float>
<int key="affinity">1</int>
</object>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{32, 282}, {320, 90}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<object class="NSMutableArray">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUserGuide">
<reference key="view" ref="232448859"/>
<float key="location">9.000000e+01</float>
<int key="affinity">1</int>
</object>
</object>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -885,7 +1066,9 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{204, 440}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{41, 282}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
@ -909,7 +1092,7 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">113</int>
<int key="maxID">126</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -939,15 +1122,20 @@
<string>address</string>
<string>back</string>
<string>call</string>
<string>callDuration</string>
<string>eight</string>
<string>five</string>
<string>four</string>
<string>hangup</string>
<string>hash</string>
<string>incallView</string>
<string>mute</string>
<string>nine</string>
<string>one</string>
<string>peerLabel</string>
<string>seven</string>
<string>six</string>
<string>speaker</string>
<string>star</string>
<string>status</string>
<string>three</string>
@ -959,14 +1147,19 @@
<string>UITextField</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIView</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>

View file

@ -20,12 +20,10 @@
#import "PhoneViewController.h"
#import "linphoneAppDelegate.h"
#import "ContactPickerDelegate.h"
#import "IncallViewController.h"
#import "AddressBook/ABPerson.h"
#import <AVFoundation/AVAudioSession.h>
#import <AudioToolbox/AudioToolbox.h>
#import "osip2/osip.h"
#import "FavoriteTableViewController.h"
extern void ms_au_register_card();
//generic log handler for debug version
void linphone_iphone_log_handler(OrtpLogLevel lev, const char *fmt, va_list args){
@ -48,8 +46,9 @@ void linphone_iphone_show(struct _LinphoneCore * lc) {
//nop
}
void linphone_iphone_call_received(LinphoneCore *lc, const char *from){
[((linphoneAppDelegate*) linphone_core_get_user_data(lc)) newIncomingCall:[[NSString alloc] initWithCString:from encoding:[NSString defaultCStringEncoding]]];
LinphoneAddress* fromAddr = linphone_address_new(from);
[((linphoneAppDelegate*) linphone_core_get_user_data(lc)) newIncomingCall:[[NSString alloc] initWithCString:linphone_address_get_username(fromAddr) encoding:[NSString defaultCStringEncoding]]];
linphone_address_destroy(fromAddr);
};
void linphone_iphone_general_state(LinphoneCore *lc, LinphoneGeneralState *gstate) {

View file

@ -48,32 +48,28 @@
<object class="IBUITabBarController" id="952473143">
<object class="IBUISimulatedTabBarMetrics" key="IBUISimulatedBottomBarMetrics"/>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUIViewController" key="IBUISelectedViewController" id="258574391">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="64474689">
<string key="IBUITitle">Dialer</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">linphone2.png</string>
</object>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">PhoneViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="NSMutableArray" key="IBUIViewControllers">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIViewController" id="156830991">
<object class="IBUIViewController" key="IBUISelectedViewController" id="156830991">
<string key="IBUITitle">History</string>
<object class="IBUITabBarItem" key="IBUITabBarItem" id="1041279701">
<string key="IBUITitle">history</string>
<string key="IBUITitle">History</string>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">CallHistoryTableViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<reference ref="258574391"/>
<object class="NSMutableArray" key="IBUIViewControllers">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="156830991"/>
<object class="IBUIViewController" id="258574391">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="64474689">
<string key="IBUITitle">Dialer</string>
<reference key="IBUITabBar"/>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<string key="IBUINibName">PhoneViewController</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
</object>
<object class="IBUIViewController" id="383050823">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="672878446">
<reference key="IBUITabBar"/>
@ -83,8 +79,8 @@
</object>
<object class="IBUIViewController" id="555899988">
<object class="IBUITabBarItem" key="IBUITabBarItem" id="534357631">
<string key="IBUITitle">About</string>
<reference key="IBUITabBar"/>
<int key="IBUISystemItemIdentifier">0</int>
</object>
<reference key="IBUIParentViewController" ref="952473143"/>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
@ -326,6 +322,14 @@
<object class="IBPartialClassDescription">
<string key="className">CallHistoryTableViewController</string>
<string key="superclassName">GenericTabViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">doAction:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">clear</string>
<string key="NS.object.0">UIButton</string>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/CallHistoryTableViewController.h</string>
@ -379,15 +383,20 @@
<string>address</string>
<string>back</string>
<string>call</string>
<string>callDuration</string>
<string>eight</string>
<string>five</string>
<string>four</string>
<string>hangup</string>
<string>hash</string>
<string>incallView</string>
<string>mute</string>
<string>nine</string>
<string>one</string>
<string>peerLabel</string>
<string>seven</string>
<string>six</string>
<string>speaker</string>
<string>star</string>
<string>status</string>
<string>three</string>
@ -399,14 +408,19 @@
<string>UITextField</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIView</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UIButton</string>
<string>UILabel</string>

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

BIN
Resources/Speaker-32-on.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 569 B

View file

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -26,8 +26,6 @@
2242D91710D66BF300E9963F /* out_call.png in Resources */ = {isa = PBXBuildFile; fileRef = 2242D91510D66BF300E9963F /* out_call.png */; };
2242D91A10D66C2100E9963F /* mic_active.png in Resources */ = {isa = PBXBuildFile; fileRef = 2242D91810D66C2100E9963F /* mic_active.png */; };
2242D91B10D66C2100E9963F /* mic_muted.png in Resources */ = {isa = PBXBuildFile; fileRef = 2242D91910D66C2100E9963F /* mic_muted.png */; };
2242D9C310D68DFD00E9963F /* FavoriteTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2242D9C110D68DFD00E9963F /* FavoriteTableViewController.m */; };
2242D9C410D68DFD00E9963F /* FavoriteTableViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2242D9C210D68DFD00E9963F /* FavoriteTableViewController.xib */; };
2242D9C910D691F900E9963F /* GenericTabViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2242D9C810D691F900E9963F /* GenericTabViewController.m */; };
2245667810768B7300F10948 /* linphone2.png in Resources */ = {isa = PBXBuildFile; fileRef = 2245667710768B7300F10948 /* linphone2.png */; };
2245667A10768B9000F10948 /* linphone.png in Resources */ = {isa = PBXBuildFile; fileRef = 2245667910768B9000F10948 /* linphone.png */; };
@ -43,8 +41,8 @@
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 */; };
22B5F1E110CFA3C700777D97 /* IncallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22B5F1E010CFA3C700777D97 /* IncallViewController.xib */; };
22B5F1EA10CFD55A00777D97 /* IncallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22B5F1E810CFD55A00777D97 /* IncallViewController.m */; };
22E0A785111C1BA800B04932 /* Speaker-32-on.png in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A783111C1BA800B04932 /* Speaker-32-on.png */; };
22E0A786111C1BA800B04932 /* Speaker-32-off.png in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A784111C1BA800B04932 /* Speaker-32-off.png */; };
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 */; };
@ -188,13 +186,10 @@
220FAD3010765B400068D98F /* libspeexdsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeexdsp.a; path = "../liblinphone-sdk/armv6-apple-darwin/lib/libspeexdsp.a"; sourceTree = SOURCE_ROOT; };
220FAE4A10767A6A0068D98F /* PhoneMainView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PhoneMainView.xib; sourceTree = "<group>"; };
2237D4081084D7A9001383EE /* oldphone-mono.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "oldphone-mono.wav"; path = "rings/oldphone-mono.wav"; sourceTree = "<group>"; };
2242D91410D66BF300E9963F /* in_call.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = in_call.png; sourceTree = "<group>"; };
2242D91510D66BF300E9963F /* out_call.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = out_call.png; sourceTree = "<group>"; };
2242D91410D66BF300E9963F /* in_call.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = in_call.png; path = Resources/in_call.png; sourceTree = "<group>"; };
2242D91510D66BF300E9963F /* out_call.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = out_call.png; path = Resources/out_call.png; sourceTree = "<group>"; };
2242D91810D66C2100E9963F /* mic_active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = mic_active.png; path = ../linphone/pixmaps/mic_active.png; sourceTree = SOURCE_ROOT; };
2242D91910D66C2100E9963F /* mic_muted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = mic_muted.png; path = ../linphone/pixmaps/mic_muted.png; sourceTree = SOURCE_ROOT; };
2242D9C010D68DFD00E9963F /* FavoriteTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FavoriteTableViewController.h; sourceTree = "<group>"; };
2242D9C110D68DFD00E9963F /* FavoriteTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FavoriteTableViewController.m; sourceTree = "<group>"; };
2242D9C210D68DFD00E9963F /* FavoriteTableViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FavoriteTableViewController.xib; sourceTree = "<group>"; };
2242D9C710D691F900E9963F /* GenericTabViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericTabViewController.h; sourceTree = "<group>"; };
2242D9C810D691F900E9963F /* GenericTabViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GenericTabViewController.m; sourceTree = "<group>"; };
2245667710768B7300F10948 /* linphone2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = linphone2.png; path = ../linphone/pixmaps/linphone2.png; sourceTree = SOURCE_ROOT; };
@ -215,9 +210,8 @@
22B5EFE310CE5E5800777D97 /* ContactPickerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactPickerDelegate.h; sourceTree = "<group>"; };
22B5EFE410CE5E5800777D97 /* ContactPickerDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactPickerDelegate.m; sourceTree = "<group>"; };
22B5F03410CE6B2F00777D97 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
22B5F1E010CFA3C700777D97 /* IncallViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = IncallViewController.xib; sourceTree = "<group>"; };
22B5F1E710CFD55A00777D97 /* IncallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncallViewController.h; sourceTree = "<group>"; };
22B5F1E810CFD55A00777D97 /* IncallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IncallViewController.m; sourceTree = "<group>"; };
22E0A783111C1BA800B04932 /* Speaker-32-on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Speaker-32-on.png"; path = "Resources/Speaker-32-on.png"; sourceTree = "<group>"; };
22E0A784111C1BA800B04932 /* Speaker-32-off.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Speaker-32-off.png"; path = "Resources/Speaker-32-off.png"; sourceTree = "<group>"; };
22F2508B107141E100AC9B3F /* PhoneViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhoneViewController.h; sourceTree = "<group>"; };
22F2508C107141E100AC9B3F /* PhoneViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhoneViewController.m; sourceTree = "<group>"; };
22F2508D107141E100AC9B3F /* PhoneViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PhoneViewController.xib; sourceTree = "<group>"; };
@ -270,15 +264,9 @@
22F2508D107141E100AC9B3F /* PhoneViewController.xib */,
22B5EFE310CE5E5800777D97 /* ContactPickerDelegate.h */,
22B5EFE410CE5E5800777D97 /* ContactPickerDelegate.m */,
22B5F1E710CFD55A00777D97 /* IncallViewController.h */,
22B5F1E810CFD55A00777D97 /* IncallViewController.m */,
22B5F1E010CFA3C700777D97 /* IncallViewController.xib */,
227BCDBF10D4004600FBFD76 /* CallHistoryTableViewController.h */,
227BCDC010D4004600FBFD76 /* CallHistoryTableViewController.m */,
227BCDC110D4004600FBFD76 /* CallHistoryTableViewController.xib */,
2242D9C010D68DFD00E9963F /* FavoriteTableViewController.h */,
2242D9C110D68DFD00E9963F /* FavoriteTableViewController.m */,
2242D9C210D68DFD00E9963F /* FavoriteTableViewController.xib */,
2242D9C710D691F900E9963F /* GenericTabViewController.h */,
2242D9C810D691F900E9963F /* GenericTabViewController.m */,
);
@ -544,6 +532,8 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
22E0A783111C1BA800B04932 /* Speaker-32-on.png */,
22E0A784111C1BA800B04932 /* Speaker-32-off.png */,
2242D91810D66C2100E9963F /* mic_active.png */,
2242D91910D66C2100E9963F /* mic_muted.png */,
2242D91410D66BF300E9963F /* in_call.png */,
@ -625,13 +615,13 @@
22F51EF6107FA66500F98953 /* untitled.plist in Resources */,
2237D4091084D7A9001383EE /* oldphone-mono.wav in Resources */,
2273798810A48EF000526073 /* oldphone.wav in Resources */,
22B5F1E110CFA3C700777D97 /* IncallViewController.xib in Resources */,
227BCDC310D4004600FBFD76 /* CallHistoryTableViewController.xib in Resources */,
2242D91610D66BF300E9963F /* in_call.png in Resources */,
2242D91710D66BF300E9963F /* out_call.png in Resources */,
2242D91A10D66C2100E9963F /* mic_active.png in Resources */,
2242D91B10D66C2100E9963F /* mic_muted.png in Resources */,
2242D9C410D68DFD00E9963F /* FavoriteTableViewController.xib in Resources */,
22E0A785111C1BA800B04932 /* Speaker-32-on.png in Resources */,
22E0A786111C1BA800B04932 /* Speaker-32-off.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -646,9 +636,7 @@
1D3623260D0F684500981E51 /* linphoneAppDelegate.m in Sources */,
22F2508E107141E100AC9B3F /* PhoneViewController.m in Sources */,
22B5EFE510CE5E5800777D97 /* ContactPickerDelegate.m in Sources */,
22B5F1EA10CFD55A00777D97 /* IncallViewController.m in Sources */,
227BCDC210D4004600FBFD76 /* CallHistoryTableViewController.m in Sources */,
2242D9C310D68DFD00E9963F /* FavoriteTableViewController.m in Sources */,
2242D9C910D691F900E9963F /* GenericTabViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;