Playlist Generator  1.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Defines
Playlist2/IdentifyViewController.mm
Go to the documentation of this file.
00001 //
00002 //  IdentifyViewController.m
00003 //  Playlist2
00004 //
00005 //  Created by Max Woolf on 25/11/2011.
00006 //  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
00007 //
00008 
00009 #import "IdentifyViewController.h"
00010 #import "AnalyseViewController.h"
00011 #import "HistoryViewController.h"
00012 
00013 @implementation IdentifyViewController
00014 
00015 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
00016 {
00017     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
00018     if (self) {
00019          self.title = @"Recording";
00020     }
00021     return self;
00022 }
00023 
00024 
00025 #pragma mark - Pressing record button
00026 -(IBAction)recordButtonPressed:(id)sender
00027 {
00028     //Begin counter
00029     progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
00030     powerTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
00031     
00032     //Alter UI elements
00033     [recordButton setTitle:@"Recording..." forState:UIControlStateNormal];
00034     [recordButton setEnabled:NO];
00035     
00036     //Begin Recording - Don't need any parameters, this is all done for us.
00037     NSError *error = nil;
00038     inputRecorder = [[InputRecorder alloc] initWithURL:nil settings:nil error:&error];
00039     [inputRecorder setDelegate:self];
00040     [inputRecorder setMeteringEnabled:YES];
00041     [inputRecorder record];
00042     if(error)
00043     {
00044         NSLog([error localizedDescription]);
00045     }
00046     
00047 }
00048 
00049 - (void)timerFireMethod:(NSTimer *)theTimer
00050 {
00051     if(theTimer == progressTimer)
00052     {
00053         if([progressView progress] != 1.0)
00054         {
00055             [progressView setProgress:[progressView progress] + 0.0025];
00056         }else{
00057             //Stop everything
00058             [inputRecorder stop];
00059             [progressTimer invalidate];
00060             [powerTimer invalidate];
00061             
00062             
00063             [recordButton setTitle:@"Working" forState:UIControlStateNormal];
00064             [progressView setHidden:YES];
00065             [activityIndicator startAnimating];
00066         }
00067     }else if(theTimer == powerTimer)
00068     {
00069         [inputRecorder updateMeters];
00070         averageVolume = [inputRecorder averagePowerForChannel:0];
00071         //Set all values to 0
00072         for(int x = 0; x < [meterObjects count]; x++)
00073         {
00074             [[meterObjects objectAtIndex:x]setHidden:YES];
00075         }
00076         
00077         if(averageVolume > -5)
00078         {
00079             [[meterObjects objectAtIndex:4]setHidden:NO];
00080         }
00081         if(averageVolume > -15)
00082         {
00083             [[meterObjects objectAtIndex:4]setHidden:NO];
00084         }
00085         if(averageVolume > -25)
00086         {
00087             [[meterObjects objectAtIndex:3]setHidden:NO];
00088         }
00089         if(averageVolume > -35)
00090         {
00091             [[meterObjects objectAtIndex:2]setHidden:NO];
00092         }
00093         if(averageVolume > -45)
00094         {
00095             [[meterObjects objectAtIndex:1]setHidden:NO];
00096         }
00097         if(averageVolume > -55)
00098         {
00099             [[meterObjects objectAtIndex:0]setHidden:NO];
00100         }
00101     }
00102 }
00103 
00104 -(void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag
00105 {
00106     if(flag)
00107     {
00108         NSLog(@"Successful");
00109         AnalyseViewController *nextVC = [[AnalyseViewController alloc] init];
00110         nextVC.recordingURL = inputRecorder.url;
00111         [self.navigationController pushViewController:nextVC animated:YES];
00112         [activityIndicator stopAnimating];
00113     }else{
00114         NSLog(@"Not successful");
00115     }
00116 }
00117 
00118 -(void)loadHistory:(id)sender
00119 {
00120     HistoryViewController *historyVC = [[HistoryViewController alloc] customInit];
00121     [self.navigationController pushViewController:historyVC animated:YES];
00122 }
00123 
00124 #pragma mark - Built in methods
00125 
00126 - (void)didReceiveMemoryWarning
00127 {
00128     // Releases the view if it doesn't have a superview.
00129     [super didReceiveMemoryWarning];
00130     
00131     // Release any cached data, images, etc that aren't in use.
00132 }
00133 
00134 #pragma mark - View lifecycle
00135 
00136 - (void)viewDidLoad
00137 {
00138     [self.navigationController setNavigationBarHidden:YES];
00139     meterObjects = [[NSArray alloc] initWithObjects:meter0, meter1, meter2, meter3, meter4, nil];
00140     [super viewDidLoad];
00141     // Do any additional setup after loading the view from its nib.
00142 }
00143 
00144 - (void)viewDidUnload
00145 {
00146     [super viewDidUnload];
00147     // Release any retained subviews of the main view.
00148     // e.g. self.myOutlet = nil;
00149 }
00150 
00151 -(void)viewWillAppear:(BOOL)animated
00152 {
00153 }
00154 
00155 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
00156 {
00157     // Return YES for supported orientations
00158     return (interfaceOrientation == UIInterfaceOrientationPortrait);
00159 }
00160 
00161 @end