view src/main/macos/exports/SDL.x @ 4216:5b99971a27b4 SDL-1.2

Fixed bug #698 Hans de Goede 2009-02-13 01:10:52 PST Since the new "glitch free" version of pulseaudio (used in Fedora 10 amongst others), the sound of SDL using apps (like a simple playmus call) has been crackling. While looking in to fixing this I noticed that the current pulseaudio code in SDL uses pa_simple. However pa_simple uses a thread to pump pulseaudio events and ipc, given that SDL already has its own thread for audio handling this is clearly suboptimal, leading to unnecessary context switching IPC, etc. Also pa_simple does not allow one to implement the WaitAudio() callback for SDL audiodrivers properly. Given that my work is mostly a rewrite (although some original pieces remain) I'm attaching the new .c and .h file, as that is easier to review then the huge diff. Let me know if you also want the diff. This new version has the following features: -no longer use an additional thread next to the SDL sound thread -do not crackle with glitch free audio -when used with a newer pulse, which does glitch free audio, the total latency is the same as with the alsa driver -proper WaitAudio() implementation, saving another mixlen worth of latency -adds a WaitDone() implementation This patch has been written in consultancy with Lennart Poetering (the pulseaudio author) and has been reviewed by him for correct use of the pa API.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 21 Sep 2009 09:27:08 +0000
parents 84cecd0b64b4
children 0a53c90a37f9 1e191391e68d
line wrap: on
line source

	SDL_Init
	SDL_InitSubSystem
	SDL_QuitSubSystem
	SDL_WasInit
	SDL_Quit
	SDL_GetAppState
	SDL_AudioInit
	SDL_AudioQuit
	SDL_AudioDriverName
	SDL_OpenAudio
	SDL_GetAudioStatus
	SDL_PauseAudio
	SDL_LoadWAV_RW
	SDL_FreeWAV
	SDL_BuildAudioCVT
	SDL_ConvertAudio
	SDL_MixAudio
	SDL_LockAudio
	SDL_UnlockAudio
	SDL_CloseAudio
	SDL_CDNumDrives
	SDL_CDName
	SDL_CDOpen
	SDL_CDStatus
	SDL_CDPlayTracks
	SDL_CDPlay
	SDL_CDPause
	SDL_CDResume
	SDL_CDStop
	SDL_CDEject
	SDL_CDClose
	SDL_HasRDTSC
	SDL_HasMMX
	SDL_HasMMXExt
	SDL_Has3DNow
	SDL_Has3DNowExt
	SDL_HasSSE
	SDL_HasSSE2
	SDL_HasAltiVec
	SDL_SetError
	SDL_GetError
	SDL_ClearError
	SDL_Error
	SDL_PumpEvents
	SDL_PeepEvents
	SDL_PollEvent
	SDL_WaitEvent
	SDL_PushEvent
	SDL_SetEventFilter
	SDL_GetEventFilter
	SDL_EventState
	SDL_NumJoysticks
	SDL_JoystickName
	SDL_JoystickOpen
	SDL_JoystickOpened
	SDL_JoystickIndex
	SDL_JoystickNumAxes
	SDL_JoystickNumBalls
	SDL_JoystickNumHats
	SDL_JoystickNumButtons
	SDL_JoystickUpdate
	SDL_JoystickEventState
	SDL_JoystickGetAxis
	SDL_JoystickGetHat
	SDL_JoystickGetBall
	SDL_JoystickGetButton
	SDL_JoystickClose
	SDL_EnableUNICODE
	SDL_EnableKeyRepeat
	SDL_GetKeyRepeat
	SDL_GetKeyState
	SDL_GetModState
	SDL_SetModState
	SDL_GetKeyName
	SDL_LoadObject
	SDL_LoadFunction
	SDL_UnloadObject
	SDL_GetMouseState
	SDL_GetRelativeMouseState
	SDL_WarpMouse
	SDL_CreateCursor
	SDL_SetCursor
	SDL_GetCursor
	SDL_FreeCursor
	SDL_ShowCursor
	SDL_CreateMutex
	SDL_mutexP
	SDL_mutexV
	SDL_DestroyMutex
	SDL_CreateSemaphore
	SDL_DestroySemaphore
	SDL_SemWait
	SDL_SemTryWait
	SDL_SemWaitTimeout
	SDL_SemPost
	SDL_SemValue
	SDL_CreateCond
	SDL_DestroyCond
	SDL_CondSignal
	SDL_CondBroadcast
	SDL_CondWait
	SDL_CondWaitTimeout
	SDL_RWFromFile
	SDL_RWFromFP
	SDL_RWFromMem
	SDL_RWFromConstMem
	SDL_AllocRW
	SDL_FreeRW
	SDL_ReadLE16
	SDL_ReadBE16
	SDL_ReadLE32
	SDL_ReadBE32
	SDL_ReadLE64
	SDL_ReadBE64
	SDL_WriteLE16
	SDL_WriteBE16
	SDL_WriteLE32
	SDL_WriteBE32
	SDL_WriteLE64
	SDL_WriteBE64
	SDL_GetWMInfo
	SDL_CreateThread
	SDL_CreateThread
	SDL_ThreadID
	SDL_GetThreadID
	SDL_WaitThread
	SDL_KillThread
	SDL_GetTicks
	SDL_Delay
	SDL_SetTimer
	SDL_AddTimer
	SDL_RemoveTimer
	SDL_Linked_Version
	SDL_VideoInit
	SDL_VideoQuit
	SDL_VideoDriverName
	SDL_GetVideoSurface
	SDL_GetVideoInfo
	SDL_VideoModeOK
	SDL_ListModes
	SDL_SetVideoMode
	SDL_UpdateRects
	SDL_UpdateRect
	SDL_Flip
	SDL_SetGamma
	SDL_SetGammaRamp
	SDL_GetGammaRamp
	SDL_SetColors
	SDL_SetPalette
	SDL_MapRGB
	SDL_MapRGBA
	SDL_GetRGB
	SDL_GetRGBA
	SDL_CreateRGBSurface
	SDL_CreateRGBSurfaceFrom
	SDL_FreeSurface
	SDL_LockSurface
	SDL_UnlockSurface
	SDL_LoadBMP_RW
	SDL_SaveBMP_RW
	SDL_SetColorKey
	SDL_SetAlpha
	SDL_SetClipRect
	SDL_GetClipRect
	SDL_ConvertSurface
	SDL_UpperBlit
	SDL_LowerBlit
	SDL_FillRect
	SDL_DisplayFormat
	SDL_DisplayFormatAlpha
	SDL_CreateYUVOverlay
	SDL_LockYUVOverlay
	SDL_UnlockYUVOverlay
	SDL_DisplayYUVOverlay
	SDL_FreeYUVOverlay
	SDL_GL_LoadLibrary
	SDL_GL_GetProcAddress
	SDL_GL_SetAttribute
	SDL_GL_GetAttribute
	SDL_GL_SwapBuffers
	SDL_GL_UpdateRects
	SDL_GL_Lock
	SDL_GL_Unlock
	SDL_WM_SetCaption
	SDL_WM_GetCaption
	SDL_WM_SetIcon
	SDL_WM_IconifyWindow
	SDL_WM_ToggleFullScreen
	SDL_WM_GrabInput
	SDL_SoftStretch
	SDL_putenv
	SDL_getenv
	SDL_qsort
	SDL_revcpy
	SDL_strlcpy
	SDL_strlcat
	SDL_strdup
	SDL_strrev
	SDL_strupr
	SDL_strlwr
	SDL_ltoa
	SDL_ultoa
	SDL_strcasecmp
	SDL_strncasecmp
	SDL_snprintf
	SDL_vsnprintf
	SDL_iconv
	SDL_iconv_string
	SDL_InitQuickDraw