Wiki Page Content

Differences between revisions 2 and 8 (spanning 6 versions)
Revision 2 as of 2009-11-17 18:52:16
Size: 753
Editor: SheenaSmith
Comment: minor correction
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 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 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]]
Line 30: Line 45:

----
[[CategoryAPI]], [[CategoryAudio]]

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.


CategoryAPI, CategoryAudio

None: SDL_UnlockAudio (last edited 2015-01-09 23:02:23 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit