Responds to app lifecycle events by pausing/resuming emulation

This commit is contained in:
Riley Testut 2016-05-21 03:05:28 -05:00
parent 509cb4b136
commit db9bd94667

View File

@ -65,6 +65,9 @@ class EmulationViewController: UIViewController
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.updateControllers), name: ExternalControllerDidConnectNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.updateControllers), name: ExternalControllerDidConnectNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.updateControllers), name: ExternalControllerDidDisconnectNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.updateControllers), name: ExternalControllerDidDisconnectNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.willResignActive(_:)), name: UIApplicationWillResignActiveNotification, object: UIApplication.sharedApplication())
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(EmulationViewController.didBecomeActive(_:)), name: UIApplicationDidBecomeActiveNotification, object: UIApplication.sharedApplication())
} }
deinit deinit
@ -410,6 +413,23 @@ extension EmulationViewController: CheatsViewControllerDelegate
} }
} }
//MARK: - App Lifecycle -
private extension EmulationViewController
{
@objc func willResignActive(notification: NSNotification)
{
self.emulatorCore.pauseEmulation()
}
@objc func didBecomeActive(notification: NSNotification)
{
if self.pauseViewController == nil
{
self.emulatorCore.resumeEmulation()
}
}
}
//MARK: - <GameControllerReceiver> - //MARK: - <GameControllerReceiver> -
/// <GameControllerReceiver> /// <GameControllerReceiver>
extension EmulationViewController: GameControllerReceiverType extension EmulationViewController: GameControllerReceiverType