Skip to content

Commit 9fbd24f

Browse files
authored
Merge pull request #509 from scratchcpp/fix_audio_on_windows
Fix #506: Initialize audio when used for the first time
2 parents 94bb7e4 + 726af1b commit 9fbd24f

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

src/audio/audioengine.cpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,31 @@ AudioEngine AudioEngine::instance;
1010

1111
ma_engine *AudioEngine::engine()
1212
{
13-
return &instance.m_engine;
13+
if (!instance.m_initialized)
14+
instance.init();
15+
16+
return instance.m_initialized ? &instance.m_engine : nullptr;
1417
}
1518

1619
bool AudioEngine::initialized()
1720
{
21+
if (!instance.m_initialized)
22+
instance.init();
23+
1824
return instance.m_initialized;
1925
}
2026

2127
AudioEngine::AudioEngine()
28+
{
29+
}
30+
31+
AudioEngine::~AudioEngine()
32+
{
33+
if (m_initialized)
34+
ma_engine_uninit(&m_engine);
35+
}
36+
37+
void AudioEngine::init()
2238
{
2339
ma_result result;
2440
result = ma_engine_init(NULL, &m_engine);
@@ -30,9 +46,3 @@ AudioEngine::AudioEngine()
3046

3147
m_initialized = true;
3248
}
33-
34-
AudioEngine::~AudioEngine()
35-
{
36-
if (m_initialized)
37-
ma_engine_uninit(&m_engine);
38-
}

src/audio/audioengine.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class AudioEngine
1919
AudioEngine();
2020
~AudioEngine();
2121

22+
void init();
23+
2224
static AudioEngine instance;
2325
ma_engine m_engine;
2426
bool m_initialized = false;

0 commit comments

Comments
 (0)