From 3c3bdfe1a8b47ffbad3360c090e28de1325d9fd3 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Fri, 13 Jan 2012 12:17:57 +0100 Subject: [PATCH] iPad: disable video preview on main screen when 'Enable video' setting is off --- Classes/MainScreenWithVideoPreview.m | 49 +++++++++++++++++--------- Classes/MainScreenWithVideoPreview.xib | 5 ++- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/Classes/MainScreenWithVideoPreview.m b/Classes/MainScreenWithVideoPreview.m index 5c7d962b0..39764b38d 100644 --- a/Classes/MainScreenWithVideoPreview.m +++ b/Classes/MainScreenWithVideoPreview.m @@ -39,19 +39,11 @@ } */ -// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. -- (void)viewDidLoad -{ - [super viewDidLoad]; - +-(void) initVideoPreview { session = [[AVCaptureSession alloc] init]; - - currentCamera = 0; - - AVCaptureVideoPreviewLayer* previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session]; previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; @@ -62,7 +54,19 @@ [session setSessionPreset:AVCaptureSessionPresetHigh]; [session commitConfiguration]; - [self useCameraAtIndex:0 startSession:NO]; + [self useCameraAtIndex:0 startSession:NO]; +} + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad +{ + [super viewDidLoad]; + + bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"]; + + if (enableVideo) { + [self initVideoPreview ]; + } } -(void) switchCameraPressed { @@ -94,18 +98,31 @@ -(void) showPreview:(BOOL) show { - if (show && !session.running) { - [window addSubview:self.view]; - [window sendSubviewToBack:self.view]; - [session startRunning]; - } else if (!show && session.running) { + bool enableVideo = [[NSUserDefaults standardUserDefaults] boolForKey:@"enable_video_preference"]; + + if (enableVideo) { + if (session == nil) { + [self initVideoPreview]; + } + + if (show && !session.running) { + [window addSubview:self.view]; + [window sendSubviewToBack:self.view]; + [session startRunning]; + } else if (!show && session.running) { + [self.view removeFromSuperview]; + [session stopRunning]; + } + } else { + if (session != nil) + [session stopRunning]; [self.view removeFromSuperview]; - [session stopRunning]; } } -(void) viewDidAppear:(BOOL)animated { [phoneMainView.switchCamera addTarget:self action:@selector(switchCameraPressed) forControlEvents:UIControlEventTouchUpInside]; + } -(void) viewDidDisappear:(BOOL)animated { diff --git a/Classes/MainScreenWithVideoPreview.xib b/Classes/MainScreenWithVideoPreview.xib index 7efd70f0a..2a0b84cae 100644 --- a/Classes/MainScreenWithVideoPreview.xib +++ b/Classes/MainScreenWithVideoPreview.xib @@ -44,10 +44,11 @@ 292 {768, 1024} + _NS:196 3 - MQA + MC42NjY2NjY2NjY3AA NO NO @@ -142,6 +143,7 @@ 266 {{0, 975}, {768, 49}} + 3 MCAwAA @@ -156,6 +158,7 @@ 274 {{0, 20}, {768, 1004}} + _NS:212 1