static int PULSEAUDIO_Init(SDL_AudioDriverImpl * impl) { if (LoadPulseAudioLibrary() < 0) { return 0; } if (ConnectToPulseServer(&hotplug_mainloop, &hotplug_context) < 0) { UnloadPulseAudioLibrary(); return 0; } /* Set the function pointers */ impl->DetectDevices = PULSEAUDIO_DetectDevices; impl->OpenDevice = PULSEAUDIO_OpenDevice; impl->PlayDevice = PULSEAUDIO_PlayDevice; impl->WaitDevice = PULSEAUDIO_WaitDevice; impl->GetDeviceBuf = PULSEAUDIO_GetDeviceBuf; impl->CloseDevice = PULSEAUDIO_CloseDevice; impl->Deinitialize = PULSEAUDIO_Deinitialize; impl->CaptureFromDevice = PULSEAUDIO_CaptureFromDevice; impl->FlushCapture = PULSEAUDIO_FlushCapture; impl->HasCaptureSupport = SDL_TRUE; return 1; /* this audio target is available. */ }
static void PULSEAUDIO_Deinitialize(void) { if (hotplug_thread) { PULSEAUDIO_pa_mainloop_quit(hotplug_mainloop, 0); SDL_WaitThread(hotplug_thread, NULL); hotplug_thread = NULL; } DisconnectFromPulseServer(hotplug_mainloop, hotplug_context); hotplug_mainloop = NULL; hotplug_context = NULL; UnloadPulseAudioLibrary(); }
static int LoadPulseAudioLibrary(void) { int retval = 0; if (pulseaudio_handle == NULL) { pulseaudio_handle = SDL_LoadObject(pulseaudio_library); if (pulseaudio_handle == NULL) { retval = -1; /* Don't call SDL_SetError(): SDL_LoadObject already did. */ } else { retval = load_pulseaudio_syms(); if (retval < 0) { UnloadPulseAudioLibrary(); } } } return retval; }
static int PULSEAUDIO_Init(SDL_AudioDriverImpl * impl) { if (LoadPulseAudioLibrary() < 0) { return 0; } if (!CheckPulseAudioAvailable()) { UnloadPulseAudioLibrary(); return 0; } /* Set the function pointers */ impl->OpenDevice = PULSEAUDIO_OpenDevice; impl->PlayDevice = PULSEAUDIO_PlayDevice; impl->WaitDevice = PULSEAUDIO_WaitDevice; impl->GetDeviceBuf = PULSEAUDIO_GetDeviceBuf; impl->CloseDevice = PULSEAUDIO_CloseDevice; impl->WaitDone = PULSEAUDIO_WaitDone; impl->Deinitialize = PULSEAUDIO_Deinitialize; impl->OnlyHasDefaultOutputDevice = 1; return 1; /* this audio target is available. */ }
static void PULSEAUDIO_Deinitialize(void) { UnloadPulseAudioLibrary(); }