Playlist Generator
1.0
|
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