Cleaning and continue working on new ui

This commit is contained in:
Yann Diorcet 2012-06-15 16:54:46 +02:00
parent b915cdd9c6
commit e03d37c6ed
67 changed files with 1452 additions and 3880 deletions

View file

@ -29,14 +29,14 @@ enum CallDelegateType {
CD_TRANSFER_CALL
};
@protocol UIActionSheetCustomDelegate
@protocol CallActionSheetDelegate
- (void)actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType) type clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void*) datas;
@end
@interface CallDelegate : NSObject<UIActionSheetDelegate> {
enum CallDelegateType eventType;
LinphoneCall* call;
id<UIActionSheetCustomDelegate> delegate;
id<CallActionSheetDelegate> delegate;
NSTimer* timeout;
}

View file

@ -19,13 +19,18 @@
#import <UIKit/UIKit.h>
#import "ContactTableViewController.h"
@interface ContactsViewController : UIViewController {
UITableViewController *tableController;
ContactTableViewController *tableController;
UITableView *tableView;
UIButton *allButton;
UIButton *linphoneButton;
}
@property (nonatomic, retain) IBOutlet UITableViewController* tableController;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) IBOutlet UIButton* allButton;
@property (nonatomic, retain) IBOutlet UIButton* linphoneButton;

View file

@ -24,6 +24,8 @@
@implementation ContactsViewController
@synthesize tableController;
@synthesize tableView;
@synthesize allButton;
@synthesize linphoneButton;
@ -33,8 +35,12 @@ typedef enum _HistoryView {
History_MAX
} HistoryView;
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView reloadData];
}
- (void) changeView: (HistoryView) view {
- (void)changeView: (HistoryView) view {
if(view == History_All) {
allButton.selected = TRUE;
} else {
@ -48,16 +54,16 @@ typedef enum _HistoryView {
}
}
- (void) viewDidLoad {
- (void)viewDidLoad {
[super viewDidLoad];
[self changeView: History_All];
}
-(IBAction) onAllClick: (id) event {
- (IBAction)onAllClick: (id) event {
[self changeView: History_All];
}
-(IBAction) onLinphoneClick: (id) event {
- (IBAction)onLinphoneClick: (id) event {
[self changeView: History_Linphone];
}

View file

@ -156,7 +156,6 @@
<string key="NSFrame">{{0, 58}, {320, 402}}</string>
<reference key="NSSuperview" ref="812520855"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:10</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -167,7 +166,7 @@
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<double key="IBUIContentInset.top">0.0</double>
<double key="IBUIContentInset.bottom">15</double>
<double key="IBUIContentInset.bottom">10</double>
<double key="IBUIContentInset.left">0.0</double>
<double key="IBUIContentInset.right">0.0</double>
<bool key="IBUIAlwaysBounceVertical">YES</bool>
@ -238,6 +237,14 @@
</object>
<int key="connectionID">83</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">tableView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="562388802"/>
</object>
<int key="connectionID">84</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onAllClick:</string>
@ -374,7 +381,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">83</int>
<int key="maxID">84</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -407,6 +414,7 @@
<string key="allButton">UIButton</string>
<string key="linphoneButton">UIButton</string>
<string key="tableController">UITableViewController</string>
<string key="tableView">UITableView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="allButton">
@ -421,6 +429,10 @@
<string key="name">tableController</string>
<string key="candidateClassName">UITableViewController</string>
</object>
<object class="IBToOneOutletInfo" key="tableView">
<string key="name">tableView</string>
<string key="candidateClassName">UITableView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>

View file

@ -0,0 +1,67 @@
/* DialerViewController.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 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 "UILinphone.h"
@interface DialerViewController : UIViewController <UITextFieldDelegate>{
@private
//Buttons
UITextField* addressField;
UIEraseButton* eraseButton;
UICallButton* callButton;
//Key pad
UIDigitButton* oneButton;
UIDigitButton* twoButton;
UIDigitButton* threeButton;
UIDigitButton* fourButton;
UIDigitButton* fiveButton;
UIDigitButton* sixButton;
UIDigitButton* sevenButton;
UIDigitButton* eightButton;
UIDigitButton* nineButton;
UIDigitButton* starButton;
UIDigitButton* zeroButton;
UIDigitButton* hashButton;
}
- (void)setAddress:(NSString*) address;
@property (nonatomic, retain) IBOutlet UITextField* addressField;
@property (nonatomic, retain) IBOutlet UIButton* callButton;
@property (nonatomic, retain) IBOutlet UIEraseButton* eraseButton;
@property (nonatomic, retain) IBOutlet UIButton* oneButton;
@property (nonatomic, retain) IBOutlet UIButton* twoButton;
@property (nonatomic, retain) IBOutlet UIButton* threeButton;
@property (nonatomic, retain) IBOutlet UIButton* fourButton;
@property (nonatomic, retain) IBOutlet UIButton* fiveButton;
@property (nonatomic, retain) IBOutlet UIButton* sixButton;
@property (nonatomic, retain) IBOutlet UIButton* sevenButton;
@property (nonatomic, retain) IBOutlet UIButton* eightButton;
@property (nonatomic, retain) IBOutlet UIButton* nineButton;
@property (nonatomic, retain) IBOutlet UIButton* starButton;
@property (nonatomic, retain) IBOutlet UIButton* zeroButton;
@property (nonatomic, retain) IBOutlet UIButton* hashButton;
- (IBAction)onAddContact: (id) event;
@end

View file

@ -0,0 +1,117 @@
/* DialerViewController.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 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 <AVFoundation/AVAudioSession.h>
#import <AudioToolbox/AudioToolbox.h>
#import "DialerViewController.h"
#import "linphoneAppDelegate.h"
#import "IncallViewController.h"
#import "LinphoneManager.h"
#import "PhoneMainView.h"
#include "linphonecore.h"
#include "private.h"
@implementation DialerViewController
@synthesize addressField;
@synthesize callButton;
@synthesize eraseButton;
@synthesize oneButton;
@synthesize twoButton;
@synthesize threeButton;
@synthesize fourButton;
@synthesize fiveButton;
@synthesize sixButton;
@synthesize sevenButton;
@synthesize eightButton;
@synthesize nineButton;
@synthesize starButton;
@synthesize zeroButton;
@synthesize hashButton;
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//TODO
/*if ([[NSUserDefaults standardUserDefaults] boolForKey:@"enable_first_login_view_preference"] == true) {
myFirstLoginViewController = [[FirstLoginViewController alloc] initWithNibName:@"FirstLoginViewController"
bundle:[NSBundle mainBundle]];
[self presentModalViewController:myFirstLoginViewController animated:true];
}*/
// [[LinphoneManager instance] setRegistrationDelegate:self];
//TODO
//[mMainScreenWithVideoPreview showPreview:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[zeroButton initWithNumber:'0' addressField:addressField dtmf:false];
[oneButton initWithNumber:'1' addressField:addressField dtmf:false];
[twoButton initWithNumber:'2' addressField:addressField dtmf:false];
[threeButton initWithNumber:'3' addressField:addressField dtmf:false];
[fourButton initWithNumber:'4' addressField:addressField dtmf:false];
[fiveButton initWithNumber:'5' addressField:addressField dtmf:false];
[sixButton initWithNumber:'6' addressField:addressField dtmf:false];
[sevenButton initWithNumber:'7' addressField:addressField dtmf:false];
[eightButton initWithNumber:'8' addressField:addressField dtmf:false];
[nineButton initWithNumber:'9' addressField:addressField dtmf:false];
[starButton initWithNumber:'*' addressField:addressField dtmf:false];
[hashButton initWithNumber:'#' addressField:addressField dtmf:false];
[callButton initWithAddress:addressField];
[eraseButton initWithAddressField:addressField];
}
- (void)setAddress:(NSString*) address {
[addressField setText:address];
}
- (void)dealloc {
[addressField release];
[callButton release];
[oneButton release];
[twoButton release];
[threeButton release];
[fourButton release];
[fiveButton release];
[sixButton release];
[sevenButton release];
[eightButton release];
[nineButton release];
[starButton release];
[zeroButton release];
[hashButton release];
[super dealloc];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == addressField) {
[addressField resignFirstResponder];
}
return YES;
}
- (IBAction)onAddContact: (id) event {
}
@end

View file

@ -110,14 +110,8 @@
// Go to dialer view
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
[[NSDictionary alloc] initWithObjectsAndKeys:
[[NSArray alloc] initWithObjects: dispName, nil]
, @"setText:", nil]
, @"mDisplayName",
[[NSDictionary alloc] initWithObjectsAndKeys:
[[NSArray alloc] initWithObjects: phoneNumber, nil]
, @"setText:", nil]
, @"address",
[[NSArray alloc] initWithObjects: phoneNumber, nil]
, @"setAddress:",
nil];
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];

View file

@ -23,11 +23,15 @@
@interface HistoryViewController : UIViewController {
HistoryTableViewController *tableController;
UITableView *tableView;
UIButton *allButton;
UIButton *missedButton;
}
@property (nonatomic, retain) IBOutlet HistoryTableViewController* tableController;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) IBOutlet UIButton* allButton;
@property (nonatomic, retain) IBOutlet UIButton* missedButton;

View file

@ -21,7 +21,9 @@
@implementation HistoryViewController
@synthesize tableView;
@synthesize tableController;
@synthesize allButton;
@synthesize missedButton;
@ -31,6 +33,11 @@ typedef enum _HistoryView {
History_MAX
} HistoryView;
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView reloadData];
}
- (void)changeView: (HistoryView) view {
if(view == History_All) {
allButton.selected = TRUE;

View file

@ -156,7 +156,6 @@
<string key="NSFrame">{{0, 58}, {320, 402}}</string>
<reference key="NSSuperview" ref="812520855"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -165,7 +164,7 @@
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<double key="IBUIContentInset.top">0.0</double>
<double key="IBUIContentInset.bottom">15</double>
<double key="IBUIContentInset.bottom">10</double>
<double key="IBUIContentInset.left">0.0</double>
<double key="IBUIContentInset.right">0.0</double>
<bool key="IBUIAlwaysBounceVertical">YES</bool>
@ -234,6 +233,14 @@
</object>
<int key="connectionID">28</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">tableView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="801043690"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onAllClick:</string>
@ -370,7 +377,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">30</int>
<int key="maxID">31</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -403,6 +410,7 @@
<string key="allButton">UIButton</string>
<string key="missedButton">UIButton</string>
<string key="tableController">HistoryTableViewController</string>
<string key="tableView">UITableView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="allButton">
@ -417,6 +425,10 @@
<string key="name">tableController</string>
<string key="candidateClassName">HistoryTableViewController</string>
</object>
<object class="IBToOneOutletInfo" key="tableView">
<string key="name">tableView</string>
<string key="candidateClassName">UITableView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>

View file

@ -20,17 +20,17 @@
#import <UIKit/UIKit.h>
#import <AddressBookUI/ABPeoplePickerNavigationController.h>
#import "linphonecore.h"
#import "PhoneViewController.h"
#import "ConferenceCallDetailView.h"
#import "UIVideoButton.h"
#import "VideoZoomHandler.h"
#import "UILinphone.h"
#import "CallDelegate.h"
#include "UILinphone.h"
#include "linphonecore.h"
@class VideoViewController;
@interface InCallViewController : UIViewController <ABPeoplePickerNavigationControllerDelegate, UITableViewDelegate, UITableViewDataSource, UIActionSheetCustomDelegate> {
@interface InCallViewController : UIViewController <ABPeoplePickerNavigationControllerDelegate, UITableViewDelegate, UITableViewDataSource, CallActionSheetDelegate> {
UIView* controlSubView, *hangUpView;
@ -66,7 +66,6 @@
#ifdef TEST_VIDEO_VIEW_CHANGE
UIView* testVideoView;
#endif
UIImageView* videoCallQuality;
UICamSwitch* videoCameraSwitch;
UIActivityIndicatorView* videoUpdateIndicator;
UIActivityIndicatorView* videoWaitingForFirstImage;

View file

@ -18,7 +18,6 @@
*/
#import "IncallViewController.h"
#import "VideoViewController.h"
#import "LinphoneManager.h"
#import <AudioToolbox/AudioToolbox.h>
#import <AddressBook/AddressBook.h>
@ -186,7 +185,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
// show controls
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
[controlSubView setAlpha:1.0];
[[LinphoneManager instance] showTabBar: true];
[hangUpView setAlpha:1.0];
if ([LinphoneManager instance].frontCamId !=nil ) {
// only show camera switch button if we have more than 1 camera
@ -205,6 +204,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
[hangUpView setAlpha:0.0];
[videoCameraSwitch setAlpha:0.0];
[UIView commitAnimations];
[[LinphoneManager instance] showTabBar: false];
hideControlsTimer = nil;
}
@ -262,7 +262,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[videoGroup setAlpha:1.0];
[controlSubView setAlpha:0.0];
[hangUpView setAlpha:0.0];
[callTableView setAlpha:0.0];
[UIView commitAnimations];
@ -273,7 +273,8 @@ void addAnimationFadeTransition(UIView* view, float duration) {
linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)videoView);
linphone_core_set_native_preview_window_id([LinphoneManager getLc],(unsigned long)videoPreview);
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
[[LinphoneManager instance] fullScreen: true];
[[LinphoneManager instance] showTabBar: false];
// This is a bit hacky: take into account toolbar removal (only once).
// It's probably possible to do this from the Xib file (?)
@ -295,7 +296,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[videoGroup setAlpha:0.0];
[controlSubView setAlpha:1.0];
[[LinphoneManager instance] showTabBar: true];
[hangUpView setAlpha:1.0];
[callTableView setAlpha:1.0];
[videoCameraSwitch setAlpha:0.0];
@ -317,7 +318,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
dialer.imageView.transform = CGAffineTransformIdentity;
videoCallQuality.transform = CGAffineTransformIdentity;
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
[[LinphoneManager instance] fullScreen:false];
}
/* Update in call view buttons (visibility, state, ...) and call duration text.
@ -327,11 +328,9 @@ void addAnimationFadeTransition(UIView* view, float duration) {
// check LinphoneCore is initialized
LinphoneCore* lc = nil;
@try {
if([LinphoneManager isLcReady])
lc = [LinphoneManager getLc];
} @catch (NSException* exc) {
return;
}
// 1 call: show pause button, otherwise show merge btn
// [LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:"call count"];
// reload table (glow update + call duration)
@ -395,17 +394,11 @@ void addAnimationFadeTransition(UIView* view, float duration) {
if ([LinphoneManager runningOnIpad]) {
ms_message("Running on iPad");
mVideoViewController = [[VideoViewController alloc] initWithNibName:@"VideoViewController-ipad"
bundle:[NSBundle mainBundle]];
conferenceDetail = [[ConferenceCallDetailView alloc] initWithNibName:@"ConferenceCallDetailView-ipad"
bundle:[NSBundle mainBundle]];
} else {
mVideoViewController = [[VideoViewController alloc] initWithNibName:@"VideoViewController"
bundle:[NSBundle mainBundle]];
conferenceDetail = [[ConferenceCallDetailView alloc] initWithNibName:@"ConferenceCallDetailView"
bundle:[NSBundle mainBundle]];
}
UITapGestureRecognizer* singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showControls:)];
@ -630,12 +623,12 @@ void addAnimationFadeTransition(UIView* view, float duration) {
if (modalVC != nil) {
mVideoIsPending=FALSE;
// clear previous native window ids
if (modalVC == mVideoViewController) {
/*if (modalVC == mVideoViewController) {
mVideoShown=FALSE;
linphone_core_set_native_video_window_id([LinphoneManager getLc],0);
linphone_core_set_native_preview_window_id([LinphoneManager getLc],0);
}
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}*/
[[LinphoneManager instance] fullScreen:false];
[self dismissModalViewControllerAnimated:FALSE];//just in case
}
@ -777,19 +770,6 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
if (call->videostream) {
linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, self);
}
return;
if (mIncallViewIsReady) {
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
mVideoShown=TRUE;
if (self.modalViewController != mVideoViewController)
[self presentModalViewController:mVideoViewController animated:true];
else
ms_message("Do not present again videoViewController");
} else {
//postpone presentation
mVideoIsPending=TRUE;
}
}
-(void) dismissActionSheet: (id)o {

View file

@ -12,7 +12,6 @@
</object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>IBUIImageView</string>
<string>IBUIButton</string>
<string>IBUITableView</string>
<string>IBUIView</string>
@ -67,28 +66,16 @@
<string key="NSFrame">{{240, 354}, {80, 106}}</string>
<reference key="NSSuperview" ref="1009068048"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="585808525"/>
<reference key="IBUIBackgroundColor" ref="95762599"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIImageView" id="386053478">
<reference key="NSNextResponder" ref="1009068048"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{4, 428}, {28, 28}}</string>
<reference key="NSSuperview" ref="1009068048"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="673568144"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIActivityIndicatorView" id="69034748">
<reference key="NSNextResponder" ref="1009068048"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{141, 212}, {37, 37}}</string>
<reference key="NSSuperview" ref="1009068048"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="386053478"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:1030</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -100,7 +87,7 @@
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="858247959"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1017044170"/>
<reference key="NSNextKeyView" ref="585808525"/>
<string key="NSReuseIdentifierKey">_NS:196</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">2</int>
@ -514,30 +501,6 @@
</object>
<int key="connectionID">141</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoPreview</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="673568144"/>
</object>
<int key="connectionID">130</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoCallQuality</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="386053478"/>
</object>
<int key="connectionID">138</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="1017044170"/>
</object>
<int key="connectionID">133</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">callTableView</string>
@ -562,14 +525,6 @@
</object>
<int key="connectionID">129</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoWaitingForFirstImage</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="69034748"/>
</object>
<int key="connectionID">145</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">star</string>
@ -682,6 +637,30 @@
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="1017044170"/>
</object>
<int key="connectionID">133</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoWaitingForFirstImage</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="69034748"/>
</object>
<int key="connectionID">145</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">videoPreview</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="673568144"/>
</object>
<int key="connectionID">130</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">doAction:</string>
@ -754,7 +733,6 @@
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="69034748"/>
<reference ref="386053478"/>
<reference ref="673568144"/>
<reference ref="1017044170"/>
</object>
@ -766,32 +744,6 @@
<reference key="object" ref="662692377"/>
<reference key="parent" ref="858247959"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">144</int>
<reference key="object" ref="69034748"/>
<reference key="parent" ref="1009068048"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">137</int>
<reference key="object" ref="386053478"/>
<reference key="parent" ref="1009068048"/>
<string key="objectName">videocallquality</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">127</int>
<reference key="object" ref="673568144"/>
<reference key="parent" ref="1009068048"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">132</int>
<reference key="object" ref="1017044170"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="1009068048"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="759087764"/>
@ -892,6 +844,23 @@
<reference key="parent" ref="759087764"/>
<string key="objectName">5</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">132</int>
<reference key="object" ref="1017044170"/>
<reference key="parent" ref="1009068048"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">144</int>
<reference key="object" ref="69034748"/>
<reference key="parent" ref="1009068048"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">127</int>
<reference key="object" ref="673568144"/>
<reference key="parent" ref="1009068048"/>
<string key="objectName">preview</string>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -906,7 +875,6 @@
<string>126.IBPluginDependency</string>
<string>127.IBPluginDependency</string>
<string>132.IBPluginDependency</string>
<string>137.IBPluginDependency</string>
<string>140.CustomClassName</string>
<string>140.IBPluginDependency</string>
<string>144.IBPluginDependency</string>
@ -949,7 +917,6 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UICamSwitch</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -1295,203 +1262,6 @@
<string key="minorKey">./Classes/UIDigitButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMicroButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMicroButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VideoViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>mCallQuality</string>
<string>mCallQualityLandLeft</string>
<string>mCallQualityLandRight</string>
<string>mCamSwitch</string>
<string>mCamSwitchLandLeft</string>
<string>mCamSwitchLandRight</string>
<string>mDisplay</string>
<string>mDisplayLandLeft</string>
<string>mDisplayLandRight</string>
<string>mHangUp</string>
<string>mHangUpLandLeft</string>
<string>mHangUpLandRight</string>
<string>mLandscapeLeft</string>
<string>mLandscapeRight</string>
<string>mMute</string>
<string>mMuteLandLeft</string>
<string>mMuteLandRight</string>
<string>mPortrait</string>
<string>mPreview</string>
<string>mPreviewLandLeft</string>
<string>mPreviewLandRight</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UIImageView</string>
<string>UIImageView</string>
<string>UIImageView</string>
<string>UICamSwitch</string>
<string>UICamSwitch</string>
<string>UICamSwitch</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
<string>UIHangUpButton</string>
<string>UIHangUpButton</string>
<string>UIHangUpButton</string>
<string>UIView</string>
<string>UIView</string>
<string>UIMicroButton</string>
<string>UIMicroButton</string>
<string>UIMicroButton</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>mCallQuality</string>
<string>mCallQualityLandLeft</string>
<string>mCallQualityLandRight</string>
<string>mCamSwitch</string>
<string>mCamSwitchLandLeft</string>
<string>mCamSwitchLandRight</string>
<string>mDisplay</string>
<string>mDisplayLandLeft</string>
<string>mDisplayLandRight</string>
<string>mHangUp</string>
<string>mHangUpLandLeft</string>
<string>mHangUpLandRight</string>
<string>mLandscapeLeft</string>
<string>mLandscapeRight</string>
<string>mMute</string>
<string>mMuteLandLeft</string>
<string>mMuteLandRight</string>
<string>mPortrait</string>
<string>mPreview</string>
<string>mPreviewLandLeft</string>
<string>mPreviewLandRight</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">mCallQuality</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCallQualityLandLeft</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCallQualityLandRight</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitch</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitchLandLeft</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitchLandRight</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplay</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplayLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplayLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUp</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUpLandLeft</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUpLandRight</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mLandscapeLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mLandscapeRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMute</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMuteLandLeft</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMuteLandRight</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPortrait</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreview</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreviewLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreviewLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/VideoViewController.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>

View file

@ -18,7 +18,6 @@
*/
#import "PhoneMainView.h"
#import "PhoneViewController.h"
#import "linphoneAppDelegate.h"
#import "AddressBook/ABPerson.h"

View file

@ -86,32 +86,35 @@ typedef struct _LinphoneCallAppData {
@public
CallContext currentCallContextBeforeGoingBackground;
}
+(LinphoneManager*) instance;
+(LinphoneCore*) getLc;
+(BOOL) runningOnIpad;
+(void) set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason;
+(void) set:(UIButton*)view enabled: (BOOL) enabled withName:(const char*)name andReason:(const char*) reason;
+(void) logUIElementPressed:(const char*) name;
+ (LinphoneManager*) instance;
+ (LinphoneCore*) getLc;
+ (BOOL)isLcReady;
+ (BOOL)runningOnIpad;
+ (void)set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason;
+ (void)set:(UIButton*)view enabled: (BOOL) enabled withName:(const char*)name andReason:(const char*) reason;
+ (void)logUIElementPressed:(const char*) name;
+ (void)abstractCall:(id) object dict:(NSDictionary *) dict;
-(void) registerLogView:(id<LogView>) view;
- (void)registerLogView:(id<LogView>) view;
-(void) startLibLinphone;
-(BOOL) isNotIphone3G;
-(void) destroyLibLinphone;
- (void)startLibLinphone;
- (BOOL)isNotIphone3G;
- (void)destroyLibLinphone;
-(BOOL) enterBackgroundMode;
-(void) becomeActive;
-(void) kickOffNetworkConnection;
-(NSString*) getDisplayNameFromAddressBook:(NSString*) number andUpdateCallLog:(LinphoneCallLog*)log;
-(UIImage*) getImageFromAddressBook:(NSString*) number;
- (BOOL)enterBackgroundMode;
- (void)becomeActive;
- (void)kickOffNetworkConnection;
- (NSString*)getDisplayNameFromAddressBook:(NSString*) number andUpdateCallLog:(LinphoneCallLog*)log;
- (UIImage*)getImageFromAddressBook:(NSString*) number;
-(BOOL) reconfigureLinphoneIfNeeded:(NSDictionary *)oldSettings;
-(void) setupNetworkReachabilityCallback;
-(void) refreshRegisters;
- (BOOL)reconfigureLinphoneIfNeeded:(NSDictionary *)oldSettings;
- (void)setupNetworkReachabilityCallback;
- (void)refreshRegisters;
-(void) changeView:(PhoneView) view;
-(void) changeView:(PhoneView) view dict:(NSDictionary *)dict;
-(PhoneView) currentView;
- (void)changeView:(PhoneView) view;
- (void)changeView:(PhoneView) view dict:(NSDictionary *)dict;
- (void)showTabBar:(BOOL) show;
- (void)fullScreen:(BOOL) enabled;
- (PhoneView) currentView;
@property Connectivity connectivity;
@property (readonly) const char* frontCamId;

View file

@ -80,6 +80,20 @@ extern void libmsbcg729_init();
return theLinphoneManager;
}
- (void) showTabBar:(BOOL) show {
NSMutableDictionary* mdict = [NSMutableDictionary dictionaryWithObject: [NSNumber numberWithBool:show] forKey:@"tabBar"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneMainViewChange" object:self userInfo:mdict];
}
- (void)fullScreen:(BOOL) enabled {
if(enabled)
[[UIApplication sharedApplication] setStatusBarHidden:enabled withAnimation:UIStatusBarAnimationSlide];
else
[[UIApplication sharedApplication] setStatusBarHidden:enabled withAnimation:UIStatusBarAnimationNone];
NSMutableDictionary* mdict = [NSMutableDictionary dictionaryWithObject: [NSNumber numberWithBool:enabled] forKey:@"fullscreen"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneMainViewChange" object:self userInfo:mdict];
}
- (void)changeView:(PhoneView) view {
[self changeView:view dict:nil];
}
@ -195,56 +209,19 @@ extern void libmsbcg729_init();
[[NSString stringWithFormat:@"%c", message] autorelease], @"message",
nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneCallUpdate" object:self userInfo:dict];
const char* lUserNameChars=linphone_address_get_username(linphone_call_get_remote_address(call));
NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
switch (new_state) {
case LinphoneCallError: {
/*
NSString* lTitle= state->message!=nil?[NSString stringWithCString:state->message length:strlen(state->message)]: @"Error";
NSString* lMessage=lTitle;
*/
NSString* lMessage;
NSString* lTitle;
LinphoneProxyConfig* proxyCfg;
//get default proxy
linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
if (proxyCfg == nil) {
lMessage=NSLocalizedString(@"Please make sure your device is connected to the internet and double check your SIP account configuration in the settings.",nil );
} else {
lMessage=[NSString stringWithFormat : NSLocalizedString(@"Cannot call %@",nil),lUserName];
}
if (linphone_call_get_reason(call) == LinphoneReasonNotFound) {
lMessage=[NSString stringWithFormat : NSLocalizedString(@"'%@' not registered to Service",nil), lUserName];
} else {
if (message!=nil){
lMessage=[NSString stringWithFormat : NSLocalizedString(@"%@\nReason was: %s",nil),lMessage, message];
}
}
lTitle=NSLocalizedString(@"Call failed",nil);
UIAlertView* error = [[UIAlertView alloc] initWithTitle:lTitle
message:lMessage
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Dismiss",nil)
otherButtonTitles:nil];
[error show];
[error release];
break;
}
default:
break;
}
}
+(LinphoneCore*) getLc {
+ (LinphoneCore*)getLc {
if (theLinphoneCore==nil) {
@throw([NSException exceptionWithName:@"LinphoneCoreException" reason:@"Linphone core not initialized yet" userInfo:nil]);
}
return theLinphoneCore;
}
+ (BOOL)isLcReady {
return theLinphoneCore != nil;
}
- (void)addLog:(NSString*) log {
[mLogView addLog:log];
}

View file

@ -37,11 +37,8 @@
- (void)callUpdate: (NSNotification*) notif {
// check LinphoneCore is initialized
LinphoneCore* lc = nil;
@try {
if([LinphoneManager isLcReady])
lc = [LinphoneManager getLc];
} @catch (NSException* exc) {
return;
}
//TODO
//[LinphoneManager set:mergeCalls hidden:!pause.hidden withName:"MERGE button" andReason:"call count"];

View file

@ -38,10 +38,10 @@
<object class="IBUIView" id="464536687">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrameSize">{320, 135}</string>
<string key="NSFrame">{{0, 10}, {320, 125}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262544423"/>
<reference key="NSNextKeyView" ref="693636558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -50,6 +50,9 @@
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUITag">-1</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -60,7 +63,7 @@
<string key="NSFrameSize">{80, 67}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="693636558"/>
<reference key="NSNextKeyView" ref="464536687"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
@ -70,6 +73,7 @@
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<bool key="IBUIAdjustsImageWhenDisabled">NO</bool>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="707105299">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -86,6 +90,10 @@
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">video-ON-over.png</string>
</object>
<object class="NSCustomResource" key="IBUIDisabledBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">video-OFF-disabled.png</string>
</object>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">video-ON-actif.png</string>
@ -318,7 +326,7 @@
<string key="NSFrameSize">{320, 135}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="464536687"/>
<reference key="NSNextKeyView" ref="262544423"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -469,7 +477,7 @@
<real value="0.0" key="11.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="12.CustomClassName">UIVideoButton</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="12.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<real value="3" key="12.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -609,6 +617,7 @@
<string key="speacker-ON-actif.png">{160, 134}</string>
<string key="speacker-ON-over.png">{160, 134}</string>
<string key="video-OFF-actif.png">{160, 134}</string>
<string key="video-OFF-disabled.png">{160, 134}</string>
<string key="video-ON-actif.png">{160, 134}</string>
<string key="video-ON-over.png">{160, 134}</string>
</dictionary>

View file

@ -19,8 +19,9 @@
#import <UIKit/UIKit.h>
#import "UILongTouchButton.h"
@interface UIEraseButton : UIButton {
@interface UIEraseButton : UILongTouchButton<UILongTouchButtonDelegate> {
@private
UITextField* mAddress;

View file

@ -21,15 +21,22 @@
@implementation UIEraseButton
-(void) touchUp:(id) sender {
if ([mAddress.text length] > 0) {
-(void) touchDown:(id) sender {
if ([mAddress.text length] > 0) {
[mAddress setText:[mAddress.text substringToIndex:[mAddress.text length]-1]];
}
}
}
-(void) initWithAddressField:(UITextField*) address {
mAddress = address;
[self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
[self addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
}
- (void)onRepeatTouch {
}
- (void)onLongTouch {
[mAddress setText:@""];
}
- (void)dealloc {

View file

@ -0,0 +1,31 @@
/* UILongTouchButton.h
*
* Copyright (C) 2012 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>
@protocol UILongTouchButtonDelegate
-(void) onRepeatTouch;
-(void) onLongTouch;
@end
@interface UILongTouchButton : UIButton <UILongTouchButtonDelegate> {
}
@end

View file

@ -0,0 +1,76 @@
/* UILongTouchButton.h
*
* Copyright (C) 2012 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 "UILongTouchButton.h"
@implementation UILongTouchButton
- (id)init {
[self addTarget:self action:@selector(___touchDown:) forControlEvents:UIControlEventTouchDown];
[self addTarget:self action:@selector(___touchUp:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchUpOutside];
return self;
}
- (void)___touchDown:(id) sender {
[self performSelector:@selector(doLongTouch) withObject:nil afterDelay:0.5];
}
- (void)___touchUp:(id) sender {
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doLongTouch) object:nil];
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doRepeatTouch) object:nil];
}
- (void)doLongTouch {
[self onLongTouch];
[self onRepeatTouch];
[self performSelector:@selector(doRepeatTouch) withObject:nil afterDelay:0.1];
}
- (void)doRepeatTouch {
[self onRepeatTouch];
[self performSelector:@selector(doRepeatTouch) withObject:nil afterDelay:0.1];
}
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self init];
}
return self;
}
- (id)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
if (self) {
[self init];
}
return self;
}
- (void)onRepeatTouch {
[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];
}
- (void)onLongTouch {
[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];
}
@end

View file

@ -38,7 +38,7 @@
<object class="IBUIView" id="83510153">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{0, 7}, {320, 65}}</string>
<string key="NSFrame">{{0, 11}, {320, 66}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="617445003"/>
@ -50,6 +50,9 @@
<int key="NSID">2</int>
</object>
</object>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUITag">-1</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -57,7 +60,7 @@
<object class="IBUIButton" id="318948703">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{64, 72}</string>
<string key="NSFrameSize">{64, 77}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="83510153"/>
@ -107,7 +110,7 @@
<object class="IBUIButton" id="617445003">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{64, 0}, {64, 72}}</string>
<string key="NSFrame">{{64, 0}, {64, 77}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="562688945"/>
@ -141,38 +144,10 @@
<reference key="IBUIFontDescription" ref="978094057"/>
<reference key="IBUIFont" ref="98882926"/>
</object>
<object class="IBUIButton" id="562688945">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{128, 0}, {64, 72}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="60891552"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Dialer</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">dialer-actif.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">dialer-over.png</string>
</object>
<reference key="IBUIFontDescription" ref="978094057"/>
<reference key="IBUIFont" ref="98882926"/>
</object>
<object class="IBUIButton" id="60891552">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{192, 0}, {64, 72}}</string>
<string key="NSFrame">{{192, 0}, {64, 77}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="55915342"/>
@ -206,13 +181,40 @@
<reference key="IBUIFontDescription" ref="978094057"/>
<reference key="IBUIFont" ref="98882926"/>
</object>
<object class="IBUIButton" id="562688945">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{128, 0}, {64, 77}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="60891552"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Dialer</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">dialer-actif.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">dialer-over.png</string>
</object>
<reference key="IBUIFontDescription" ref="978094057"/>
<reference key="IBUIFont" ref="98882926"/>
</object>
<object class="IBUIButton" id="55915342">
<reference key="NSNextResponder" ref="1018893129"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{256, 0}, {64, 72}}</string>
<string key="NSFrame">{{256, 0}, {64, 77}}</string>
<reference key="NSSuperview" ref="1018893129"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
@ -244,7 +246,7 @@
<reference key="IBUIFont" ref="98882926"/>
</object>
</array>
<string key="NSFrameSize">{320, 72}</string>
<string key="NSFrameSize">{320, 77}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="318948703"/>
@ -267,14 +269,6 @@
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dialerButton</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="562688945"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
@ -307,6 +301,14 @@
</object>
<int key="connectionID">29</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dialerButton</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="562688945"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onChatClick:</string>
@ -378,10 +380,10 @@
<array class="NSMutableArray" key="children">
<reference ref="60891552"/>
<reference ref="617445003"/>
<reference ref="562688945"/>
<reference ref="318948703"/>
<reference ref="55915342"/>
<reference ref="83510153"/>
<reference ref="562688945"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">mainTabBar</string>
@ -389,6 +391,7 @@
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="83510153"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="1018893129"/>
<string key="objectName">mask</string>
</object>
@ -404,12 +407,6 @@
<reference key="parent" ref="1018893129"/>
<string key="objectName">history</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="562688945"/>
<reference key="parent" ref="1018893129"/>
<string key="objectName">dialer</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="617445003"/>
@ -422,6 +419,12 @@
<reference key="parent" ref="1018893129"/>
<string key="objectName">settings</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="562688945"/>
<reference key="parent" ref="1018893129"/>
<string key="objectName">dialer</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -528,20 +531,20 @@
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="contacts-actif.png">{127, 144}</string>
<string key="contacts-over.png">{127, 144}</string>
<string key="contacts-selectionne.png">{127, 144}</string>
<string key="dialer-actif.png">{132, 144}</string>
<string key="dialer-over.png">{132, 144}</string>
<string key="history-actif.png">{127, 144}</string>
<string key="history-over.png">{127, 144}</string>
<string key="history-selectionne.png">{127, 144}</string>
<string key="settings-actif.png">{127, 144}</string>
<string key="settings-over.png">{127, 144}</string>
<string key="settings-selectionne.png">{127, 144}</string>
<string key="tchat-actif.png">{127, 144}</string>
<string key="tchat-over.png">{127, 144}</string>
<string key="tchat-selectionne.png">{127, 144}</string>
<string key="contacts-actif.png">{128, 154}</string>
<string key="contacts-over.png">{128, 154}</string>
<string key="contacts-selectionne.png">{128, 154}</string>
<string key="dialer-actif.png">{128, 154}</string>
<string key="dialer-over.png">{128, 154}</string>
<string key="history-actif.png">{128, 154}</string>
<string key="history-over.png">{128, 154}</string>
<string key="history-selectionne.png">{128, 154}</string>
<string key="settings-actif.png">{128, 154}</string>
<string key="settings-over.png">{128, 154}</string>
<string key="settings-selectionne.png">{128, 154}</string>
<string key="tchat-actif.png">{128, 154}</string>
<string key="tchat-over.png">{128, 154}</string>
<string key="tchat-selectionne.png">{128, 154}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>

View file

@ -32,9 +32,9 @@
}
- (bool)onUpdate {
@try {
if([LinphoneManager isLcReady]) {
return linphone_core_is_mic_muted([LinphoneManager getLc]) == false;
} @catch(NSException* e) {
} else {
//not ready yet
return true;
}

View file

@ -60,7 +60,7 @@
- (bool)onUpdate {
// TODO: disable pause on not running call
@try {
if([LinphoneManager isLcReady]) {
bool ret = false;
LinphoneCall* currentCall = [UIPauseButton getCall];
if (currentCall != nil) {
@ -84,7 +84,7 @@
[LinphoneManager set:self enabled:FALSE withName:"PAUSE button" andReason:""];
}
return ret;
} @catch(NSException* e) {
} else {
//not ready yet
return false;
}

View file

@ -20,13 +20,13 @@
#import <UIKit/UIKit.h>
@interface UIStateBar : UIViewController {
UIImageView* image;
UIActivityIndicatorView* spinner;
UILabel* label;
UIImageView* registrationStateImage;
UILabel* registrationStateLabel;
UIImageView* callQualityImage;
}
@property (nonatomic, retain) IBOutlet UIImageView* image;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView* spinner;
@property (nonatomic, retain) IBOutlet UILabel* label;
@property (nonatomic, retain) IBOutlet UIImageView* registrationStateImage;
@property (nonatomic, retain) IBOutlet UILabel* registrationStateLabel;
@property (nonatomic, retain) IBOutlet UIImageView* callQualityImage;
@end

View file

@ -24,15 +24,28 @@
@implementation UIStateBar
@synthesize image;
@synthesize spinner;
@synthesize label;
@synthesize registrationStateImage;
@synthesize registrationStateLabel;
@synthesize callQualityImage;
NSTimer *callQualityTimer;
- (void)viewDidLoad {
[super viewDidLoad];
// Set observer
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registrationUpdate:) name:@"LinphoneRegistrationUpdate" object:nil];
// Set callQualityTimer
[callQualityImage setHidden: true];
callQualityTimer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(callQualityUpdate)
userInfo:nil
repeats:YES];
// Update to default state
[self proxyConfigUpdate: NULL];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
@ -40,24 +53,56 @@
}
- (void)registrationUpdate: (NSNotification*) notif {
LinphoneProxyConfig* config;
LinphoneProxyConfig* config = NULL;
linphone_core_get_default_proxy([LinphoneManager getLc], &config);
[self proxyConfigUpdate:config];
}
- (void)callQualityUpdate {
UIImage *image = nil;
if([LinphoneManager isLcReady]) {
LinphoneCall *call = linphone_core_get_current_call([LinphoneManager getLc]);
if(call != NULL) {
float quality = linphone_call_get_average_quality(call);
if(quality < 1) {
image = [UIImage imageNamed:@"quality-call-0.png"];
} else if (quality < 2) {
image = [UIImage imageNamed:@"quality-call-1.png"];
} else if (quality < 3) {
image = [UIImage imageNamed:@"quality-call-2.png"];
} else {
image = [UIImage imageNamed:@"quality-call-3.png"];
}
}
}
if(image != nil) {
[callQualityImage setHidden: false];
[callQualityImage setImage: image];
} else {
[callQualityImage setHidden: true];
}
}
- (void)proxyConfigUpdate: (LinphoneProxyConfig*) config {
LinphoneRegistrationState state;
NSString* message = nil;
UIImage* image = nil;
if (config == NULL) {
state = LinphoneRegistrationNone;
message = linphone_core_is_network_reachabled([LinphoneManager getLc]) ? NSLocalizedString(@"No SIP account configured", nil) : NSLocalizedString(@"Network down", nil);
if(![LinphoneManager isLcReady] || linphone_core_is_network_reachabled([LinphoneManager getLc]))
message = NSLocalizedString(@"No SIP account configured", nil);
else
message = NSLocalizedString(@"Network down", nil);
} else {
state = linphone_proxy_config_get_state(config);
switch (state) {
case LinphoneRegistrationOk:
message = @"Registered"; break;
case LinphoneRegistrationNone:
case LinphoneRegistrationCleared:
message = @"Not registered"; break;
case LinphoneRegistrationCleared:
message = @"Not registered"; break;
case LinphoneRegistrationFailed:
message = @"Registration failed"; break;
case LinphoneRegistrationProgress:
@ -66,44 +111,46 @@
default: break;
}
}
label.hidden = NO;
registrationStateLabel.hidden = NO;
switch(state) {
case LinphoneRegistrationCleared:
/* image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_orange.png"]];
[spinner stopAnimating];
[label setText:message != nil ? message : NSLocalizedString(@"No SIP account defined", nil)];*/
/* image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_orange.png"]];
[spinner stopAnimating];
[label setText:message != nil ? message : NSLocalizedString(@"No SIP account defined", nil)];*/
break;
case LinphoneRegistrationFailed:
image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_error.png"]];
[spinner stopAnimating];
[label setText:message];
registrationStateImage.hidden = NO;
image = [UIImage imageNamed:@"status_error.png"];
break;
case LinphoneRegistrationNone:
image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_disconnected.png"]];
[spinner stopAnimating];
[label setText:message];
registrationStateImage.hidden = NO;
image =[UIImage imageNamed:@"status_disconnected.png"];
break;
case LinphoneRegistrationProgress:
image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_inprogress.png"]];
[spinner stopAnimating];
[label setText:message];
registrationStateImage.hidden = NO;
image = [UIImage imageNamed:@"status_inprogress.png"];
break;
case LinphoneRegistrationOk:
image.hidden = NO;
[image setImage:[UIImage imageNamed:@"status_connected.png"]];
[spinner stopAnimating];
[label setText:message];
registrationStateImage.hidden = NO;
image = [UIImage imageNamed:@"status_connected.png"];
break;
}
[registrationStateLabel setText:message];
[registrationStateImage setImage:image];
}
- (void) viewDidUnload {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[callQualityTimer invalidate];
}
- (void) dealloc {
[super dealloc];
[[NSNotificationCenter defaultCenter] removeObserver:self];
[callQualityTimer invalidate];
[callQualityTimer release];
[super dealloc];
}
@end

View file

@ -53,7 +53,7 @@
</object>
<object class="IBUIImageView" id="332800514">
<reference key="NSNextResponder" ref="848661322"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 6}, {10, 10}}</string>
<reference key="NSSuperview" ref="848661322"/>
<reference key="NSWindow"/>
@ -63,16 +63,16 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">status_gray.png</string>
<string key="NSResourceName">status_disconnected.png</string>
</object>
</object>
<object class="IBUILabel" id="200467549">
<reference key="NSNextResponder" ref="848661322"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{22, 0}, {298, 20}}</string>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{22, 0}, {189, 20}}</string>
<reference key="NSSuperview" ref="848661322"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<reference key="NSNextKeyView" ref="327031870"/>
<string key="NSReuseIdentifierKey">_NS:328</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
@ -97,6 +97,17 @@
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIImageView" id="327031870">
<reference key="NSNextResponder" ref="848661322"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{219, 3}, {27, 17}}</string>
<reference key="NSSuperview" ref="848661322"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<string key="NSFrameSize">{320, 23}</string>
<reference key="NSSuperview"/>
@ -112,22 +123,6 @@
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">image</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="332800514"/>
</object>
<int key="connectionID">8</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">label</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="200467549"/>
</object>
<int key="connectionID">9</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
@ -136,6 +131,30 @@
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">registrationStateImage</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="332800514"/>
</object>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">registrationStateLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="200467549"/>
</object>
<int key="connectionID">15</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">callQualityImage</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="327031870"/>
</object>
<int key="connectionID">16</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@ -163,6 +182,7 @@
<reference ref="332800514"/>
<reference ref="200467549"/>
<reference ref="393098359"/>
<reference ref="327031870"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -170,13 +190,13 @@
<int key="objectID">6</int>
<reference key="object" ref="200467549"/>
<reference key="parent" ref="848661322"/>
<string key="objectName">status</string>
<string key="objectName">registrationStateLabel</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="332800514"/>
<reference key="parent" ref="848661322"/>
<string key="objectName">image</string>
<string key="objectName">registrationStateImage</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
@ -184,6 +204,12 @@
<reference key="parent" ref="848661322"/>
<string key="objectName">background</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">13</int>
<reference key="object" ref="327031870"/>
<reference key="parent" ref="848661322"/>
<string key="objectName">callQualityImage</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -192,6 +218,7 @@
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -200,9 +227,39 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">12</int>
<int key="maxID">16</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">UIStateBar</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="callQualityImage">UIImageView</string>
<string key="registrationStateImage">UIImageView</string>
<string key="registrationStateLabel">UILabel</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="callQualityImage">
<string key="name">callQualityImage</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo" key="registrationStateImage">
<string key="name">registrationStateImage</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo" key="registrationStateLabel">
<string key="name">registrationStateLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIStateBar.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
@ -213,7 +270,7 @@
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="barre-noire-top.png">{640, 46}</string>
<string key="status_gray.png">{25, 23}</string>
<string key="status_disconnected.png">{18, 17}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>

View file

@ -41,7 +41,7 @@
return self.selected;
}
- (id) init {
- (id)init {
[self update];
[self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
return self;

View file

@ -66,7 +66,7 @@
}
- (bool)onUpdate {
@try {
if([LinphoneManager isLcReady]) {
bool val = false;
LinphoneCall* currentCall = linphone_core_get_current_call([LinphoneManager getLc]);
if (currentCall) {
@ -83,7 +83,7 @@
[self setEnabled:FALSE];
}
return val;
} @catch(NSException* e) {
} else {
//not ready yet
return false;
}

View file

@ -1,10 +1,21 @@
//
// VideoZoomHandler.h
// linphone
//
// Created by Pierre-Eric Pelloux-Prayer on 25/04/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
/* VideoZoomHandler.h
*
* Copyright (C) 2012 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 <Foundation/Foundation.h>
@ -12,7 +23,8 @@
float zoomLevel, cx, cy;
UIView* videoView;
}
-(void) setup: (UIView*) videoView;
-(void) resetZoom;
- (void) setup: (UIView*) videoView;
- (void) resetZoom;
@end

View file

@ -1,10 +1,21 @@
//
// VideoZoomHandler.m
// linphone
//
// Created by Pierre-Eric Pelloux-Prayer on 25/04/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
/* VideoZoomHandler.m
*
* Copyright (C) 2012 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 "VideoZoomHandler.h"
#include "linphonecore.h"
@ -12,8 +23,7 @@
@implementation VideoZoomHandler
-(void) zoomInOut:(UITapGestureRecognizer*) reco {
- (void)zoomInOut:(UITapGestureRecognizer*) reco {
if (zoomLevel != 1)
zoomLevel = 1;
else
@ -29,7 +39,7 @@
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), zoomLevel, &cx, &cy);
}
-(void) videoPan:(UIPanGestureRecognizer*) reco {
- (void)videoPan:(UIPanGestureRecognizer*) reco {
if (zoomLevel <= 1.0)
return;
@ -53,7 +63,7 @@
cy = y;
}
-(void) pinch:(UIPinchGestureRecognizer*) reco {
- (void)pinch:(UIPinchGestureRecognizer*) reco {
float s = zoomLevel;
// CGPoint point = [reco locationInView:videoGroup];
// float ccx = cx + (point.x / videoGroup.frame.size.width - 0.5) / s;
@ -76,13 +86,12 @@
linphone_call_zoom_video(linphone_core_get_current_call([LinphoneManager getLc]), s, &cx, &cy);
}
-(void) resetZoom {
- (void)resetZoom {
zoomLevel = 1;
cx = cy = 0.5;
}
-(void) setup: (UIView*) view {
- (void)setup: (UIView*) view {
videoView = view;
UITapGestureRecognizer* doubleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(zoomInOut:)];
@ -101,4 +110,5 @@
[self resetZoom];
}
@end

View file

@ -19,11 +19,12 @@
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import "PhoneViewController.h"
#import "DialerViewController.h"
@interface MainScreenWithVideoPreview : UIViewController {
UIWindow *window;
PhoneViewController* phoneMainView;
DialerViewController* phoneMainView;
AVCaptureSession* session;
@ -36,6 +37,6 @@
-(void) useCameraAtIndex:(NSInteger)camIndex startSession:(BOOL)start;
@property (nonatomic, retain) IBOutlet PhoneViewController* phoneMainView;
@property (nonatomic, retain) IBOutlet DialerViewController* phoneMainView;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@end

View file

@ -129,12 +129,8 @@
-(void) showPreview:(BOOL) show {
LinphoneCore* lc;
@try {
if([LinphoneManager isLcReady])
lc = [LinphoneManager getLc];
}
@catch (NSException *exception) {
return;
}
bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"];
@ -160,7 +156,8 @@
-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside];
//TODO
//[phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside];
}
-(void) viewDidDisappear:(BOOL)animated {

View file

@ -18,9 +18,22 @@
*/
#import <UIKit/UIKit.h>
#import "LinphoneManager.h"
@interface PhoneMainView : UIViewController {
#import "LinphoneManager.h"
#import "CallDelegate.h"
@interface ViewsDescription: NSObject{
@public
UIViewController *content;
UIViewController *tabBar;
bool tabBarEnabled;
bool statusEnabled;
bool fullscreen;
}
-(id) copy;
@end
@interface PhoneMainView : UIViewController<CallActionSheetDelegate> {
UIView *stateBarView;
UIView *contentView;
UIView *tabBarView;
@ -34,8 +47,11 @@
UIViewController *callTabBarController;
UIViewController *mainTabBarController;
UIViewController *incomingCallTabBarController;
ViewsDescription *currentViewDescription;
UIActionSheet *incomingCallActionSheet;
}
@property (nonatomic, retain) IBOutlet UIView* stateBarView;
@property (nonatomic, retain) IBOutlet UIView* contentView;
@property (nonatomic, retain) IBOutlet UIView* tabBarView;

View file

@ -18,25 +18,22 @@
*/
#import "PhoneMainView.h"
#import "PhoneViewController.h"
#import "DialerViewController.h"
#import "HistoryViewController.h"
#import "ContactsViewController.h"
#import "InCallViewController.h"
typedef enum _TabBar {
TabBar_Main,
TabBar_END
} TabBar;
@interface ViewsDescription: NSObject{
@public
UIViewController *content;
UIViewController *tabBar;
bool statusEnabled;
}
@end
@implementation ViewsDescription
-(id) copy {
ViewsDescription *copy = [ViewsDescription alloc];
copy->content = self->content;
copy->tabBar = self->tabBar;
copy->tabBarEnabled = self->tabBarEnabled;
copy->statusEnabled = self->statusEnabled;
copy->fullscreen = self->fullscreen;
return copy;
}
@end
@implementation PhoneMainView
@ -52,33 +49,64 @@ typedef enum _TabBar {
@synthesize incomingCallTabBarController;
- (void)changeView: (NSNotification*) notif {
PhoneView view = [[notif.userInfo objectForKey: @"view"] intValue];
ViewsDescription *description = [viewDescriptions objectForKey:[NSNumber numberWithInt: view]];
NSNumber *viewId = [notif.userInfo objectForKey: @"view"];
NSNumber *tabBar = [notif.userInfo objectForKey: @"tabBar"];
NSNumber *fullscreen = [notif.userInfo objectForKey: @"fullscreen"];
for (UIView *view in contentView.subviews) {
[view removeFromSuperview];
if(viewId != nil) {
PhoneView view = [viewId intValue];
currentViewDescription = [[viewDescriptions objectForKey:[NSNumber numberWithInt: view]] copy];
}
for (UIView *view in tabBarView.subviews) {
[view removeFromSuperview];
}
if(description == nil)
ViewsDescription *description = currentViewDescription;
if(description == nil) {
return;
}
UIView *innerView = description->content.view;
[contentView addSubview: innerView];
CGRect contentFrame = contentView.frame;
if(description->statusEnabled) {
stateBarView.hidden = false;
contentFrame.origin.y = stateBarView.frame.size.height + stateBarView.frame.origin.y;
} else {
stateBarView.hidden = true;
contentFrame.origin.y = 0;
// Change view
if(viewId != nil) {
for (UIView *view in contentView.subviews) {
[view removeFromSuperview];
}
for (UIView *view in tabBarView.subviews) {
[view removeFromSuperview];
}
[contentView addSubview: innerView];
[tabBarView addSubview: description->tabBar.view];
}
// Resize tabbar
if(tabBar != nil) {
description->tabBarEnabled = [tabBar boolValue];
}
if(fullscreen != nil) {
description->fullscreen = [fullscreen boolValue];
}
CGRect contentFrame = contentView.frame;
// Resize StateBar
CGRect stateBarFrame = stateBarView.frame;
if(description->fullscreen)
stateBarFrame.origin.y = -20;
else
stateBarFrame.origin.y = 0;
if(description->statusEnabled) {
stateBarView.hidden = false;
[stateBarView setFrame: stateBarFrame];
contentFrame.origin.y = stateBarFrame.size.height + stateBarFrame.origin.y;
} else {
stateBarView.hidden = true;
contentFrame.origin.y = stateBarFrame.origin.y;
}
// Resize TabBar
CGRect tabFrame = tabBarView.frame;
if(description->tabBar != nil) {
if(description->tabBar != nil && description->tabBarEnabled) {
tabBarView.hidden = false;
tabFrame.origin.y += tabFrame.size.height;
tabFrame.origin.x += tabFrame.size.width;
@ -94,17 +122,20 @@ typedef enum _TabBar {
break;
}
}
[tabBarView addSubview: description->tabBar.view];
} else {
tabBarView.hidden = true;
contentFrame.size.height = tabFrame.origin.y - tabFrame.size.height;
contentFrame.size.height = tabFrame.origin.y + tabFrame.size.height;
if(description->fullscreen)
contentFrame.size.height += 20;
}
// Resize innerView
[contentView setFrame: contentFrame];
CGRect innerContentFrame = innerView.frame;
innerContentFrame.size = contentFrame.size;
[innerView setFrame: innerContentFrame];
// Call abstractCall
NSDictionary *dict = [notif.userInfo objectForKey: @"args"];
if(dict != nil)
[LinphoneManager abstractCall:description->content dict:dict];
@ -126,15 +157,17 @@ typedef enum _TabBar {
//
// Main View
//
PhoneViewController* myPhoneViewController = [[PhoneViewController alloc]
initWithNibName:@"PhoneViewController"
DialerViewController* myDialerViewController = [[DialerViewController alloc]
initWithNibName:@"DialerViewController"
bundle:[NSBundle mainBundle]];
//[myPhoneViewController loadView];
ViewsDescription *mainViewDescription = [ViewsDescription alloc];
mainViewDescription->content = myPhoneViewController;
mainViewDescription->tabBar = mainTabBarController;
mainViewDescription->statusEnabled = true;
[viewDescriptions setObject:mainViewDescription forKey:[NSNumber numberWithInt: PhoneView_Dialer]];
ViewsDescription *dialerDescription = [ViewsDescription alloc];
dialerDescription->content = myDialerViewController;
dialerDescription->tabBar = mainTabBarController;
dialerDescription->statusEnabled = true;
dialerDescription->fullscreen = false;
dialerDescription->tabBarEnabled = true;
[viewDescriptions setObject:dialerDescription forKey:[NSNumber numberWithInt: PhoneView_Dialer]];
//
@ -148,6 +181,8 @@ typedef enum _TabBar {
contactsDescription->content = myContactsController;
contactsDescription->tabBar = mainTabBarController;
contactsDescription->statusEnabled = false;
contactsDescription->fullscreen = false;
contactsDescription->tabBarEnabled = true;
[viewDescriptions setObject:contactsDescription forKey:[NSNumber numberWithInt: PhoneView_Contacts]];
@ -162,6 +197,8 @@ typedef enum _TabBar {
historyDescription->content = myHistoryController;
historyDescription->tabBar = mainTabBarController;
historyDescription->statusEnabled = false;
historyDescription->fullscreen = false;
historyDescription->tabBarEnabled = true;
[viewDescriptions setObject:historyDescription forKey:[NSNumber numberWithInt: PhoneView_History]];
@ -175,18 +212,218 @@ typedef enum _TabBar {
ViewsDescription *inCallDescription = [ViewsDescription alloc];
inCallDescription->content = myInCallController;
inCallDescription->tabBar = callTabBarController;
inCallDescription->statusEnabled = false;
inCallDescription->statusEnabled = true;
inCallDescription->fullscreen = false;
inCallDescription->tabBarEnabled = true;
[viewDescriptions setObject:inCallDescription forKey:[NSNumber numberWithInt: PhoneView_InCall]];
// Set observer
// Set observers
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeView:) name:@"LinphoneMainViewChange" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callUpdate:) name:@"LinphoneCallUpdate" object:nil];
}
- (void)viewDidUnload {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)callUpdate: (NSNotification*) notif {
LinphoneCallWrapper *callWrapper = [notif.userInfo objectForKey: @"call"];
LinphoneCall *call = callWrapper->call;
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
NSString *message = [notif.userInfo objectForKey: @"message"];
bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL);
switch (state) {
case LinphoneCallIncomingReceived:
{
[self displayIncomingCall:call];
break;
}
case LinphoneCallOutgoingInit:
case LinphoneCallPausedByRemote:
case LinphoneCallConnected:
case LinphoneCallUpdated:
{
if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
break;
}
case LinphoneCallUpdatedByRemote:
{
const LinphoneCallParams* current = linphone_call_get_current_params(call);
const LinphoneCallParams* remote = linphone_call_get_remote_params(call);
/* remote wants to add video */
if (!linphone_call_params_video_enabled(current) &&
linphone_call_params_video_enabled(remote) &&
!linphone_core_get_video_policy([LinphoneManager getLc])->automatically_accept) {
linphone_core_defer_call_update([LinphoneManager getLc], call);
//TODO
//[self displayAskToEnableVideoCall:call forUser:lUserName withDisplayName:lDisplayName];
} else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
}
break;
}
case LinphoneCallError:
{
[self displayCallError:call message: message];
}
case LinphoneCallEnd:
{
[self dismissIncomingCall];
if (canHideInCallView) {
if ([[LinphoneManager instance] currentView] != PhoneView_Dialer) {
// Go to dialer view
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:
[[NSArray alloc] initWithObjects: @"", nil]
, @"setAddress:",
nil];
[[LinphoneManager instance] changeView:PhoneView_Dialer dict:dict];
}
} else {
if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
}
break;
}
case LinphoneCallStreamsRunning:
{
if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
break;
}
default:
break;
}
}
- (void)displayCallError:(LinphoneCall*) call message:(NSString*) message {
const char* lUserNameChars=linphone_address_get_username(linphone_call_get_remote_address(call));
NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
NSString* lMessage;
NSString* lTitle;
//get default proxy
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
if (proxyCfg == nil) {
lMessage = NSLocalizedString(@"Please make sure your device is connected to the internet and double check your SIP account configuration in the settings.", nil);
} else {
lMessage = [NSString stringWithFormat : NSLocalizedString(@"Cannot call %@", nil), lUserName];
}
if (linphone_call_get_reason(call) == LinphoneReasonNotFound) {
lMessage = [NSString stringWithFormat : NSLocalizedString(@"'%@' not registered to Service", nil), lUserName];
} else {
if (message != nil) {
lMessage = [NSString stringWithFormat : NSLocalizedString(@"%@\nReason was: %@", nil), lMessage, message];
}
}
lTitle = NSLocalizedString(@"Call failed",nil);
UIAlertView* error = [[UIAlertView alloc] initWithTitle:lTitle
message:lMessage
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Dismiss",nil)
otherButtonTitles:nil];
[error show];
[error release];
}
- (void)dismissIncomingCall {
//cancel local notification, just in case
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState == UIApplicationStateBackground ) {
// cancel local notif if needed
[[UIApplication sharedApplication] cancelAllLocalNotifications];
} else {
if (incomingCallActionSheet) {
[incomingCallActionSheet dismissWithClickedButtonIndex:1 animated:true];
incomingCallActionSheet = nil;
}
}
//TODO
/*
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstlogindone_preference" ] == true) {
//first login case, dismmis first login view
[self dismissModalViewControllerAnimated:true];
}; */
}
- (void)displayIncomingCall:(LinphoneCall*) call{
const char* userNameChars=linphone_address_get_username(linphone_call_get_remote_address(call));
NSString* userName = userNameChars?[[[NSString alloc] initWithUTF8String:userNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
const char* displayNameChars = linphone_address_get_display_name(linphone_call_get_remote_address(call));
NSString* displayName = [displayNameChars?[[NSString alloc] initWithUTF8String:displayNameChars]:@"" autorelease];
//TODO
//[mMainScreenWithVideoPreview showPreview:NO];
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
// Create a new notification
UILocalNotification* notif = [[[UILocalNotification alloc] init] autorelease];
if (notif)
{
notif.repeatInterval = 0;
notif.alertBody =[NSString stringWithFormat:NSLocalizedString(@" %@ is calling you",nil),[displayName length]>0?displayName:userName];
notif.alertAction = @"Answer";
notif.soundName = @"oldphone-mono-30s.caf";
NSData *callData = [NSData dataWithBytes:&call length:sizeof(call)];
notif.userInfo = [NSDictionary dictionaryWithObject:callData forKey:@"call"];
[[UIApplication sharedApplication] presentLocalNotificationNow:notif];
}
} else {
CallDelegate* cd = [[CallDelegate alloc] init];
cd.eventType = CD_NEW_CALL;
cd.delegate = self;
cd.call = call;
incomingCallActionSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@" %@ is calling you",nil),[displayName length]>0?displayName:userName]
delegate:cd
cancelButtonTitle:nil
destructiveButtonTitle:NSLocalizedString(@"Answer",nil)
otherButtonTitles:NSLocalizedString(@"Decline",nil),nil];
incomingCallActionSheet.actionSheetStyle = UIActionSheetStyleDefault;
//TODO
/*if ([LinphoneManager runningOnIpad]) {
if (self.modalViewController != nil)
[incomingCallActionSheet showInView:[self.modalViewController view]];
else
[incomingCallActionSheet showInView:self.parentViewController.view];
} else */{
[incomingCallActionSheet showInView: self.view];
}
[incomingCallActionSheet release];
}
}
- (void)actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType)type
clickedButtonAtIndex:(NSInteger)buttonIndex
withUserDatas:(void *)datas {
if (type != CD_NEW_CALL)
return;
LinphoneCall* call = (LinphoneCall*)datas;
if (buttonIndex == actionSheet.destructiveButtonIndex) {
linphone_core_accept_call([LinphoneManager getLc], call);
} else {
linphone_core_terminate_call([LinphoneManager getLc], call);
}
incomingCallActionSheet = nil;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
@ -197,4 +434,5 @@ typedef enum _TabBar {
[super dealloc];
}
@end

View file

@ -40,6 +40,17 @@
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="813768660">
<reference key="NSNextResponder" ref="891400674"/>
<int key="NSvFlags">314</int>
<string key="NSFrame">{{0, 23}, {320, 380}}</string>
<reference key="NSSuperview" ref="891400674"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="565712161"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="512515388">
<reference key="NSNextResponder" ref="891400674"/>
<int key="NSvFlags">274</int>
@ -55,24 +66,12 @@
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="813768660">
<reference key="NSNextResponder" ref="891400674"/>
<int key="NSvFlags">314</int>
<string key="NSFrame">{{0, 23}, {320, 380}}</string>
<reference key="NSSuperview" ref="891400674"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="565712161"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="565712161">
<reference key="NSNextResponder" ref="891400674"/>
<int key="NSvFlags">280</int>
<string key="NSFrame">{{0, 400}, {320, 60}}</string>
<reference key="NSSuperview" ref="891400674"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -169,7 +168,6 @@
<string key="NSFrame">{{160, 0}, {160, 77}}</string>
<reference key="NSSuperview" ref="591517680"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
@ -268,7 +266,6 @@
<string key="NSFrame">{{192, 0}, {128, 72}}</string>
<reference key="NSSuperview" ref="909644813"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
@ -364,7 +361,7 @@
</object>
<object class="IBUIViewController" id="210198832">
<bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
<string key="IBUINibName">UIStatusBar</string>
<string key="IBUINibName">UIStateBar</string>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
@ -1046,8 +1043,8 @@
<string>{254, 144}</string>
<string>{320, 154}</string>
<string>{320, 154}</string>
<string>{132, 144}</string>
<string>{132, 144}</string>
<string>{128, 154}</string>
<string>{128, 154}</string>
<string>{320, 154}</string>
<string>{320, 154}</string>
</object>

View file

@ -1,101 +0,0 @@
/* PhoneViewController.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 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 <Foundation/Foundation.h>
#import "linphonecore.h"
#import "UILinphone.h"
#import "CallDelegate.h"
@class MainScreenWithVideoPreview;
@class InCallViewController;
@class FirstLoginViewController;
@interface PhoneViewController : UIViewController <UITextFieldDelegate, UIActionSheetCustomDelegate> {
@private
//UI definition
UIView* dialerView;
UITextField* address;
UILabel* mDisplayName;
UIEraseButton* erase;
UICallButton* callShort;
UICallButton* callLarge;
UILabel* status;
//key pad
UIDigitButton* one;
UIDigitButton* two;
UIDigitButton* three;
UIDigitButton* four;
UIDigitButton* five;
UIDigitButton* six;
UIDigitButton* seven;
UIDigitButton* eight;
UIDigitButton* nine;
UIDigitButton* star;
UIDigitButton* zero;
UIDigitButton* hash;
UIButton* backToCallView;
UIView* statusViewHolder;
UITabBarController* myTabBarController;
UIActionSheet *mIncomingCallActionSheet;
FirstLoginViewController* myFirstLoginViewController;
MainScreenWithVideoPreview* mMainScreenWithVideoPreview;
UIButton* switchCamera;
}
@property (nonatomic, retain) IBOutlet UIView* dialerView;
@property (nonatomic, retain) IBOutlet UITextField* address;
@property (nonatomic, retain) IBOutlet UILabel* mDisplayName;
@property (nonatomic, retain) IBOutlet UIButton* callShort;
@property (nonatomic, retain) IBOutlet UIButton* callLarge;
@property (nonatomic, retain) IBOutlet UILabel* status;
@property (nonatomic, retain) IBOutlet UIEraseButton* erase;
@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 UIView* statusViewHolder;
@property (nonatomic, retain) IBOutlet UIButton* backToCallView;
@property (nonatomic, retain) IBOutlet UIButton* switchCamera;
@property (nonatomic, retain) IBOutlet UITabBarController* myTabBarController;
@property (nonatomic, retain) IBOutlet MainScreenWithVideoPreview* mMainScreenWithVideoPreview;
-(IBAction) onAddContact: (id) event;
@end

View file

@ -1,462 +0,0 @@
/* PhoneViewController.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 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 "PhoneViewController.h"
#import "linphoneAppDelegate.h"
#import "IncallViewController.h"
#import <AVFoundation/AVAudioSession.h>
#import <AudioToolbox/AudioToolbox.h>
#import "LinphoneManager.h"
#include "FirstLoginViewController.h"
#include "MainScreenWithVideoPreview.h"
#include "linphonecore.h"
#include "private.h"
#import "PhoneMainView.h"
@implementation PhoneViewController
@synthesize dialerView;
@synthesize mDisplayName;
@synthesize address;
@synthesize callShort;
@synthesize callLarge;
@synthesize status;
@synthesize erase;
@synthesize one;
@synthesize two;
@synthesize three;
@synthesize four;
@synthesize five;
@synthesize six;
@synthesize seven;
@synthesize eight;
@synthesize nine;
@synthesize star;
@synthesize zero;
@synthesize hash;
@synthesize statusViewHolder;
@synthesize myTabBarController;
@synthesize mMainScreenWithVideoPreview;
@synthesize backToCallView;
@synthesize switchCamera;
- (void)updateCallAndBackButtons {
@try {
bool zeroCall = (linphone_core_get_calls_nb([LinphoneManager getLc]) == 0);
[LinphoneManager set:callLarge hidden:!zeroCall withName:"CALL_LARGE button" andReason:__FUNCTION__];
[LinphoneManager set:switchCamera hidden:!zeroCall withName:"SWITCH_CAM button" andReason:__FUNCTION__];
[LinphoneManager set:callShort hidden:zeroCall withName:"CALL_SHORT button" andReason:__FUNCTION__];
[LinphoneManager set:backToCallView hidden:zeroCall withName:"BACK button" andReason:__FUNCTION__];
[callShort setTitle:[UICallButton transforModeEnabled] ? @"transfer":@"call" forState:UIControlStateNormal];
if (!callShort.hidden)
[callShort setEnabled:!linphone_core_sound_resources_locked([LinphoneManager getLc])];
} @catch (NSException* exc) {
// R.A.S: linphone core si simply not ready...
ms_warning("Catched exception %s: %s",
[exc.name cStringUsingEncoding:[NSString defaultCStringEncoding]],
[exc.reason cStringUsingEncoding:[NSString defaultCStringEncoding]]);
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"enable_first_login_view_preference"] == true) {
myFirstLoginViewController = [[FirstLoginViewController alloc] initWithNibName:@"FirstLoginViewController"
bundle:[NSBundle mainBundle]];
[self presentModalViewController:myFirstLoginViewController animated:true];
}
// [[LinphoneManager instance] setRegistrationDelegate:self];
[mMainScreenWithVideoPreview showPreview:YES];
[self updateCallAndBackButtons];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
}
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib : may be called twice
- (void)viewDidLoad {
[super viewDidLoad];
// Set observer
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(callUpdate:) name:@"LinphoneCallUpdate" object:nil];
[mDisplayName release];
mDisplayName = [UILabel alloc];
[zero initWithNumber:'0' addressField:address dtmf:false];
[one initWithNumber:'1' addressField:address dtmf:false];
[two initWithNumber:'2' addressField:address dtmf:false];
[three initWithNumber:'3' addressField:address dtmf:false];
[four initWithNumber:'4' addressField:address dtmf:false];
[five initWithNumber:'5' addressField:address dtmf:false];
[six initWithNumber:'6' addressField:address dtmf:false];
[seven initWithNumber:'7' addressField:address dtmf:false];
[eight initWithNumber:'8' addressField:address dtmf:false];
[nine initWithNumber:'9' addressField:address dtmf:false];
[star initWithNumber:'*' addressField:address dtmf:false];
[hash initWithNumber:'#' addressField:address dtmf:false];
[callShort initWithAddress:address];
[callLarge initWithAddress:address];
[erase initWithAddressField:address];
[backToCallView addTarget:self action:@selector(backToCallViewPressed) forControlEvents:UIControlEventTouchUpInside];
/*if (statusSubViewController == nil) {
statusSubViewController = [[StatusSubViewController alloc] initWithNibName:@"StatusSubViewController"
bundle:[NSBundle mainBundle]];
[statusViewHolder addSubview:statusSubViewController.view];
}*/
[self updateCallAndBackButtons];
}
- (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;
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == address) {
[address resignFirstResponder];
[mDisplayName setText:@""]; //display name only relefvant
}
return YES;
}
- (void)viewWillAppear:(BOOL)animated {
[self updateCallAndBackButtons];
[super viewWillAppear:animated];
}
- (void)callUpdate: (NSNotification*) notif {
LinphoneCallWrapper *callWrapper = [notif.userInfo objectForKey: @"call"];
LinphoneCall *call = callWrapper->call;
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
const char* lUserNameChars=linphone_address_get_username(linphone_call_get_remote_address(call));
NSString* lUserName = lUserNameChars?[[[NSString alloc] initWithUTF8String:lUserNameChars] autorelease]:NSLocalizedString(@"Unknown",nil);
const char* lDisplayNameChars = linphone_address_get_display_name(linphone_call_get_remote_address(call));
NSString* lDisplayName = [lDisplayNameChars?[[NSString alloc] initWithUTF8String:lDisplayNameChars]:@"" autorelease];
bool canHideInCallView = (linphone_core_get_calls([LinphoneManager getLc]) == NULL);
switch (state) {
case LinphoneCallIncomingReceived:
[self displayIncomingCall:call
NotificationFromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
break;
case LinphoneCallOutgoingInit:
[self displayCall:call
InProgressFromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
break;
case LinphoneCallPausedByRemote:
case LinphoneCallConnected:
[self displayInCall: call
FromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
break;
case LinphoneCallUpdatedByRemote:
{
const LinphoneCallParams* current = linphone_call_get_current_params(call);
const LinphoneCallParams* remote = linphone_call_get_remote_params(call);
/* remote wants to add video */
if (!linphone_call_params_video_enabled(current) &&
linphone_call_params_video_enabled(remote) &&
!linphone_core_get_video_policy([LinphoneManager getLc])->automatically_accept) {
linphone_core_defer_call_update([LinphoneManager getLc], call);
[self displayAskToEnableVideoCall:call forUser:lUserName withDisplayName:lDisplayName];
} else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
[self displayInCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
}
break;
}
case LinphoneCallUpdated:
{
const LinphoneCallParams* current = linphone_call_get_current_params(call);
if (linphone_call_params_video_enabled(current)) {
[self displayVideoCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
} else {
[self displayInCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
}
break;
}
case LinphoneCallError: {
if (canHideInCallView) {
[self displayDialerFromUI:nil
forUser:@""
withDisplayName:@""];
} else {
[self displayInCall:call
FromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
}
break;
}
case LinphoneCallEnd:
if (canHideInCallView) {
[self displayDialerFromUI:nil
forUser:@""
withDisplayName:@""];
} else {
[self displayInCall:call
FromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
}
break;
case LinphoneCallStreamsRunning:
//check video
if (linphone_call_params_video_enabled(linphone_call_get_current_params(call))) {
[self displayVideoCall:call FromUI:nil
forUser:lUserName
withDisplayName:lDisplayName];
} else {
[self displayInCall:call FromUI:nil forUser:lUserName withDisplayName:lDisplayName];
}
break;
default:
break;
}
}
- (void)displayDialerFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
//cancel local notification, just in case
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState == UIApplicationStateBackground ) {
// cancel local notif if needed
[[UIApplication sharedApplication] cancelAllLocalNotifications];
} else {
if (mIncomingCallActionSheet) {
[mIncomingCallActionSheet dismissWithClickedButtonIndex:1 animated:true];
mIncomingCallActionSheet=nil;
}
}
if (username) {
[address setText:username];
} //else keep previous
[mDisplayName setText:displayName];
[self updateCallAndBackButtons];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstlogindone_preference" ] == true) {
//first login case, dismmis first login view
[self dismissModalViewControllerAnimated:true];
};
[[LinphoneManager instance] changeView:PhoneView_Dialer];
[mMainScreenWithVideoPreview showPreview:YES];
}
- (void)displayIncomingCall:(LinphoneCall*) call NotificationFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
[mMainScreenWithVideoPreview showPreview:NO];
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
// Create a new notification
UILocalNotification* notif = [[[UILocalNotification alloc] init] autorelease];
if (notif)
{
notif.repeatInterval = 0;
notif.alertBody =[NSString stringWithFormat:NSLocalizedString(@" %@ is calling you",nil),[displayName length]>0?displayName:username];
notif.alertAction = @"Answer";
notif.soundName = @"oldphone-mono-30s.caf";
NSData *callData = [NSData dataWithBytes:&call length:sizeof(call)];
notif.userInfo = [NSDictionary dictionaryWithObject:callData forKey:@"call"];
[[UIApplication sharedApplication] presentLocalNotificationNow:notif];
}
} else {
CallDelegate* cd = [[CallDelegate alloc] init];
cd.eventType = CD_NEW_CALL;
cd.delegate = self;
cd.call = call;
mIncomingCallActionSheet = [[UIActionSheet alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@" %@ is calling you",nil),[displayName length]>0?displayName:username]
delegate:cd
cancelButtonTitle:nil
destructiveButtonTitle:NSLocalizedString(@"Answer",nil)
otherButtonTitles:NSLocalizedString(@"Decline",nil),nil];
mIncomingCallActionSheet.actionSheetStyle = UIActionSheetStyleDefault;
if ([LinphoneManager runningOnIpad]) {
if (self.modalViewController != nil)
[mIncomingCallActionSheet showInView:[self.modalViewController view]];
else
[mIncomingCallActionSheet showInView:self.parentViewController.view];
} else {
[mIncomingCallActionSheet showInView:self.parentViewController.view];
}
[mIncomingCallActionSheet release];
}
[mMainScreenWithVideoPreview showPreview:NO];
}
- (void)backToCallViewPressed {
[UICallButton enableTransforMode:NO];
[[LinphoneManager instance] changeView:PhoneView_InCall];
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
if (!call || !linphone_call_params_video_enabled(linphone_call_get_current_params(call)) || linphone_call_get_state(call) != LinphoneCallStreamsRunning) {
[self displayInCall: call
FromUI:nil
forUser:nil
withDisplayName:nil];
} else {
[self displayVideoCall:call FromUI:nil forUser:nil withDisplayName:nil];
}
}
- (void)displayCall: (LinphoneCall*) call InProgressFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
[mMainScreenWithVideoPreview showPreview:NO];
if ([[LinphoneManager instance]currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
[mMainScreenWithVideoPreview showPreview:NO];
}
- (void)displayInCall: (LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
[mMainScreenWithVideoPreview showPreview:NO];
if ([[LinphoneManager instance]currentView] != PhoneView_InCall && (call == 0x0 ||
linphone_call_get_dir(call)==LinphoneCallIncoming)){
[[LinphoneManager instance] changeView:PhoneView_InCall];
}
[LinphoneManager set:callLarge hidden:YES withName:"CALL_LARGE button" andReason:__FUNCTION__];
[LinphoneManager set:switchCamera hidden:YES withName:"SWITCH_CAMERA button" andReason:__FUNCTION__];
[LinphoneManager set:callShort hidden:NO withName:"CALL_SHORT button" andReason:__FUNCTION__];
[LinphoneManager set:backToCallView hidden:NO withName:"CALL_BACK button" andReason:__FUNCTION__];
[self updateCallAndBackButtons];
}
- (void)displayVideoCall:(LinphoneCall*) call FromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName {
[mMainScreenWithVideoPreview showPreview:NO];
[mMainScreenWithVideoPreview showPreview:NO];
[self updateCallAndBackButtons];
}
- (void)displayAskToEnableVideoCall:(LinphoneCall*) call forUser:(NSString*) username withDisplayName:(NSString*) displayName {
}
- (void)actionSheet:(UIActionSheet *)actionSheet ofType:(enum CallDelegateType)type clickedButtonAtIndex:(NSInteger)buttonIndex withUserDatas:(void *)datas {
if (type != CD_NEW_CALL)
return;
LinphoneCall* call = (LinphoneCall*)datas;
if (buttonIndex == actionSheet.destructiveButtonIndex ) {
linphone_core_accept_call([LinphoneManager getLc],call);
} else {
linphone_core_terminate_call ([LinphoneManager getLc], call);
}
mIncomingCallActionSheet = nil;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[address dealloc];
[mDisplayName dealloc];
[dialerView dealloc];
[callShort dealloc];
[callLarge dealloc];
[status dealloc];
[one dealloc];
[two dealloc];
[three dealloc];
[four dealloc];
[five dealloc];
[six dealloc];
[seven dealloc];
[eight dealloc];
[nine dealloc];
[star dealloc];
[zero dealloc];
[hash dealloc];
[myTabBarController release];
[super dealloc];
}
- (void)displayRegisteredFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName onDomain:(NSString*)domain {
if (myFirstLoginViewController != nil && self.modalViewController == myFirstLoginViewController) {
//[myFirstLoginViewController displayRegisteredFromUI:viewCtrl forUser:username withDisplayName:displayName onDomain:domain];
}
}
- (void)displayRegisteringFromUI:(UIViewController*) viewCtrl forUser:(NSString*) username withDisplayName:(NSString*) displayName onDomain:(NSString*)domain {
if (myFirstLoginViewController != nil && self.modalViewController == myFirstLoginViewController) {
//[myFirstLoginViewController displayRegisteringFromUI:viewCtrl forUser:username withDisplayName:displayName onDomain:domain];
}
}
- (void)displayRegistrationFailedFromUI:(UIViewController*) viewCtrl forUser:(NSString*) user withDisplayName:(NSString*) displayName onDomain:(NSString*)domain forReason:(NSString*) reason {
if (myFirstLoginViewController != nil && self.modalViewController == myFirstLoginViewController) {
//[myFirstLoginViewController displayRegistrationFailedFromUI:viewCtrl forUser:user withDisplayName:displayName onDomain:domain forReason:reason];
}
}
- (void)displayNotRegisteredFromUI:(UIViewController*) viewCtrl {
if (myFirstLoginViewController != nil && self.modalViewController == myFirstLoginViewController) {
//[myFirstLoginViewController displayNotRegisteredFromUI:viewCtrl];
}
}
- (void)firstVideoFrameDecoded: (LinphoneCall*) call {
// [mIncallViewController firstVideoFrameDecoded:call];
}
- (IBAction)onAddContact: (id) event {
}
@end

View file

@ -1,993 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1280</int>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">933</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBUIButton</string>
<string>IBUIImageView</string>
<string>IBUIView</string>
<string>IBProxyObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">4</int>
<bytes key="NSWhite">MAA</bytes>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="25193021">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="873033834">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="901145609"/>
<string key="NSReuseIdentifierKey">_NS:569</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIButton" id="897140295">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{329, 962}, {108, 62}}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="509323940"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="161001452">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="427664221">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUINormalImage" id="40615645">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">stopcall-red.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage" id="688574829">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">clavier-01-108px.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="714163490">
<string key="name">Helvetica-Bold</string>
<string key="family">Helvetica</string>
<int key="traits">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="5163959">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="68468370">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{223, 962}, {108, 62}}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="897140295"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIView" id="679593526">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{598, 799}, {170, 225}}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="963186597">
<int key="NSID">2</int>
</object>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIButton" id="509323940">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{436, 962}, {108, 62}}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="679593526"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">switch</string>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIImageView" id="901145609">
<reference key="NSNextResponder" ref="25193021"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 976}, {28, 28}}</string>
<reference key="NSSuperview" ref="25193021"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="68468370"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
</array>
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="873033834"/>
<string key="NSReuseIdentifierKey">_NS:212</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="763566492">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="696525010">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{1024, 768}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="637528292"/>
<string key="NSReuseIdentifierKey">_NS:569</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="756580344">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{799, 598}, {225, 170}}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="963186597"/>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIButton" id="637528292">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{351, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="303730267"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIButton" id="303730267">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{458, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="499714887"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalImage" ref="40615645"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIButton" id="499714887">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{565, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="756580344"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">switch</string>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIImageView" id="569478742">
<reference key="NSNextResponder" ref="763566492"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 720}, {28, 28}}</string>
<reference key="NSSuperview" ref="763566492"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
</array>
<string key="NSFrameSize">{1024, 768}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="696525010"/>
<string key="NSReuseIdentifierKey">_NS:212</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
</object>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="79829529">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="97794255">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{1024, 768}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="243148779"/>
<string key="NSReuseIdentifierKey">_NS:569</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIView" id="799261982">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{799, 598}, {225, 170}}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="963186597"/>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
<object class="IBUIButton" id="243148779">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{351, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="796028571"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIButton" id="796028571">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{458, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="551257366"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalImage" ref="40615645"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIButton" id="551257366">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{565, 706}, {108, 62}}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="799261982"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">switch</string>
<reference key="IBUIHighlightedTitleColor" ref="161001452"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="427664221"/>
<reference key="IBUINormalBackgroundImage" ref="688574829"/>
<reference key="IBUIFontDescription" ref="714163490"/>
<reference key="IBUIFont" ref="5163959"/>
</object>
<object class="IBUIImageView" id="1027554431">
<reference key="NSNextResponder" ref="79829529"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 720}, {28, 28}}</string>
<reference key="NSSuperview" ref="79829529"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
</array>
<string key="NSFrameSize">{1024, 768}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="97794255"/>
<string key="NSReuseIdentifierKey">_NS:212</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
</object>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
</object>
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitch</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="509323940"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUp</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="897140295"/>
</object>
<int key="connectionID">16</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPortrait</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="25193021"/>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreview</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="679593526"/>
</object>
<int key="connectionID">20</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">22</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMute</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="68468370"/>
</object>
<int key="connectionID">23</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mDisplay</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="873033834"/>
</object>
<int key="connectionID">27</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitchLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="551257366"/>
</object>
<int key="connectionID">35</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitchLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="499714887"/>
</object>
<int key="connectionID">36</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mDisplayLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="97794255"/>
</object>
<int key="connectionID">37</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mDisplayLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="696525010"/>
</object>
<int key="connectionID">38</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUpLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="796028571"/>
</object>
<int key="connectionID">39</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUpLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="303730267"/>
</object>
<int key="connectionID">40</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mLandscapeLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="79829529"/>
</object>
<int key="connectionID">41</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mLandscapeRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="763566492"/>
</object>
<int key="connectionID">42</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMuteLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="243148779"/>
</object>
<int key="connectionID">43</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMuteLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="637528292"/>
</object>
<int key="connectionID">44</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreviewLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="799261982"/>
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreviewLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="756580344"/>
</object>
<int key="connectionID">46</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQuality</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="901145609"/>
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQualityLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="1027554431"/>
</object>
<int key="connectionID">52</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQualityLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="569478742"/>
</object>
<int key="connectionID">53</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="0"/>
<string key="objectName">root</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="25193021"/>
<array class="NSMutableArray" key="children">
<reference ref="679593526"/>
<reference ref="873033834"/>
<reference ref="897140295"/>
<reference ref="68468370"/>
<reference ref="509323940"/>
<reference ref="901145609"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">portrait</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="763566492"/>
<array class="NSMutableArray" key="children">
<reference ref="499714887"/>
<reference ref="756580344"/>
<reference ref="696525010"/>
<reference ref="303730267"/>
<reference ref="637528292"/>
<reference ref="569478742"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">landscape-right</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="897140295"/>
<reference key="parent" ref="25193021"/>
<string key="objectName">Hang Up Button</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="68468370"/>
<reference key="parent" ref="25193021"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="679593526"/>
<reference key="parent" ref="25193021"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="509323940"/>
<reference key="parent" ref="25193021"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="756580344"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="763566492"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="303730267"/>
<reference key="parent" ref="763566492"/>
<string key="objectName">Hang Up Button</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="499714887"/>
<reference key="parent" ref="763566492"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="637528292"/>
<reference key="parent" ref="763566492"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="873033834"/>
<reference key="parent" ref="25193021"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">26</int>
<reference key="object" ref="696525010"/>
<reference key="parent" ref="763566492"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">29</int>
<reference key="object" ref="79829529"/>
<array class="NSMutableArray" key="children">
<reference ref="243148779"/>
<reference ref="796028571"/>
<reference ref="97794255"/>
<reference ref="799261982"/>
<reference ref="551257366"/>
<reference ref="1027554431"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">landscape-left</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">30</int>
<reference key="object" ref="243148779"/>
<reference key="parent" ref="79829529"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">31</int>
<reference key="object" ref="796028571"/>
<reference key="parent" ref="79829529"/>
<string key="objectName">Hang Up Button</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">32</int>
<reference key="object" ref="97794255"/>
<reference key="parent" ref="79829529"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">33</int>
<reference key="object" ref="799261982"/>
<reference key="parent" ref="79829529"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">34</int>
<reference key="object" ref="551257366"/>
<reference key="parent" ref="79829529"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">48</int>
<reference key="object" ref="901145609"/>
<reference key="parent" ref="25193021"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">49</int>
<reference key="object" ref="569478742"/>
<reference key="parent" ref="763566492"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">50</int>
<reference key="object" ref="1027554431"/>
<reference key="parent" ref="79829529"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">VideoViewController</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="11.CustomClassName">UIHangUpButton</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="12.CustomClassName">UICamSwitch</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="30.CustomClassName">UIMuteButton</string>
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="31.CustomClassName">UIHangUpButton</string>
<string key="31.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="33.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="34.CustomClassName">UICamSwitch</string>
<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="48.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="49.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="5.CustomClassName">UIHangUpButton</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="50.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.CustomClassName">UIMuteButton</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="8.CustomClassName">UICamSwitch</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.CustomClassName">UIMuteButton</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">53</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">UICamSwitch</string>
<string key="superclassName">UIButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">preview</string>
<string key="NS.object.0">UIView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">preview</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">preview</string>
<string key="candidateClassName">UIView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICamSwitch.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMuteButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMuteButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VideoViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="mCallQuality">UIImageView</string>
<string key="mCallQualityLandLeft">UIImageView</string>
<string key="mCallQualityLandRight">UIImageView</string>
<string key="mCamSwitch">UICamSwitch</string>
<string key="mCamSwitchLandLeft">UICamSwitch</string>
<string key="mCamSwitchLandRight">UICamSwitch</string>
<string key="mDisplay">UIView</string>
<string key="mDisplayLandLeft">UIView</string>
<string key="mDisplayLandRight">UIView</string>
<string key="mHangUp">UIHangUpButton</string>
<string key="mHangUpLandLeft">UIHangUpButton</string>
<string key="mHangUpLandRight">UIHangUpButton</string>
<string key="mLandscapeLeft">UIView</string>
<string key="mLandscapeRight">UIView</string>
<string key="mMute">UIMuteButton</string>
<string key="mMuteLandLeft">UIMuteButton</string>
<string key="mMuteLandRight">UIMuteButton</string>
<string key="mPortrait">UIView</string>
<string key="mPreview">UIView</string>
<string key="mPreviewLandLeft">UIView</string>
<string key="mPreviewLandRight">UIView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="mCallQuality">
<string key="name">mCallQuality</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo" key="mCallQualityLandLeft">
<string key="name">mCallQualityLandLeft</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo" key="mCallQualityLandRight">
<string key="name">mCallQualityLandRight</string>
<string key="candidateClassName">UIImageView</string>
</object>
<object class="IBToOneOutletInfo" key="mCamSwitch">
<string key="name">mCamSwitch</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo" key="mCamSwitchLandLeft">
<string key="name">mCamSwitchLandLeft</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo" key="mCamSwitchLandRight">
<string key="name">mCamSwitchLandRight</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo" key="mDisplay">
<string key="name">mDisplay</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mDisplayLandLeft">
<string key="name">mDisplayLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mDisplayLandRight">
<string key="name">mDisplayLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mHangUp">
<string key="name">mHangUp</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="mHangUpLandLeft">
<string key="name">mHangUpLandLeft</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="mHangUpLandRight">
<string key="name">mHangUpLandRight</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="mLandscapeLeft">
<string key="name">mLandscapeLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mLandscapeRight">
<string key="name">mLandscapeRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mMute">
<string key="name">mMute</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo" key="mMuteLandLeft">
<string key="name">mMuteLandLeft</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo" key="mMuteLandRight">
<string key="name">mMuteLandRight</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo" key="mPortrait">
<string key="name">mPortrait</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mPreview">
<string key="name">mPreview</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mPreviewLandLeft">
<string key="name">mPreviewLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="mPreviewLandRight">
<string key="name">mPreviewLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/VideoViewController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="clavier-01-108px.png">{108, 60}</string>
<string key="stopcall-red.png">{62, 54}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">933</string>
</data>
</archive>

View file

@ -1,74 +0,0 @@
/* VideoViewController.h
*
* Copyright (C) 2011 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU 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 "UILinphone.h"
@interface VideoViewController : UIViewController {
UIView* mPortrait;
UIView* mDisplay;
UIView* mPreview;
UIMicroButton* mMute;
UIHangUpButton* mHangUp;
UICamSwitch* mCamSwitch;
UIView* mLandscapeRight;
UIView* mDisplayLandRight;
UIView* mPreviewLandRight;
UIMicroButton* mMuteLandRight;
UIHangUpButton* mHangUpLandRight;
UICamSwitch* mCamSwitchLandRight;
UIView* mLandscapeLeft;
UIView* mDisplayLandLeft;
UIView* mPreviewLandLeft;
UIMicroButton* mMuteLandLeft;
UIHangUpButton* mHangUpLandLeft;
UICamSwitch* mCamSwitchLandLeft;
BOOL isFirst;
int maxCall;
}
@property (nonatomic, retain) IBOutlet UIView* mPortrait;
@property (nonatomic, retain) IBOutlet UIView* mDisplay;
@property (nonatomic, retain) IBOutlet UIView* mPreview;
@property (nonatomic, retain) IBOutlet UIMicroButton* mMute;
@property (nonatomic, retain) IBOutlet UIHangUpButton* mHangUp;
@property (nonatomic, retain) IBOutlet UICamSwitch* mCamSwitch;
@property (nonatomic, retain) IBOutlet UIImageView *mCallQuality;
@property (nonatomic, retain) IBOutlet UIView* mLandscapeRight;
@property (nonatomic, retain) IBOutlet UIView* mDisplayLandRight;
@property (nonatomic, retain) IBOutlet UIView* mPreviewLandRight;
@property (nonatomic, retain) IBOutlet UIMicroButton* mMuteLandRight;
@property (nonatomic, retain) IBOutlet UIHangUpButton* mHangUpLandRight;
@property (nonatomic, retain) IBOutlet UICamSwitch* mCamSwitchLandRight;
@property (nonatomic, retain) IBOutlet UIImageView *mCallQualityLandRight;
@property (nonatomic, retain) IBOutlet UIView* mLandscapeLeft;
@property (nonatomic, retain) IBOutlet UIView* mDisplayLandLeft;
@property (nonatomic, retain) IBOutlet UIView* mPreviewLandLeft;
@property (nonatomic, retain) IBOutlet UIMicroButton* mMuteLandLeft;
@property (nonatomic, retain) IBOutlet UIHangUpButton* mHangUpLandLeft;
@property (nonatomic, retain) IBOutlet UICamSwitch* mCamSwitchLandLeft;
@property (retain, nonatomic) IBOutlet UIImageView *mCallQualityLandLeft;
- (void) updateCallQualityIndicator;
@end

View file

@ -1,230 +0,0 @@
/* VideoViewController.m
*
* Copyright (C) 2011 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU 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 "VideoViewController.h"
#import "LinphoneManager.h"
#import <AudioToolbox/AudioToolbox.h>
@implementation VideoViewController
@synthesize mPortrait;
@synthesize mDisplay;
@synthesize mPreview;
@synthesize mMute;
@synthesize mHangUp;
@synthesize mCamSwitch;
@synthesize mCallQuality;
@synthesize mLandscapeRight;
@synthesize mDisplayLandRight;
@synthesize mPreviewLandRight;
@synthesize mMuteLandRight;
@synthesize mHangUpLandRight;
@synthesize mCamSwitchLandRight;
@synthesize mCallQualityLandRight;
@synthesize mLandscapeLeft;
@synthesize mDisplayLandLeft;
@synthesize mPreviewLandLeft;
@synthesize mMuteLandLeft;
@synthesize mHangUpLandLeft;
@synthesize mCamSwitchLandLeft;
@synthesize mCallQualityLandLeft;
NSTimer *callQualityRefresher;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)dealloc
{
[mCallQuality release];
[mCallQualityLandRight release];
[mCallQualityLandLeft release];
[super dealloc];
}
- (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.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
/*[mMute initWithOnImage:[UIImage imageNamed:@"micro_inverse.png"] offImage:[UIImage imageNamed:@"micro.png"] debugName:"MUTE button"];
[mMuteLandRight initWithOnImage:[UIImage imageNamed:@"micro_inverse.png"] offImage:[UIImage imageNamed:@"micro.png"] debugName:"MUTE2 button"];
[mMuteLandLeft initWithOnImage:[UIImage imageNamed:@"micro_inverse.png"] offImage:[UIImage imageNamed:@"micro.png"] debugName:"MUTE3 button"];*/
[mCamSwitch setPreview:mPreview];
[mCamSwitchLandRight setPreview:mPreviewLandRight];
[mCamSwitchLandLeft setPreview:mPreviewLandLeft];
isFirst=TRUE;
}
- (void) updateCallQualityIndicator
{
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
if (!call)
return;
if (linphone_call_get_average_quality(call) >= 4) {
[mCallQuality setImage: [UIImage imageNamed:@"stat_sys_signal_4.png"]];
[mCallQualityLandRight setImage: [UIImage imageNamed:@"stat_sys_signal_4.png"]];
[mCallQualityLandLeft setImage: [UIImage imageNamed:@"stat_sys_signal_4.png"]];
}
else if (linphone_call_get_average_quality(call) >= 3) {
[mCallQuality setImage: [UIImage imageNamed:@"stat_sys_signal_3.png"]];
[mCallQualityLandRight setImage: [UIImage imageNamed:@"stat_sys_signal_3.png"]];
[mCallQualityLandLeft setImage: [UIImage imageNamed:@"stat_sys_signal_3.png"]];
}
else if (linphone_call_get_average_quality(call) >= 2) {
[mCallQuality setImage: [UIImage imageNamed:@"stat_sys_signal_2.png"]];
[mCallQualityLandRight setImage: [UIImage imageNamed:@"stat_sys_signal_2.png"]];
[mCallQualityLandLeft setImage: [UIImage imageNamed:@"stat_sys_signal_2.png"]];
}
else if (linphone_call_get_average_quality(call) >= 1) {
[mCallQuality setImage: [UIImage imageNamed:@"stat_sys_signal_1.png"]];
[mCallQualityLandRight setImage: [UIImage imageNamed:@"stat_sys_signal_1.png"]];
[mCallQualityLandLeft setImage: [UIImage imageNamed:@"stat_sys_signal_1.png"]];
}
else {
[mCallQuality setImage: [UIImage imageNamed:@"stat_sys_signal_0.png"]];
[mCallQualityLandRight setImage: [UIImage imageNamed:@"stat_sys_signal_0.png"]];
[mCallQualityLandLeft setImage: [UIImage imageNamed:@"stat_sys_signal_0.png"]];
}
}
-(void) configureOrientation:(UIInterfaceOrientation) oritentation {
int oldLinphoneOrientation = linphone_core_get_device_rotation([LinphoneManager getLc]);
if (oritentation == UIInterfaceOrientationPortrait ) {
[self.view addSubview:mPortrait];
linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)mDisplay);
linphone_core_set_native_preview_window_id([LinphoneManager getLc],(unsigned long)mPreview);
linphone_core_set_device_rotation([LinphoneManager getLc], 0);
} else if (oritentation == UIInterfaceOrientationLandscapeRight ) {
[self.view addSubview:mLandscapeRight];
linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)mDisplayLandRight);
linphone_core_set_native_preview_window_id([LinphoneManager getLc],(unsigned long)mPreviewLandRight);
linphone_core_set_device_rotation([LinphoneManager getLc], 270);
} else if (oritentation == UIInterfaceOrientationLandscapeLeft ) {
[self.view addSubview:mLandscapeLeft];
linphone_core_set_native_video_window_id([LinphoneManager getLc],(unsigned long)mDisplayLandLeft);
linphone_core_set_native_preview_window_id([LinphoneManager getLc],(unsigned long)mPreviewLandLeft);
linphone_core_set_device_rotation([LinphoneManager getLc], 90);
}
if ((oldLinphoneOrientation != linphone_core_get_device_rotation([LinphoneManager getLc]))
&& linphone_core_get_current_call([LinphoneManager getLc])) {
//Orientation has change, must call update call
linphone_core_update_call([LinphoneManager getLc], linphone_core_get_current_call([LinphoneManager getLc]), NULL);
}
}
-(void) configureOrientation {
[self configureOrientation:self.interfaceOrientation];
}
- (void)viewDidUnload
{
[mCallQuality release];
mCallQuality = nil;
[self setMCallQualityLandRight:nil];
[self setMCallQualityLandLeft:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
-(void) viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
linphone_core_set_max_calls([LinphoneManager getLc], maxCall);
if (callQualityRefresher != nil) {
[callQualityRefresher invalidate];
callQualityRefresher=nil;
}
}
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//redirect audio to speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute
, sizeof (audioRouteOverride)
, &audioRouteOverride);
[self performSelectorOnMainThread:@selector(configureOrientation)
withObject:nil
waitUntilDone:YES];
[mMute update];
[mMuteLandRight update];
[mMuteLandLeft update];
maxCall = linphone_core_get_max_calls([LinphoneManager getLc]);
linphone_core_set_max_calls([LinphoneManager getLc], 1);
}
- (void) viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
callQualityRefresher = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(updateCallQualityIndicator)
userInfo:nil
repeats:YES];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
BOOL result = interfaceOrientation == UIInterfaceOrientationPortrait
|| interfaceOrientation == UIInterfaceOrientationLandscapeRight
|| interfaceOrientation == UIInterfaceOrientationLandscapeLeft;
return result;
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[self configureOrientation:self.interfaceOrientation];
[mMute update];
[mMuteLandRight update];
[mMuteLandLeft update];
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[mLandscapeLeft removeFromSuperview];
[mLandscapeRight removeFromSuperview];
[mPortrait removeFromSuperview];
}
@end

View file

@ -1,919 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1280</int>
<string key="IBDocument.SystemVersion">11C74</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.23</string>
<string key="IBDocument.HIToolboxVersion">567.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">933</string>
</object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>IBUIButton</string>
<string>IBUIImageView</string>
<string>IBUIView</string>
<string>IBProxyObject</string>
</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">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="82063733">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="733070734">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 420}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="162570569"/>
<int key="IBUIContentMode">1</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIButton" id="477702441">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{1, 418}, {108, 62}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="695487530"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="770254705">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="19777660">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage" id="861970554">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">clavier-01-108px.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="72440633">
<string key="name">Helvetica-Bold</string>
<string key="family">Helvetica</string>
<int key="traits">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="996800421">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="695487530">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{106, 418}, {106, 63}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="383499753"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<object class="NSCustomResource" key="IBUINormalImage" id="758660083">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">stopcall-red.png</string>
</object>
<reference key="IBUINormalBackgroundImage" ref="861970554"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIButton" id="383499753">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{211, 418}, {108, 62}}</string>
<reference key="NSSuperview" ref="191373211"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">switch</string>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalBackgroundImage" ref="861970554"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIView" id="955352536">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{233, 309}, {80, 106}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="477702441"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="409833800">
<int key="NSID">2</int>
</object>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIImageView" id="162570569">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 387}, {28, 28}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="955352536"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="733070734"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="977413659">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="858597805">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{420, 320}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSNextKeyView" ref="1050670507"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIButton" id="1050670507">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 0}, {60, 108}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSNextKeyView" ref="335958099"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<object class="NSCustomResource" key="IBUINormalImage" id="229347943">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">micro.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage" id="1036362337">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">clavier-01-106px.png</string>
</object>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIButton" id="335958099">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 107}, {60, 106}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSNextKeyView" ref="142062275"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalImage" ref="758660083"/>
<reference key="IBUINormalBackgroundImage" ref="1036362337"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIButton" id="676617489">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 212}, {60, 108}}</string>
<reference key="NSSuperview" ref="977413659"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUINormalTitle">Switch</string>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalBackgroundImage" ref="1036362337"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIView" id="124303267">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{308, 233}, {106, 80}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSNextKeyView" ref="676617489"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIImageView" id="142062275">
<reference key="NSNextResponder" ref="977413659"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{8, 285}, {28, 28}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSNextKeyView" ref="124303267"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="858597805"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="738244138">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="774090532">
<reference key="NSNextResponder" ref="738244138"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIImageView" id="359167072">
<reference key="NSNextResponder" ref="774090532"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{8, 285}, {28, 28}}</string>
<reference key="NSSuperview" ref="774090532"/>
<reference key="NSNextKeyView" ref="81113981"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<string key="NSFrame">{{60, 0}, {420, 320}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSNextKeyView" ref="359167072"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIButton" id="689882425">
<reference key="NSNextResponder" ref="738244138"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{60, 108}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSNextKeyView" ref="93544236"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalImage" ref="229347943"/>
<reference key="IBUINormalBackgroundImage" ref="1036362337"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIButton" id="93544236">
<reference key="NSNextResponder" ref="738244138"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 107}, {60, 106}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSNextKeyView" ref="898336236"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalImage" ref="758660083"/>
<reference key="IBUINormalBackgroundImage" ref="1036362337"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIButton" id="898336236">
<reference key="NSNextResponder" ref="738244138"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 212}, {60, 108}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSNextKeyView" ref="774090532"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<string key="IBUINormalTitle">Switch</string>
<reference key="IBUIHighlightedTitleColor" ref="770254705"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="19777660"/>
<reference key="IBUINormalBackgroundImage" ref="1036362337"/>
<reference key="IBUIFontDescription" ref="72440633"/>
<reference key="IBUIFont" ref="996800421"/>
</object>
<object class="IBUIView" id="81113981">
<reference key="NSNextResponder" ref="738244138"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{360, 233}, {106, 80}}</string>
<reference key="NSSuperview" ref="738244138"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="689882425"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="409833800"/>
</object>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</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">mDisplay</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="733070734"/>
</object>
<int key="connectionID">10</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreview</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="955352536"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitch</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="383499753"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMute</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="477702441"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPortrait</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">21</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUp</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="695487530"/>
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="82063733"/>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMuteLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="1050670507"/>
</object>
<int key="connectionID">40</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUpLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="335958099"/>
</object>
<int key="connectionID">41</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitchLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="676617489"/>
</object>
<int key="connectionID">42</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mLandscapeRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="977413659"/>
</object>
<int key="connectionID">43</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreviewLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="124303267"/>
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mMuteLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="689882425"/>
</object>
<int key="connectionID">47</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mHangUpLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="93544236"/>
</object>
<int key="connectionID">48</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCamSwitchLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="898336236"/>
</object>
<int key="connectionID">49</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mPreviewLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="81113981"/>
</object>
<int key="connectionID">50</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mLandscapeLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="738244138"/>
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQuality</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="162570569"/>
</object>
<int key="connectionID">54</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mDisplayLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="858597805"/>
</object>
<int key="connectionID">44</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQualityLandRight</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="142062275"/>
</object>
<int key="connectionID">58</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mDisplayLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="774090532"/>
</object>
<int key="connectionID">46</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQualityLandLeft</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="359167072"/>
</object>
<int key="connectionID">60</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="0">
<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="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">31</int>
<reference key="object" ref="82063733"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">root</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="733070734"/>
<reference ref="477702441"/>
<reference ref="695487530"/>
<reference ref="383499753"/>
<reference ref="955352536"/>
<reference ref="162570569"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">portrait</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="733070734"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="955352536"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="191373211"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="477702441"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="695487530"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">Hang Up Button</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="383499753"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="977413659"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="1050670507"/>
<reference ref="335958099"/>
<reference ref="676617489"/>
<reference ref="124303267"/>
<reference ref="142062275"/>
<reference ref="858597805"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">landscape-right</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="676617489"/>
<reference key="parent" ref="977413659"/>
<string key="objectName">Cam Switch</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="335958099"/>
<reference key="parent" ref="977413659"/>
<string key="objectName">HangHup</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="1050670507"/>
<reference key="parent" ref="977413659"/>
<string key="objectName">Mute</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="124303267"/>
<reference key="parent" ref="977413659"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">34</int>
<reference key="object" ref="738244138"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="81113981"/>
<reference ref="898336236"/>
<reference ref="93544236"/>
<reference ref="689882425"/>
<reference ref="774090532"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">landscape-left</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="81113981"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="738244138"/>
<string key="objectName">preview</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">36</int>
<reference key="object" ref="898336236"/>
<reference key="parent" ref="738244138"/>
<string key="objectName">Cam Switch</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">37</int>
<reference key="object" ref="93544236"/>
<reference key="parent" ref="738244138"/>
<string key="objectName">HangHup</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="689882425"/>
<reference key="parent" ref="738244138"/>
<string key="objectName">Mute</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">52</int>
<reference key="object" ref="162570569"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">56</int>
<reference key="object" ref="142062275"/>
<reference key="parent" ref="977413659"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="858597805"/>
<reference key="parent" ref="977413659"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="774090532"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="359167072"/>
</object>
<reference key="parent" ref="738244138"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">59</int>
<reference key="object" ref="359167072"/>
<reference key="parent" ref="774090532"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-1.IBPluginDependency</string>
<string>-2.CustomClassName</string>
<string>-2.IBPluginDependency</string>
<string>1.IBPluginDependency</string>
<string>14.IBPluginDependency</string>
<string>15.IBPluginDependency</string>
<string>16.IBPluginDependency</string>
<string>17.CustomClassName</string>
<string>17.IBPluginDependency</string>
<string>18.CustomClassName</string>
<string>18.IBPluginDependency</string>
<string>19.CustomClassName</string>
<string>19.IBPluginDependency</string>
<string>31.IBPluginDependency</string>
<string>34.IBPluginDependency</string>
<string>35.IBPluginDependency</string>
<string>36.CustomClassName</string>
<string>36.IBPluginDependency</string>
<string>37.CustomClassName</string>
<string>37.IBPluginDependency</string>
<string>38.CustomClassName</string>
<string>38.IBPluginDependency</string>
<string>39.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>52.IBPluginDependency</string>
<string>56.IBPluginDependency</string>
<string>59.IBPluginDependency</string>
<string>6.CustomClassName</string>
<string>6.IBPluginDependency</string>
<string>7.CustomClassName</string>
<string>7.IBPluginDependency</string>
<string>8.CustomClassName</string>
<string>8.IBPluginDependency</string>
<string>9.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>VideoViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIResponder</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIMuteButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIHangUpButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UICamSwitch</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UICamSwitch</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIHangUpButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIMuteButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIMuteButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIHangUpButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UICamSwitch</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>
<reference key="dict.sortedKeys" ref="0"/>
<reference key="dict.values" ref="0"/>
</object>
<nil key="activeLocalization"/>
<object class="NSMutableDictionary" key="localizations">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference key="dict.sortedKeys" ref="0"/>
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">60</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3000" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>clavier-01-106px.png</string>
<string>clavier-01-108px.png</string>
<string>micro.png</string>
<string>stopcall-red.png</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>{106, 60}</string>
<string>{108, 60}</string>
<string>{107, 67}</string>
<string>{62, 54}</string>
</object>
</object>
<string key="IBCocoaTouchPluginVersion">933</string>
</data>
</archive>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -72,7 +72,7 @@
22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C7555F1317E59C007BC101 /* UIBluetoothButton.m */; };
22D1B68112A3E0BE001AE361 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D1B68012A3E0BE001AE361 /* libresolv.dylib */; };
22D8F11F147548E2008C97DB /* linphonerc in Resources */ = {isa = PBXBuildFile; fileRef = 2274550710700509006EC466 /* linphonerc */; };
22D8F120147548E2008C97DB /* PhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* PhoneViewController.xib */; };
22D8F120147548E2008C97DB /* DialerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* DialerViewController.xib */; };
22D8F121147548E2008C97DB /* ringback.wav in Resources */ = {isa = PBXBuildFile; fileRef = 22F254801073D99800AC9B3F /* ringback.wav */; };
22D8F124147548E2008C97DB /* untitled.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22F51EF5107FA66500F98953 /* untitled.plist */; };
22D8F125147548E2008C97DB /* oldphone-mono.wav in Resources */ = {isa = PBXBuildFile; fileRef = 2237D4081084D7A9001383EE /* oldphone-mono.wav */; };
@ -86,13 +86,12 @@
22D8F13B147548E2008C97DB /* FirstLoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2218A92412FBE1340088A667 /* FirstLoginViewController.xib */; };
22D8F13C147548E2008C97DB /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = 228B19AE130290C500F154D3 /* iTunesArtwork */; };
22D8F13D147548E2008C97DB /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2214783B1386A2030020F8B8 /* Localizable.strings */; };
22D8F13F147548E2008C97DB /* VideoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E028B613B4CCBD0068A713 /* VideoViewController.xib */; };
22D8F140147548E2008C97DB /* audio.plist in Resources */ = {isa = PBXBuildFile; fileRef = 226B563E13CAF1CD00921595 /* audio.plist */; };
22D8F141147548E2008C97DB /* video.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22E1A9E713CAF4AA00219531 /* video.plist */; };
22D8F142147548E2008C97DB /* rootca.pem in Resources */ = {isa = PBXBuildFile; fileRef = 70571E1913FABCB000CDD3C2 /* rootca.pem */; };
22D8F144147548E2008C97DB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
22D8F145147548E2008C97DB /* LinphoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */; };
22D8F146147548E2008C97DB /* PhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* PhoneViewController.m */; };
22D8F146147548E2008C97DB /* DialerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* DialerViewController.m */; };
22D8F14A147548E2008C97DB /* MoreViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* MoreViewController.m */; };
22D8F14B147548E2008C97DB /* ConsoleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81F111C44E100B04932 /* ConsoleViewController.m */; };
22D8F14C147548E2008C97DB /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; };
@ -106,7 +105,6 @@
22D8F155147548E2008C97DB /* UIBluetoothButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22C7555F1317E59C007BC101 /* UIBluetoothButton.m */; };
22D8F156147548E2008C97DB /* UIEraseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22BB1A68132FF16A005CD7AA /* UIEraseButton.m */; };
22D8F157147548E2008C97DB /* FastAddressBook.m in Sources */ = {isa = PBXBuildFile; fileRef = 223963161393CFAF001DE689 /* FastAddressBook.m */; };
22D8F158147548E2008C97DB /* VideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E028B513B4CCBD0068A713 /* VideoViewController.m */; };
22D8F159147548E2008C97DB /* UICamSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 22AA8B0013D83F6300B30535 /* UICamSwitch.m */; };
22D8F15B147548E2008C97DB /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0B13E830E400EFC6DC /* libvpx.a */; };
22D8F15C147548E2008C97DB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; };
@ -141,16 +139,14 @@
22D8F17E147548E2008C97DB /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; };
22D8F17F147548E2008C97DB /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; };
22D8F180147548E2008C97DB /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AF147259670037138E /* libmssilk.a */; };
22E028B713B4CCBD0068A713 /* VideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E028B513B4CCBD0068A713 /* VideoViewController.m */; };
22E028B813B4CCBD0068A713 /* VideoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E028B613B4CCBD0068A713 /* VideoViewController.xib */; };
22E0A822111C44E100B04932 /* MoreViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* MoreViewController.m */; };
22E0A823111C44E100B04932 /* ConsoleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A81E111C44E100B04932 /* ConsoleViewController.xib */; };
22E0A824111C44E100B04932 /* ConsoleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81F111C44E100B04932 /* ConsoleViewController.m */; };
22E1A9E813CAF4AA00219531 /* video.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22E1A9E713CAF4AA00219531 /* video.plist */; };
22E5B0AF133B5EA20044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5B0AD133B5EA20044EA25 /* libssl.a */; };
22E5B0B0133B5EA20044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5B0AE133B5EA20044EA25 /* libcrypto.a */; };
22F2508E107141E100AC9B3F /* PhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* PhoneViewController.m */; };
22F2508F107141E100AC9B3F /* PhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* PhoneViewController.xib */; };
22F2508E107141E100AC9B3F /* DialerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22F2508C107141E100AC9B3F /* DialerViewController.m */; };
22F2508F107141E100AC9B3F /* DialerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22F2508D107141E100AC9B3F /* DialerViewController.xib */; };
22F254811073D99800AC9B3F /* ringback.wav in Resources */ = {isa = PBXBuildFile; fileRef = 22F254801073D99800AC9B3F /* ringback.wav */; };
22F51EF6107FA66500F98953 /* untitled.plist in Resources */ = {isa = PBXBuildFile; fileRef = 22F51EF5107FA66500F98953 /* untitled.plist */; };
288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; };
@ -184,8 +180,6 @@
34C7646D14CD5585008E9607 /* history-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646B14CD5585008E9607 /* history-orange.png */; };
34CA852F148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA852E148F646700503C01 /* MainScreenWithVideoPreview.xib */; };
34CA8530148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA852E148F646700503C01 /* MainScreenWithVideoPreview.xib */; };
34CA8535148F669900503C01 /* VideoViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */; };
34CA8536148F669900503C01 /* VideoViewController-ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34CA8534148F669900503C01 /* VideoViewController-ipad.xib */; };
34CA8539148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; };
34CA853A148F692A00503C01 /* MainScreenWithVideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = 34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */; };
57282931154AF1460076F540 /* history-orange.png in Resources */ = {isa = PBXBuildFile; fileRef = 34C7646B14CD5585008E9607 /* history-orange.png */; };
@ -206,6 +200,8 @@
D31C9C95158A1C1000756B45 /* appel-sortant.png in Resources */ = {isa = PBXBuildFile; fileRef = D31C9C8F158A1C1000756B45 /* appel-sortant.png */; };
D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */; };
D31C9C99158A1CDF00756B45 /* UIHistoryCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */; };
D32409C3158B49A600C8C119 /* UILongTouchButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D32409C2158B49A600C8C119 /* UILongTouchButton.m */; };
D32409C4158B49A600C8C119 /* UILongTouchButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D32409C2158B49A600C8C119 /* UILongTouchButton.m */; };
D326483815887D5200930C67 /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D326483715887D5200930C67 /* OrderedDictionary.m */; };
D326483915887D5200930C67 /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = D326483715887D5200930C67 /* OrderedDictionary.m */; };
D326483E1588950F00930C67 /* UICallBar.m in Sources */ = {isa = PBXBuildFile; fileRef = D326483C1588950F00930C67 /* UICallBar.m */; };
@ -261,6 +257,10 @@
D35498241587716B000081D8 /* UIStateBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = D35498201587716B000081D8 /* UIStateBar.xib */; };
D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */; };
D36FB2D61589EF7C0036F6F2 /* UIPauseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */; };
D37295CA158B1E2D00D2C0C7 /* registration_inprogress.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295C9158B1E2D00D2C0C7 /* registration_inprogress.png */; };
D37295CB158B1E2D00D2C0C7 /* registration_inprogress.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295C9158B1E2D00D2C0C7 /* registration_inprogress.png */; };
D37295DB158B3C9600D2C0C7 /* video-OFF-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295DA158B3C9600D2C0C7 /* video-OFF-disabled.png */; };
D37295DC158B3C9600D2C0C7 /* video-OFF-disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295DA158B3C9600D2C0C7 /* video-OFF-disabled.png */; };
D38327F31580FE3A00FA0D23 /* contacts-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D38327EB1580FE3A00FA0D23 /* contacts-actif.png */; };
D38327F41580FE3A00FA0D23 /* contacts-selectionne.png in Resources */ = {isa = PBXBuildFile; fileRef = D38327EC1580FE3A00FA0D23 /* contacts-selectionne.png */; };
D38327F51580FE3A00FA0D23 /* dialer-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D38327ED1580FE3A00FA0D23 /* dialer-actif.png */; };
@ -718,9 +718,6 @@
22C7564B13265C6A007BC101 /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = "<group>"; };
22D1B68012A3E0BE001AE361 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; };
22D8F187147548E2008C97DB /* linphone-no-gpl-thirdparties.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "linphone-no-gpl-thirdparties.app"; sourceTree = BUILT_PRODUCTS_DIR; };
22E028B413B4CCBD0068A713 /* VideoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoViewController.h; sourceTree = "<group>"; };
22E028B513B4CCBD0068A713 /* VideoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoViewController.m; sourceTree = "<group>"; };
22E028B613B4CCBD0068A713 /* VideoViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoViewController.xib; sourceTree = "<group>"; };
22E0A81B111C44E100B04932 /* MoreViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MoreViewController.xib; sourceTree = "<group>"; };
22E0A81C111C44E100B04932 /* MoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MoreViewController.m; sourceTree = "<group>"; };
22E0A81D111C44E100B04932 /* MoreViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoreViewController.h; sourceTree = "<group>"; };
@ -730,9 +727,9 @@
22E1A9E713CAF4AA00219531 /* video.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = video.plist; path = Settings.bundle/video.plist; sourceTree = "<group>"; };
22E5B0AD133B5EA20044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = "<group>"; };
22E5B0AE133B5EA20044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "liblinphone-sdk/apple-darwin/lib/libcrypto.a"; 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>"; };
22F2508B107141E100AC9B3F /* DialerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialerViewController.h; sourceTree = "<group>"; };
22F2508C107141E100AC9B3F /* DialerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DialerViewController.m; sourceTree = "<group>"; };
22F2508D107141E100AC9B3F /* DialerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DialerViewController.xib; sourceTree = "<group>"; };
22F254801073D99800AC9B3F /* ringback.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringback.wav; path = "liblinphone-sdk/apple-darwin/share/sounds/linphone/ringback.wav"; sourceTree = "<group>"; };
22F51EF5107FA66500F98953 /* untitled.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = untitled.plist; sourceTree = "<group>"; };
288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@ -760,7 +757,6 @@
34C7646A14CD5585008E9607 /* dialer-orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "dialer-orange.png"; path = "submodules/linphone/pixmaps/dialer-orange.png"; sourceTree = "<group>"; };
34C7646B14CD5585008E9607 /* history-orange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "history-orange.png"; path = "submodules/linphone/pixmaps/history-orange.png"; sourceTree = "<group>"; };
34CA852E148F646700503C01 /* MainScreenWithVideoPreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainScreenWithVideoPreview.xib; sourceTree = "<group>"; };
34CA8534148F669900503C01 /* VideoViewController-ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = "VideoViewController-ipad.xib"; sourceTree = "<group>"; };
34CA8537148F692A00503C01 /* MainScreenWithVideoPreview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainScreenWithVideoPreview.h; sourceTree = "<group>"; };
34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainScreenWithVideoPreview.m; sourceTree = "<group>"; };
70571E1913FABCB000CDD3C2 /* rootca.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rootca.pem; path = Resources/rootca.pem; sourceTree = "<group>"; };
@ -775,6 +771,8 @@
D31C9C8F158A1C1000756B45 /* appel-sortant.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appel-sortant.png"; path = "Resources/appel-sortant.png"; sourceTree = "<group>"; };
D31C9C96158A1CDE00756B45 /* UIHistoryCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIHistoryCell.h; sourceTree = "<group>"; };
D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIHistoryCell.m; sourceTree = "<group>"; };
D32409C1158B49A600C8C119 /* UILongTouchButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILongTouchButton.h; sourceTree = "<group>"; };
D32409C2158B49A600C8C119 /* UILongTouchButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UILongTouchButton.m; sourceTree = "<group>"; };
D326483615887D5200930C67 /* OrderedDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OrderedDictionary.h; path = Utils/OrderedDictionary.h; sourceTree = "<group>"; };
D326483715887D5200930C67 /* OrderedDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OrderedDictionary.m; path = Utils/OrderedDictionary.m; sourceTree = "<group>"; };
D326483B1588950F00930C67 /* UICallBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICallBar.h; sourceTree = "<group>"; };
@ -806,11 +804,13 @@
D3549815158761D0000081D8 /* ContactTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactTableViewController.m; sourceTree = "<group>"; };
D354981815876FE7000081D8 /* bouton-detail-contact-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bouton-detail-contact-actif.png"; path = "Resources/bouton-detail-contact-actif.png"; sourceTree = "<group>"; };
D354981915876FE7000081D8 /* bouton-detail-contact-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bouton-detail-contact-over.png"; path = "Resources/bouton-detail-contact-over.png"; sourceTree = "<group>"; };
D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; path = UIStateBar.h; sourceTree = "<group>"; };
D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIStateBar.h; sourceTree = "<group>"; };
D354981F1587716B000081D8 /* UIStateBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIStateBar.m; sourceTree = "<group>"; };
D35498201587716B000081D8 /* UIStateBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIStateBar.xib; sourceTree = "<group>"; };
D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIPauseButton.h; sourceTree = "<group>"; };
D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIPauseButton.m; sourceTree = "<group>"; };
D37295C9158B1E2D00D2C0C7 /* registration_inprogress.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = registration_inprogress.png; path = Resources/registration_inprogress.png; sourceTree = "<group>"; };
D37295DA158B3C9600D2C0C7 /* video-OFF-disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "video-OFF-disabled.png"; path = "Resources/video-OFF-disabled.png"; sourceTree = "<group>"; };
D38327EB1580FE3A00FA0D23 /* contacts-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "contacts-actif.png"; path = "Resources/contacts-actif.png"; sourceTree = "<group>"; };
D38327EC1580FE3A00FA0D23 /* contacts-selectionne.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "contacts-selectionne.png"; path = "Resources/contacts-selectionne.png"; sourceTree = "<group>"; };
D38327ED1580FE3A00FA0D23 /* dialer-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "dialer-actif.png"; path = "Resources/dialer-actif.png"; sourceTree = "<group>"; };
@ -1052,14 +1052,10 @@
D3F83F8D15822ABD00336684 /* PhoneMainView.m */,
D34734791580DDF1003C7B8C /* PhoneMainView.xib */,
3422AA5214978352000D4E8A /* PhoneViewController-ipad.xib */,
22F2508B107141E100AC9B3F /* PhoneViewController.h */,
22F2508C107141E100AC9B3F /* PhoneViewController.m */,
22F2508D107141E100AC9B3F /* PhoneViewController.xib */,
22F2508B107141E100AC9B3F /* DialerViewController.h */,
22F2508C107141E100AC9B3F /* DialerViewController.m */,
22F2508D107141E100AC9B3F /* DialerViewController.xib */,
D326483415887D4400930C67 /* Utils */,
34CA8534148F669900503C01 /* VideoViewController-ipad.xib */,
22E028B413B4CCBD0068A713 /* VideoViewController.h */,
22E028B513B4CCBD0068A713 /* VideoViewController.m */,
22E028B613B4CCBD0068A713 /* VideoViewController.xib */,
34216F3E1547EBCD00EA9777 /* VideoZoomHandler.h */,
34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */,
);
@ -1303,6 +1299,8 @@
D31C9C97158A1CDE00756B45 /* UIHistoryCell.m */,
D31AC4AF158A29C600C2638B /* UIHistoryCell.xib */,
2214EB8A12F84FE9002A5394 /* UILinphone.h */,
D32409C1158B49A600C8C119 /* UILongTouchButton.h */,
D32409C2158B49A600C8C119 /* UILongTouchButton.m */,
D3ED3E841586291B006C0DE4 /* UIMainBar.h */,
D3ED3E851586291B006C0DE4 /* UIMainBar.m */,
D3ED3E861586291C006C0DE4 /* UIMainBar.xib */,
@ -1310,11 +1308,11 @@
2214EBF212F86360002A5394 /* UIMicroButton.m */,
D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */,
D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */,
22968A5D12F875C600588287 /* UISpeakerButton.h */,
22968A5E12F875C600588287 /* UISpeakerButton.m */,
D354981E1587716B000081D8 /* UIStateBar.h */,
D354981F1587716B000081D8 /* UIStateBar.m */,
D35498201587716B000081D8 /* UIStateBar.xib */,
22968A5D12F875C600588287 /* UISpeakerButton.h */,
22968A5E12F875C600588287 /* UISpeakerButton.m */,
D32648421588F6FA00930C67 /* UIToggleButton.h */,
D32648431588F6FB00930C67 /* UIToggleButton.m */,
340751E5150F38FC00B89C47 /* UIVideoButton.h */,
@ -1478,6 +1476,8 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
D37295DA158B3C9600D2C0C7 /* video-OFF-disabled.png */,
D37295C9158B1E2D00D2C0C7 /* registration_inprogress.png */,
D3F83F2C1582223B00336684 /* 0-actif.png */,
D3F83F2D1582223B00336684 /* 0-over.png */,
D3F83F2E1582223B00336684 /* 1-actif.png */,
@ -1693,7 +1693,7 @@
buildActionMask = 2147483647;
files = (
2274550810700509006EC466 /* linphonerc in Resources */,
22F2508F107141E100AC9B3F /* PhoneViewController.xib in Resources */,
22F2508F107141E100AC9B3F /* DialerViewController.xib in Resources */,
22F254811073D99800AC9B3F /* ringback.wav in Resources */,
2245671D107699F700F10948 /* Settings.bundle in Resources */,
22F51EF6107FA66500F98953 /* untitled.plist in Resources */,
@ -1708,14 +1708,12 @@
2218A92612FBE1340088A667 /* FirstLoginViewController.xib in Resources */,
228B19AF130290C500F154D3 /* iTunesArtwork in Resources */,
2214783D1386A2030020F8B8 /* Localizable.strings in Resources */,
22E028B813B4CCBD0068A713 /* VideoViewController.xib in Resources */,
226B563F13CAF1CD00921595 /* audio.plist in Resources */,
22E1A9E813CAF4AA00219531 /* video.plist in Resources */,
70571E1A13FABCB000CDD3C2 /* rootca.pem in Resources */,
344ABD72147FC438007420B6 /* ConferenceCallDetailView.xib in Resources */,
344ABD7A147FD32B007420B6 /* ConferenceCallDetailCell.xib in Resources */,
34CA852F148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */,
34CA8535148F669900503C01 /* VideoViewController-ipad.xib in Resources */,
3422AA5014975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */,
3422AA5314978352000D4E8A /* PhoneViewController-ipad.xib in Resources */,
341FCA8E149798210084BC26 /* linphonerc-ipad in Resources */,
@ -1836,6 +1834,8 @@
D3432A6C158A4446001C6B0B /* quality-call-3.png in Resources */,
D3432A71158A45AF001C6B0B /* status_inprogress.png in Resources */,
D3432A73158A45AF001C6B0B /* status_disconnected.png in Resources */,
D37295CA158B1E2D00D2C0C7 /* registration_inprogress.png in Resources */,
D37295DB158B3C9600D2C0C7 /* video-OFF-disabled.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1844,7 +1844,7 @@
buildActionMask = 2147483647;
files = (
22D8F11F147548E2008C97DB /* linphonerc in Resources */,
22D8F120147548E2008C97DB /* PhoneViewController.xib in Resources */,
22D8F120147548E2008C97DB /* DialerViewController.xib in Resources */,
22D8F121147548E2008C97DB /* ringback.wav in Resources */,
22D8F124147548E2008C97DB /* untitled.plist in Resources */,
22D8F125147548E2008C97DB /* oldphone-mono.wav in Resources */,
@ -1858,7 +1858,6 @@
22D8F13B147548E2008C97DB /* FirstLoginViewController.xib in Resources */,
22D8F13C147548E2008C97DB /* iTunesArtwork in Resources */,
22D8F13D147548E2008C97DB /* Localizable.strings in Resources */,
22D8F13F147548E2008C97DB /* VideoViewController.xib in Resources */,
22D8F140147548E2008C97DB /* audio.plist in Resources */,
22D8F141147548E2008C97DB /* video.plist in Resources */,
22D8F142147548E2008C97DB /* rootca.pem in Resources */,
@ -1866,7 +1865,6 @@
344ABD73147FC438007420B6 /* ConferenceCallDetailView.xib in Resources */,
344ABD7B147FD32B007420B6 /* ConferenceCallDetailCell.xib in Resources */,
34CA8530148F646700503C01 /* MainScreenWithVideoPreview.xib in Resources */,
34CA8536148F669900503C01 /* VideoViewController-ipad.xib in Resources */,
3422AA5114975EC9000D4E8A /* InCallViewController-ipad.xib in Resources */,
3422AA5414978352000D4E8A /* PhoneViewController-ipad.xib in Resources */,
341FCA8F149798210084BC26 /* linphonerc-ipad in Resources */,
@ -1971,6 +1969,8 @@
D3432A6D158A4446001C6B0B /* quality-call-3.png in Resources */,
D3432A72158A45AF001C6B0B /* status_inprogress.png in Resources */,
D3432A74158A45AF001C6B0B /* status_disconnected.png in Resources */,
D37295CB158B1E2D00D2C0C7 /* registration_inprogress.png in Resources */,
D37295DC158B3C9600D2C0C7 /* video-OFF-disabled.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1983,7 +1983,7 @@
files = (
1D60589B0D05DD56006BFB54 /* main.m in Sources */,
1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */,
22F2508E107141E100AC9B3F /* PhoneViewController.m in Sources */,
22F2508E107141E100AC9B3F /* DialerViewController.m in Sources */,
22E0A822111C44E100B04932 /* MoreViewController.m in Sources */,
22E0A824111C44E100B04932 /* ConsoleViewController.m in Sources */,
2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */,
@ -1997,7 +1997,6 @@
22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */,
22BB1A69132FF16A005CD7AA /* UIEraseButton.m in Sources */,
223963171393CFAF001DE689 /* FastAddressBook.m in Sources */,
22E028B713B4CCBD0068A713 /* VideoViewController.m in Sources */,
22AA8B0113D83F6300B30535 /* UICamSwitch.m in Sources */,
2211DBBE14769C8300DEE054 /* CallDelegate.m in Sources */,
344ABD77147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */,
@ -2018,6 +2017,7 @@
D32648441588F6FC00930C67 /* UIToggleButton.m in Sources */,
D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */,
D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */,
D32409C3158B49A600C8C119 /* UILongTouchButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2027,7 +2027,7 @@
files = (
22D8F144147548E2008C97DB /* main.m in Sources */,
22D8F145147548E2008C97DB /* LinphoneAppDelegate.m in Sources */,
22D8F146147548E2008C97DB /* PhoneViewController.m in Sources */,
22D8F146147548E2008C97DB /* DialerViewController.m in Sources */,
22D8F14A147548E2008C97DB /* MoreViewController.m in Sources */,
22D8F14B147548E2008C97DB /* ConsoleViewController.m in Sources */,
22D8F14C147548E2008C97DB /* UIDigitButton.m in Sources */,
@ -2041,7 +2041,6 @@
22D8F155147548E2008C97DB /* UIBluetoothButton.m in Sources */,
22D8F156147548E2008C97DB /* UIEraseButton.m in Sources */,
22D8F157147548E2008C97DB /* FastAddressBook.m in Sources */,
22D8F158147548E2008C97DB /* VideoViewController.m in Sources */,
22D8F159147548E2008C97DB /* UICamSwitch.m in Sources */,
2211DBBF14769C8300DEE054 /* CallDelegate.m in Sources */,
344ABD78147FCB68007420B6 /* ConferenceCallDetailView.m in Sources */,
@ -2062,6 +2061,7 @@
D32648451588F6FC00930C67 /* UIToggleButton.m in Sources */,
D36FB2D61589EF7C0036F6F2 /* UIPauseButton.m in Sources */,
D31C9C99158A1CDF00756B45 /* UIHistoryCell.m in Sources */,
D32409C4158B49A600C8C119 /* UILongTouchButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};