28 lines
884 B
Plaintext
28 lines
884 B
Plaintext
|
#import <Foundation/Foundation.h>
|
||
|
#import <AVFoundation/AVFoundation.h>
|
||
|
|
||
|
void (*gSuspendCallback)(bool suspend);
|
||
|
|
||
|
extern "C" void RegisterSuspendCallback(void (*callback)(bool))
|
||
|
{
|
||
|
if (!gSuspendCallback)
|
||
|
{
|
||
|
gSuspendCallback = callback;
|
||
|
|
||
|
[[NSNotificationCenter defaultCenter] addObserverForName:AVAudioSessionInterruptionNotification object:nil queue:nil usingBlock:^(NSNotification *notification)
|
||
|
{
|
||
|
bool began = [[notification.userInfo valueForKey:AVAudioSessionInterruptionTypeKey] intValue] == AVAudioSessionInterruptionTypeBegan;
|
||
|
|
||
|
if (!began)
|
||
|
{
|
||
|
[[AVAudioSession sharedInstance] setActive:TRUE error:nil];
|
||
|
}
|
||
|
|
||
|
if (gSuspendCallback)
|
||
|
{
|
||
|
gSuspendCallback(began);
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
}
|