|
Size: 832
Comment: add categories
|
← Revision 8 as of 2015-01-09 23:02:23 ⇥
Size: 1225
Comment: Changed function name in example for consistency.
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 5: | Line 5: |
| Use this function to unlock the audio callback function. | This function is a legacy means of unlocking the audio device. New programs might want to use [[SDL_UnlockAudioDevice]]() instead. |
| Line 16: | Line 16: |
| You can add your code example here | void MyAudioCallback(void *userdata, Uint8* stream, int len) { printf("The audio callback is running!\n"); SDL_memset(stream, 0, len); // just silence. printf("The audio callback is done!\n"); } // don't lock for 2 seconds at a time in real life, please. SDL_Delay(2000); // callback runs for 2 seconds. SDL_LockAudio(); printf("The audio callback can't be running right now!\n"); SDL_Delay(2000); // callback doesn't run for 2 seconds. printf("Ok, unlocking!\n"); SDL_UnlockAudio(); SDL_Delay(2000); // callback runs for 2 seconds. |
| Line 20: | Line 34: |
| Unlocks a previous [[SDL_LockAudio]]() call. | This function is equivalent to calling |
| Line 22: | Line 36: |
| The lock manipulated by these functions protects the callback function. During a [[SDL_LockAudio]]()/[[SDL_UnlockAudio]]() pair, you can be guaranteed that the callback function for the default audio device is not running. | {{{#!highlight cpp SDL_UnlockAudioDevice(1); }}} |
| Line 24: | Line 40: |
| Do not call these from the callback function or you will cause deadlock. | and is only useful if you used the legacy [[SDL_OpenAudio]]() function. |
| Line 28: | Line 44: |
| .[[SDL_LockAudioDevice]] |
SDL_UnlockAudio
This function is a legacy means of unlocking the audio device. New programs might want to use SDL_UnlockAudioDevice() instead.
Syntax
void SDL_UnlockAudio(void)
Code Examples
void MyAudioCallback(void *userdata, Uint8* stream, int len)
{
printf("The audio callback is running!\n");
SDL_memset(stream, 0, len); // just silence.
printf("The audio callback is done!\n");
}
// don't lock for 2 seconds at a time in real life, please.
SDL_Delay(2000); // callback runs for 2 seconds.
SDL_LockAudio();
printf("The audio callback can't be running right now!\n");
SDL_Delay(2000); // callback doesn't run for 2 seconds.
printf("Ok, unlocking!\n");
SDL_UnlockAudio();
SDL_Delay(2000); // callback runs for 2 seconds.
Remarks
This function is equivalent to calling
SDL_UnlockAudioDevice(1);
and is only useful if you used the legacy SDL_OpenAudio() function.
