From d8ddc899fb9133a9f413fa6ff43e18b781fdbf0b Mon Sep 17 00:00:00 2001 From: Almamu Date: Fri, 11 Apr 2025 01:44:59 +0200 Subject: [PATCH] chore: fix segfault after code cleanup --- .../Application/CWallpaperApplication.cpp | 13 ++++++------- .../Application/CWallpaperApplication.h | 1 + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/WallpaperEngine/Application/CWallpaperApplication.cpp b/src/WallpaperEngine/Application/CWallpaperApplication.cpp index 0a1e8fe..1aaef6c 100644 --- a/src/WallpaperEngine/Application/CWallpaperApplication.cpp +++ b/src/WallpaperEngine/Application/CWallpaperApplication.cpp @@ -375,28 +375,27 @@ void CWallpaperApplication::setupOutput () { new WallpaperEngine::Input::CInputContext (new WallpaperEngine::Input::Drivers::CGLFWMouseInput ( reinterpret_cast (m_videoDriver))); } +} +void CWallpaperApplication::setupAudio () { if (this->m_context.settings.audio.audioprocessing) { this->m_audioRecorder = new WallpaperEngine::Audio::Drivers::Recorders::CPulseAudioPlaybackRecorder (); } else { this->m_audioRecorder = new WallpaperEngine::Audio::Drivers::Recorders::CPlaybackRecorder (); } - // initialize render context - m_renderContext = new WallpaperEngine::Render::CRenderContext (*m_videoDriver, *m_inputContext, *this); -} -void CWallpaperApplication::setupAudio () { // audio playing detector - WallpaperEngine::Audio::Drivers::Detectors::CPulseAudioPlayingDetector audioDetector (this->m_context, - *this->m_fullScreenDetector); + m_audioDetector = new WallpaperEngine::Audio::Drivers::Detectors::CPulseAudioPlayingDetector (this->m_context, *this->m_fullScreenDetector); // initialize sdl audio driver m_audioDriver = - new WallpaperEngine::Audio::Drivers::CSDLAudioDriver (this->m_context, audioDetector, *this->m_audioRecorder); + new WallpaperEngine::Audio::Drivers::CSDLAudioDriver (this->m_context, *this->m_audioDetector, *this->m_audioRecorder); // initialize audio context m_audioContext = new WallpaperEngine::Audio::CAudioContext (*m_audioDriver); } void CWallpaperApplication::prepareOutputs () { + // initialize render context + m_renderContext = new WallpaperEngine::Render::CRenderContext (*m_videoDriver, *m_inputContext, *this); // create a new background for each screen // set all the specific wallpapers required diff --git a/src/WallpaperEngine/Application/CWallpaperApplication.h b/src/WallpaperEngine/Application/CWallpaperApplication.h index a0fd074..5389023 100644 --- a/src/WallpaperEngine/Application/CWallpaperApplication.h +++ b/src/WallpaperEngine/Application/CWallpaperApplication.h @@ -129,6 +129,7 @@ class CWallpaperApplication { /** Maps screens to backgrounds */ std::map m_backgrounds; + WallpaperEngine::Audio::Drivers::Detectors::CAudioPlayingDetector* m_audioDetector; WallpaperEngine::Audio::CAudioContext* m_audioContext; WallpaperEngine::Audio::Drivers::CSDLAudioDriver* m_audioDriver; WallpaperEngine::Audio::Drivers::Recorders::CPlaybackRecorder* m_audioRecorder;