diff -r 23145a950eae -r a8c673657b79 cocoaTouch/VoicesViewController.m --- a/cocoaTouch/VoicesViewController.m Thu Jun 17 16:28:42 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -// -// VoicesViewController.m -// HedgewarsMobile -// -// Created by Vittorio on 02/04/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import "VoicesViewController.h" -#import "CommodityFunctions.h" -#import "openalbridge.h" - - -@implementation VoicesViewController -@synthesize teamDictionary, voiceArray, lastIndexPath; - - --(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation { - return rotationManager(interfaceOrientation); -} - - -#pragma mark - -#pragma mark View lifecycle -- (void)viewDidLoad { - [super viewDidLoad]; - srandom(time(NULL)); - - openal_init(1); - voiceBeingPlayed = -1; - - // load all the voices names and store them into voiceArray - NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:VOICES_DIRECTORY() error:NULL]; - self.voiceArray = array; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - // this moves the tableview to the top - [self.tableView setContentOffset:CGPointMake(0,0) animated:NO]; -} - -/* -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; -} -*/ - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - if(voiceBeingPlayed >= 0) { - openal_freesound(voiceBeingPlayed); - voiceBeingPlayed = -1; - } -} - -/* -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; -} -*/ - - -#pragma mark - -#pragma mark Table view data source --(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - --(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return [self.voiceArray count]; -} - -// Customize the appearance of table view cells. -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - - static NSString *CellIdentifier = @"Cell"; - - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - if (cell == nil) { - cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; - } - - NSString *voice = [[voiceArray objectAtIndex:[indexPath row]] stringByDeletingPathExtension]; - cell.textLabel.text = voice; - - if ([voice isEqualToString:[teamDictionary objectForKey:@"voicepack"]]) { - cell.accessoryType = UITableViewCellAccessoryCheckmark; - self.lastIndexPath = indexPath; - } else { - cell.accessoryType = UITableViewCellAccessoryNone; - } - - return cell; -} - - -/* -// Override to support conditional editing of the table view. -- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the specified item to be editable. - return YES; -} -*/ - - -/* -// Override to support editing the table view. -- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { - - if (editingStyle == UITableViewCellEditingStyleDelete) { - // Delete the row from the data source - [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES]; - } - else if (editingStyle == UITableViewCellEditingStyleInsert) { - // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view - } -} -*/ - - -/* -// Override to support rearranging the table view. -- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { -} -*/ - - -/* -// Override to support conditional rearranging of the table view. -- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the item to be re-orderable. - return YES; -} -*/ - -#pragma mark - -#pragma mark Table view delegate --(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - int newRow = [indexPath row]; - int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1; - - if (newRow != oldRow) { - [teamDictionary setObject:[voiceArray objectAtIndex:newRow] forKey:@"voicepack"]; - - // tell our boss to write this new stuff on disk - [[NSNotificationCenter defaultCenter] postNotificationName:@"setWriteNeedTeams" object:nil]; - [self.tableView reloadData]; - - self.lastIndexPath = indexPath; - [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone]; - } - [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; - - if (voiceBeingPlayed >= 0) { - openal_stopsound(voiceBeingPlayed); - openal_freesound(voiceBeingPlayed); - voiceBeingPlayed = -1; - } - - // the keyword static prevents re-initialization of the variable - NSString *voiceDir = [[NSString alloc] initWithFormat:@"%@/%@/",VOICES_DIRECTORY(),[voiceArray objectAtIndex:newRow]]; - NSArray *array = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:voiceDir error:NULL]; - - int index = random() % [array count]; - - voiceBeingPlayed = openal_loadfile([[voiceDir stringByAppendingString:[array objectAtIndex:index]] UTF8String]); - [voiceDir release]; - openal_playsound(voiceBeingPlayed); -} - - -#pragma mark - -#pragma mark Memory management --(void) didReceiveMemoryWarning { - openal_stopsound(voiceBeingPlayed); - openal_freesound(voiceBeingPlayed); - voiceBeingPlayed = -1; - // Releases the view if it doesn't have a superview. - [super didReceiveMemoryWarning]; - // Relinquish ownership any cached data, images, etc that aren't in use. -} - --(void) viewDidUnload { - openal_close(); - voiceBeingPlayed = -1; - self.lastIndexPath = nil; - self.teamDictionary = nil; - self.voiceArray = nil; - [super viewDidUnload]; - MSG_DIDUNLOAD(); -} - --(void) dealloc { - [voiceArray release]; - [teamDictionary release]; - [lastIndexPath release]; - [super dealloc]; -} - - -@end - -