// Thread: Main. Must be locked: AudioMutex. void ClosePlaybackDevice(not_null<Instance*> instance) { if (!AudioDevice) return; LOG(("Audio Info: Closing audio playback device.")); #ifndef TDESKTOP_DISABLE_OPENAL_EFFECTS // playback speed related alDeleteFilters(1, &_playbackSpeedData.uiFilter); alDeleteEffects(1, &_playbackSpeedData.uiEffect); alDeleteAuxiliaryEffectSlots(1, &_playbackSpeedData.uiEffectSlot); _playbackSpeedData.uiFilter = 0; _playbackSpeedData.uiEffect = 0; _playbackSpeedData.uiEffectSlot = 0; #endif // TDESKTOP_DISABLE_OPENAL_EFFECTS if (Player::mixer()) { Player::mixer()->detachTracks(); } instance->detachTracks(); DestroyPlaybackDevice(); }