diff options
Diffstat (limited to 'src/MKAudio.m')
-rw-r--r-- | src/MKAudio.m | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/MKAudio.m b/src/MKAudio.m index 83360a9..c4de70b 100644 --- a/src/MKAudio.m +++ b/src/MKAudio.m @@ -281,6 +281,20 @@ static void MKAudio_UpdateAudioSessionSettings(MKAudio *audio) { return audio; } +- (void) setDelegate:(id<MKAudioDelegate>)delegate { + @synchronized(self) { + _delegate = delegate; + } +} + +- (id<MKAudioDelegate>) delegate { + id<MKAudioDelegate> delegate; + @synchronized(self) { + delegate = _delegate; + } + return delegate; +} + // Read the current audio engine settings - (void) readAudioSettings:(MKAudioSettings *)settings { if (settings == NULL) @@ -300,9 +314,13 @@ static void MKAudio_UpdateAudioSessionSettings(MKAudio *audio) { // Should audio be running? - (BOOL) _audioShouldBeRunning { + id<MKAudioDelegate> delegate; + @synchronized(self) { + delegate = _delegate; + } // If a delegate is provided, we should call that. - if ([(id)_delegate respondsToSelector:@selector(audioShouldBeRunning:)]) { - return [_delegate audioShouldBeRunning:self]; + if ([(id)delegate respondsToSelector:@selector(audioShouldBeRunning:)]) { + return [delegate audioShouldBeRunning:self]; } // If no delegate is available, or the audioShouldBeRunning: |