diff -r 5730238e7ee6 -r 6e8fbbfb0de5 project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m --- a/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Sun May 29 23:58:28 2011 +0200 +++ b/project_files/HedgewarsMobile/Classes/HedgewarsAppDelegate.m Mon May 30 01:14:25 2011 +0200 @@ -24,6 +24,7 @@ #import "ObjcExports.h" #import "CommodityFunctions.h" #import "MainMenuViewController.h" +#import "AVFoundation/AVAudioPlayer.h" #import "Appirater.h" #include @@ -37,19 +38,50 @@ @end @implementation HedgewarsAppDelegate -@synthesize mainViewController, uiwindow, secondWindow, isInGame; +@synthesize mainViewController, uiwindow, secondWindow, isInGame, backgroundMusic; // convenience method +(HedgewarsAppDelegate *)sharedAppDelegate { return (HedgewarsAppDelegate *)[[UIApplication sharedApplication] delegate]; } +#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.5f; + background.numberOfLoops = -1; + [background prepareToPlay]; + [HedgewarsAppDelegate sharedAppDelegate].backgroundMusic = background; + [background release]; +} + +#pragma mark - +#pragma mark AppDelegate methods -(id) init { if (self = [super init]){ mainViewController = nil; uiwindow = nil; secondWindow = nil; isInGame = NO; + backgroundMusic = nil; } return self; } @@ -58,6 +90,7 @@ [mainViewController release]; [uiwindow release]; [secondWindow release]; + [backgroundMusic release]; [super dealloc]; } @@ -100,6 +133,8 @@ -(void) applicationDidReceiveMemoryWarning:(UIApplication *)application { // don't clean mainMenuViewController here!!! + [self.backgroundMusic stop]; + self.backgroundMusic = nil; MSG_MEMCLEAN(); print_free_memory(); }