# HG changeset patch # User koda # Date 1316818487 -7200 # Node ID dbcebcd3d79fc0de2165b69766fa98d9829035d3 # Parent e8f44e9433f0c0e023435594ef61a2f6fecd63b5 ios frontend: sounds and music have their own class now (with caching\!) instead of being spread here and there (exploiting class methods like a true oop pro) diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/AboutViewController.m --- a/project_files/HedgewarsMobile/Classes/AboutViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/AboutViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -50,12 +50,12 @@ } -(IBAction) buttonPressed:(id) sender { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [[self parentViewController] dismissModalViewControllerAnimated:YES]; } -(IBAction) segmentedControlChanged:(id) sender { - playSound(@"clickSound"); + [AudioManagerController playClickSound]; [self.tableView setContentOffset:CGPointMake(0, 0) animated:NO]; [self.tableView reloadData]; } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/AmmoMenuViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -297,7 +297,7 @@ if (theButton.currentTitle == nil) { HW_setWeapon(theButton.tag); - playSound(@"clickSound"); + [AudioManagerController playClickSound]; if (IS_DUALHEAD() == NO) [self disappear]; } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/AudioManagerController.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.h Sat Sep 24 00:54:47 2011 +0200 @@ -0,0 +1,39 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2009-2011 Vittorio Giovara + * + * 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; version 2 of the License + * + * 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. + * + * File created on 13/03/2011. + */ + + +#import + + +@interface AudioManagerController : NSObject { + +} + ++(void) playBackgroundMusic; ++(void) pauseBackgroundMusic; ++(void) stopBackgroundMusic; + ++(void) playClickSound; ++(void) playBackSound; ++(void) playSelectSound; + ++(void) didReceiveMemoryWarning; + +@end diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/AudioManagerController.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project_files/HedgewarsMobile/Classes/AudioManagerController.m Sat Sep 24 00:54:47 2011 +0200 @@ -0,0 +1,126 @@ +/* + * Hedgewars-iOS, a Hedgewars port for iOS devices + * Copyright (c) 2009-2011 Vittorio Giovara + * + * 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; version 2 of the License + * + * 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. + * + * File created on 13/03/2011. + */ + + +#import "AudioManagerController.h" +#import "AVFoundation/AVAudioPlayer.h" +#import + + +static AVAudioPlayer *backgroundMusic = nil; +static SystemSoundID clickSound = -1; +static SystemSoundID backSound = -1; +static SystemSoundID selSound = -1; + +@implementation AudioManagerController + +#pragma mark - +#pragma mark background music control ++(void) loadBackgroundMusic { + NSString *musicString = [[NSBundle mainBundle] pathForResource:@"hwclassic" ofType:@"mp3"]; + backgroundMusic = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:musicString] error:nil]; + + backgroundMusic.delegate = nil; + backgroundMusic.volume = 0.4f; + backgroundMusic.numberOfLoops = -1; + [backgroundMusic prepareToPlay]; +} + ++(void) playBackgroundMusic { + if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"music"] boolValue] == NO) + return; + + if (backgroundMusic == nil) + [AudioManagerController loadBackgroundMusic]; + + [backgroundMusic play]; +} + ++(void) pauseBackgroundMusic { + [backgroundMusic pause]; +} + ++(void) stopBackgroundMusic { + [backgroundMusic stop]; +} + +#pragma mark - +#pragma mark sound effects control ++(SystemSoundID) loadSound:(NSString *)snd { + // get the filename of the sound file: + NSString *path = [NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],snd]; + + // declare a system sound id and get a URL for the sound file + SystemSoundID soundID; + NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO]; + + // use audio sevices to create and play the sound + AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID); + return soundID; +} + ++(void) playClickSound { + if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO) + return; + + if (clickSound == -1) + clickSound = [AudioManagerController loadSound:@"clickSound.wav"]; + + AudioServicesPlaySystemSound(clickSound); +} + ++(void) playBackSound { + if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO) + return; + + if (backSound == -1) + backSound = [AudioManagerController loadSound:@"backSound.wav"]; + + AudioServicesPlaySystemSound(backSound); +} + ++(void) playSelectSound { + if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == NO) + return; + + if (selSound == -1) + selSound = [AudioManagerController loadSound:@"selSound.wav"]; + + AudioServicesPlaySystemSound(selSound); +} + +#pragma mark - +#pragma mark memory management ++(void) didReceiveMemoryWarning { + [backgroundMusic stop]; + backgroundMusic = nil; + clickSound = -1; + backSound = -1; +} + ++(void) dealloc { + releaseAndNil(backgroundMusic); + AudioServicesDisposeSystemSoundID(clickSound), clickSound = -1; + AudioServicesDisposeSystemSoundID(backSound), backSound = -1; + AudioServicesDisposeSystemSoundID(selSound), selSound = -1; + [super dealloc]; +} + +@end diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/CommodityFunctions.h --- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.h Sat Sep 24 00:54:47 2011 +0200 @@ -64,7 +64,6 @@ #define UIVIEW_HW_SDLVIEW [[[[UIApplication sharedApplication] keyWindow] subviews] objectAtIndex:0] void print_free_memory (void); -void playSound (NSString *snd); NSInteger randomPort (void); NSString *getModelType (void); diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/CommodityFunctions.m --- a/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/CommodityFunctions.m Sat Sep 24 00:54:47 2011 +0200 @@ -25,7 +25,6 @@ #import #import #import -#import #import #import #import @@ -76,21 +75,6 @@ return modelId; } -void playSound (NSString *snd) { - if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"sound"] boolValue] == YES) { - // get the filename of the sound file: - NSString *path = [NSString stringWithFormat:@"%@/%@.wav",[[NSBundle mainBundle] resourcePath],snd]; - - // declare a system sound id and get a URL for the sound file - SystemSoundID soundID; - NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO]; - - // use audio sevices to create and play the sound - AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID); - AudioServicesPlaySystemSound(soundID); - } -} - NSArray *getAvailableColors (void) { // by default colors are ARGB but we do computation over RGB, hence we have to "& 0x00FFFFFF" before processing unsigned int colors[] = HW_TEAMCOLOR_ARRAY; diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/GameConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameConfigViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -51,17 +51,17 @@ [alert show]; [alert release]; } else { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [[self parentViewController] dismissModalViewControllerAnimated:YES]; } break; case 1: - playSound(@"clickSound"); + [AudioManagerController playClickSound]; theButton.enabled = NO; [self startGame:theButton]; break; case 2: - playSound(@"clickSound"); + [AudioManagerController playClickSound]; if (self.helpPage == nil) self.helpPage = [[HelpPageViewController alloc] initWithNibName:@"HelpPageLobbyViewController-iPad" bundle:nil]; self.helpPage.view.alpha = 0; @@ -79,7 +79,7 @@ -(IBAction) segmentPressed:(id) sender { UISegmentedControl *theSegment = (UISegmentedControl *)sender; - playSound(@"selSound"); + [AudioManagerController playSelectSound]; switch (theSegment.selectedSegmentIndex) { case 0: // this init here is just aestetic as this controller was already set up in viewDidLoad diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m --- a/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/GameInterfaceBridge.m Sat Sep 24 00:54:47 2011 +0200 @@ -24,6 +24,7 @@ #import "EngineProtocolNetwork.h" #import "OverlayViewController.h" #import "StatsPageViewController.h" +#import "AudioManagerController.h" #import "ObjcExports.h" @implementation GameInterfaceBridge @@ -154,7 +155,7 @@ [userDefaults setObject:self.savePath forKey:@"savedGamePath"]; [userDefaults synchronize]; - [HedgewarsAppDelegate pauseBackgroundMusic]; + [AudioManagerController pauseBackgroundMusic]; // SYSTEMS ARE GO!! [self startGameEngine]; @@ -177,8 +178,7 @@ // warn our host that it's going to be visible again [self.parentController viewWillAppear:YES]; - if ([[userDefaults objectForKey:@"music"] boolValue]) - [HedgewarsAppDelegate playBackgroundMusic]; + [AudioManagerController playBackgroundMusic]; } // set up variables for a local game diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m --- a/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/GeneralSettingsViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -22,6 +22,7 @@ #import "GeneralSettingsViewController.h" #import "CommodityFunctions.h" + @implementation GeneralSettingsViewController @@ -44,7 +45,7 @@ NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults synchronize]; if ([[userDefaults objectForKey:@"music"] boolValue] == NO) - [HedgewarsAppDelegate stopBackgroundMusic]; + [AudioManagerController stopBackgroundMusic]; [super viewWillDisappear:animated]; } @@ -64,7 +65,7 @@ [theOtherSwitch setOn:NO animated:YES]; if (theOtherSwitch.on) - [HedgewarsAppDelegate pauseBackgroundMusic]; + [AudioManagerController pauseBackgroundMusic]; break; case 20: //musicSwitch // if switch above (sound) is off, never turn on @@ -76,9 +77,9 @@ [settings setObject:[NSNumber numberWithBool:theSwitch.on] forKey:@"music"]; if (theSwitch.on) - [HedgewarsAppDelegate playBackgroundMusic]; + [AudioManagerController playBackgroundMusic]; else - [HedgewarsAppDelegate pauseBackgroundMusic]; + [AudioManagerController pauseBackgroundMusic]; break; case 30: //alternateSwitch diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.h --- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.h Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.h Sat Sep 24 00:54:47 2011 +0200 @@ -23,27 +23,20 @@ #import "SDL_uikitappdelegate.h" @class MainMenuViewController; -@class AVAudioPlayer; @interface HedgewarsAppDelegate : SDLUIKitDelegate { MainMenuViewController *mainViewController; UIWindow *uiwindow; UIWindow *secondWindow; BOOL isInGame; - AVAudioPlayer *backgroundMusic; } @property (nonatomic,retain) MainMenuViewController *mainViewController; @property (nonatomic,retain) UIWindow *uiwindow; @property (nonatomic,retain) UIWindow *secondWindow; @property (assign) BOOL isInGame; -@property (nonatomic,retain) AVAudioPlayer *backgroundMusic; +(HedgewarsAppDelegate *)sharedAppDelegate; -+(void) playBackgroundMusic; -+(void) pauseBackgroundMusic; -+(void) stopBackgroundMusic; -+(void) loadBackgroundMusic; @end diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m --- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Sat Sep 24 00:54:47 2011 +0200 @@ -24,7 +24,6 @@ #import "ObjcExports.h" #import "CommodityFunctions.h" #import "MainMenuViewController.h" -#import "AVFoundation/AVAudioPlayer.h" #include @@ -37,7 +36,7 @@ @end @implementation HedgewarsAppDelegate -@synthesize mainViewController, uiwindow, secondWindow, isInGame, backgroundMusic; +@synthesize mainViewController, uiwindow, secondWindow, isInGame; // convenience method +(HedgewarsAppDelegate *)sharedAppDelegate { @@ -45,34 +44,6 @@ } #pragma mark - -#pragma mark Music control -+(void) playBackgroundMusic { - if ([HedgewarsAppDelegate sharedAppDelegate].backgroundMusic == nil) - [HedgewarsAppDelegate loadBackgroundMusic]; - [[HedgewarsAppDelegate sharedAppDelegate].backgroundMusic play]; -} - -+(void) pauseBackgroundMusic { - [[HedgewarsAppDelegate sharedAppDelegate].backgroundMusic pause]; -} - -+(void) stopBackgroundMusic { - [[HedgewarsAppDelegate sharedAppDelegate].backgroundMusic stop]; -} - -+(void) loadBackgroundMusic { - NSString *musicString = [[NSBundle mainBundle] pathForResource:@"hwclassic" ofType:@"mp3"]; - AVAudioPlayer *background = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:musicString] error:nil]; - - background.delegate = nil; - background.volume = 0.4f; - background.numberOfLoops = -1; - [background prepareToPlay]; - [HedgewarsAppDelegate sharedAppDelegate].backgroundMusic = background; - [background release]; -} - -#pragma mark - #pragma mark AppDelegate methods -(id) init { if (self = [super init]){ @@ -80,7 +51,6 @@ uiwindow = nil; secondWindow = nil; isInGame = NO; - backgroundMusic = nil; } return self; } @@ -89,7 +59,6 @@ [mainViewController release]; [uiwindow release]; [secondWindow release]; - [backgroundMusic release]; [super dealloc]; } @@ -125,8 +94,7 @@ -(void) applicationDidReceiveMemoryWarning:(UIApplication *)application { // don't stop music when it is playing if (self.isInGame) { - [self.backgroundMusic stop]; - self.backgroundMusic = nil; + [AudioManagerController didReceiveMemoryWarning]; MSG_MEMCLEAN(); } print_free_memory(); @@ -136,7 +104,7 @@ // true multitasking with sdl works only on 4.2 and above; we close the game to avoid a black screen at return -(void) applicationWillResignActive:(UIApplication *)application { if (self.isInGame && [[[UIDevice currentDevice] systemVersion] floatValue] < 4.2f) - HW_terminate(NO); + HW_terminate(NO); [super applicationWillResignActive:application]; } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/MainMenuViewController.m --- a/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/MainMenuViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -30,6 +30,7 @@ #import "Appirater.h" #import "ServerSetup.h" + @implementation MainMenuViewController @synthesize gameConfigViewController, settingsViewController, aboutViewController, savedGamesViewController, restoreViewController; @@ -106,7 +107,7 @@ NSString *trackingVersion = [userDefaults stringForKey:@"HedgeVersion"]; if ([[userDefaults objectForKey:@"music"] boolValue]) - [HedgewarsAppDelegate playBackgroundMusic]; + [AudioManagerController playBackgroundMusic]; if (trackingVersion == nil || [trackingVersion isEqualToString:version] == NO) { // remove any reminder of previous games as saves are going to be wiped out @@ -156,7 +157,7 @@ NSString *xib = nil; NSString *debugStr = nil; - playSound(@"clickSound"); + [AudioManagerController playClickSound]; switch (button.tag) { case 0: if (nil == self.gameConfigViewController) { diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/MapConfigViewController.m --- a/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/MapConfigViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -40,7 +40,7 @@ } -(IBAction) mapButtonPressed { - playSound(@"clickSound"); + [AudioManagerController playClickSound]; [self updatePreview]; } @@ -307,7 +307,7 @@ [self updatePreview]; oldValue = num; } - playSound(@"clickSound"); + [AudioManagerController playClickSound]; } // perform actions based on the activated section, then call updatePreview to visually update the selection @@ -316,7 +316,7 @@ NSString *mapgen, *staticmap, *mission; NSInteger newPage = self.segmentedControl.selectedSegmentIndex; - playSound(@"selSound"); + [AudioManagerController playSelectSound]; switch (newPage) { case 0: // Random mapgen = @"e$mapgen 0"; diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/MasterViewController.m --- a/project_files/HedgewarsMobile/Classes/MasterViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/MasterViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -166,7 +166,7 @@ nextController.navigationItem.hidesBackButton = NO; [self.navigationController pushViewController:nextController animated:YES]; } else { - playSound(@"clickSound"); + [AudioManagerController playClickSound]; nextController.navigationItem.hidesBackButton = YES; [targetController.navigationController pushViewController:nextController animated:NO]; } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/OverlayViewController.m --- a/project_files/HedgewarsMobile/Classes/OverlayViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/OverlayViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -278,7 +278,7 @@ HW_backjump(); break; case 10: - playSound(@"clickSound"); + [AudioManagerController playClickSound]; clearView(); HW_pause(); if (self.amvc.isVisible && IS_DUALHEAD() == NO) { @@ -289,7 +289,7 @@ [self showPopover]; break; case 11: - playSound(@"clickSound"); + [AudioManagerController playClickSound]; clearView(); if (IS_DUALHEAD() || [[[NSUserDefaults standardUserDefaults] objectForKey:@"classic_menu"] boolValue] == NO) { diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/RestoreViewController.m --- a/project_files/HedgewarsMobile/Classes/RestoreViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/RestoreViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -36,7 +36,7 @@ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (theButton.tag != 0) { - playSound(@"clickSound"); + [AudioManagerController playClickSound]; if (self.interfaceBridge == nil) { GameInterfaceBridge *bridge = [[GameInterfaceBridge alloc] initWithController:self.parentViewController]; self.interfaceBridge = bridge; @@ -45,7 +45,7 @@ [self.parentViewController dismissModalViewControllerAnimated:NO]; [self.interfaceBridge startSaveGame:[defaults objectForKey:@"savedGamePath"]]; } else { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [defaults setObject:@"" forKey:@"savedGamePath"]; [defaults synchronize]; [self.parentViewController dismissModalViewControllerAnimated:YES]; diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/SavedGamesViewController.m --- a/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/SavedGamesViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -69,7 +69,7 @@ UIButton *button = (UIButton *)sender; if (button.tag == 0) { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [self.tableView setEditing:NO animated:YES]; [[self parentViewController] dismissModalViewControllerAnimated:YES]; } else { diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/SplitViewRootController.m --- a/project_files/HedgewarsMobile/Classes/SplitViewRootController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/SplitViewRootController.m Sat Sep 24 00:54:47 2011 +0200 @@ -77,7 +77,7 @@ } -(void) dismissModalViewControllerAnimated:(BOOL)animated { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [self.parentViewController dismissModalViewControllerAnimated:YES]; } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Classes/StatsPageViewController.m --- a/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/StatsPageViewController.m Sat Sep 24 00:54:47 2011 +0200 @@ -146,7 +146,7 @@ #pragma mark Table view delegate -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if ([indexPath section] == 3) { - playSound(@"backSound"); + [AudioManagerController playBackSound]; [self dismissModalViewControllerAnimated:YES]; } } diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj --- a/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Hedgewars.xcodeproj/project.pbxproj Sat Sep 24 00:54:47 2011 +0200 @@ -214,6 +214,7 @@ 61B7A61812FA13B00051E14E /* libSDL_net.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B7A56812FA12D00051E14E /* libSDL_net.a */; }; 61B7A61912FA13B00051E14E /* libSDL_ttf.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B7A59012FA13330051E14E /* libSDL_ttf.a */; }; 61C079E411F35A300072BF46 /* EditableCellView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C079E311F35A300072BF46 /* EditableCellView.m */; }; + 61C28D3F142D380400DA16C2 /* AudioManagerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 61C28D3E142D380400DA16C2 /* AudioManagerController.m */; }; 61CADE331402EE290030C3EB /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61CADE321402EE290030C3EB /* ImageIO.framework */; }; 61D205A1127CDD1100ABD83E /* ObjcExports.m in Sources */ = {isa = PBXBuildFile; fileRef = 61D205A0127CDD1100ABD83E /* ObjcExports.m */; }; 61D3D2A51290E03A003CE7C3 /* irc.png in Resources */ = {isa = PBXBuildFile; fileRef = 61D3D2A41290E03A003CE7C3 /* irc.png */; }; @@ -572,6 +573,8 @@ 61B7A33712CC21080086B604 /* StatsPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StatsPageViewController.m; sourceTree = ""; }; 61C079E211F35A300072BF46 /* EditableCellView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditableCellView.h; path = Classes/EditableCellView.h; sourceTree = ""; }; 61C079E311F35A300072BF46 /* EditableCellView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EditableCellView.m; path = Classes/EditableCellView.m; sourceTree = ""; }; + 61C28D3D142D380400DA16C2 /* AudioManagerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioManagerController.h; sourceTree = ""; }; + 61C28D3E142D380400DA16C2 /* AudioManagerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioManagerController.m; sourceTree = ""; }; 61CADE321402EE290030C3EB /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; 61D2059F127CDD1100ABD83E /* ObjcExports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjcExports.h; path = Classes/ObjcExports.h; sourceTree = ""; }; 61D205A0127CDD1100ABD83E /* ObjcExports.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjcExports.m; path = Classes/ObjcExports.m; sourceTree = ""; }; @@ -666,6 +669,8 @@ 616591E711CA9BA200D6E256 /* EngineProtocolNetwork.m */, 61E2E12C12BAAEE30051B659 /* ServerSetup.h */, 61E2E12D12BAAEE30051B659 /* ServerSetup.m */, + 61C28D3D142D380400DA16C2 /* AudioManagerController.h */, + 61C28D3E142D380400DA16C2 /* AudioManagerController.m */, ); path = Classes; sourceTree = ""; @@ -1589,6 +1594,7 @@ 61EDB5B0135B3F97009B29A6 /* GameInterfaceBridge.m in Sources */, 61A976B3136F668500DD9878 /* uCursor.pas in Sources */, 6167A6761391514600AA6D07 /* RestoreViewController.m in Sources */, + 61C28D3F142D380400DA16C2 /* AudioManagerController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff -r e8f44e9433f0 -r dbcebcd3d79f project_files/HedgewarsMobile/Hedgewars_Prefix.pch --- a/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Fri Sep 23 22:42:30 2011 +0200 +++ b/project_files/HedgewarsMobile/Hedgewars_Prefix.pch Sat Sep 24 00:54:47 2011 +0200 @@ -28,10 +28,7 @@ #import "UIImageExtra.h" #import "CommodityFunctions.h" #import "HedgewarsAppDelegate.h" -#import "SDL.h" -#import "SDL_video.h" -#import "SDL_net.h" -#import "SDL_mixer.h" +#import "AudioManagerController.h" #endif