Skip to content

Commit 67aff2d

Browse files
committed
Use static variables for global instances of audio classes
1 parent e75ed52 commit 67aff2d

File tree

6 files changed

+15
-22
lines changed

6 files changed

+15
-22
lines changed

src/audio/audioinput.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010

1111
using namespace libscratchcpp;
1212

13-
std::shared_ptr<IAudioInput> AudioInput::m_instance = std::make_shared<AudioInput>();
13+
static std::shared_ptr<IAudioInput> INSTANCE = std::make_shared<AudioInput>();
1414

1515
AudioInput::AudioInput()
1616
{
1717
}
1818

1919
std::shared_ptr<IAudioInput> AudioInput::instance()
2020
{
21-
return m_instance;
21+
return INSTANCE;
2222
}
2323

2424
std::shared_ptr<IAudioLoudness> AudioInput::audioLoudness() const

src/audio/audioinput.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ class AudioInput : public IAudioInput
1919
std::shared_ptr<IAudioLoudness> audioLoudness() const override;
2020

2121
private:
22-
static std::shared_ptr<IAudioInput> m_instance;
23-
2422
mutable std::shared_ptr<IAudioLoudness> m_audioLoudness;
2523
};
2624

src/audio/audiooutput.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010

1111
using namespace libscratchcpp;
1212

13-
std::shared_ptr<IAudioOutput> AudioOutput::m_instance = std::make_shared<AudioOutput>();
13+
static std::shared_ptr<IAudioOutput> INSTANCE = std::make_shared<AudioOutput>();
1414

1515
AudioOutput::AudioOutput()
1616
{
1717
}
1818

1919
std::shared_ptr<IAudioOutput> AudioOutput::instance()
2020
{
21-
return m_instance;
21+
return INSTANCE;
2222
}
2323

2424
std::shared_ptr<IAudioPlayer> AudioOutput::createAudioPlayer() const

src/audio/audiooutput.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ class AudioOutput : public IAudioOutput
1515
static std::shared_ptr<IAudioOutput> instance();
1616

1717
std::shared_ptr<IAudioPlayer> createAudioPlayer() const override;
18-
19-
private:
20-
static std::shared_ptr<IAudioOutput> m_instance;
2118
};
2219

2320
} // namespace libscratchcpp

src/audio/internal/audioengine.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,27 @@
77

88
using namespace libscratchcpp;
99

10-
AudioEngine AudioEngine::instance;
10+
static AudioEngine INSTANCE;
1111

1212
IAudioEngine *IAudioEngine::instance()
1313
{
14-
return &AudioEngine::instance;
14+
return &INSTANCE;
1515
}
1616

1717
ma_engine *AudioEngine::engine()
1818
{
19-
if (!instance.m_initialized)
20-
instance.init();
19+
if (!INSTANCE.m_initialized)
20+
INSTANCE.init();
2121

22-
return instance.m_initialized ? instance.m_engine : nullptr;
22+
return INSTANCE.m_initialized ? INSTANCE.m_engine : nullptr;
2323
}
2424

2525
bool AudioEngine::initialized()
2626
{
27-
if (!instance.m_initialized)
28-
instance.init();
27+
if (!INSTANCE.m_initialized)
28+
INSTANCE.init();
2929

30-
return instance.m_initialized;
30+
return INSTANCE.m_initialized;
3131
}
3232

3333
float AudioEngine::volume() const

src/audio/internal/audioengine.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ namespace libscratchcpp
1515
class AudioEngine : public IAudioEngine
1616
{
1717
public:
18+
AudioEngine();
19+
~AudioEngine();
20+
1821
friend class IAudioEngine;
1922

2023
static ma_engine *engine();
@@ -24,13 +27,8 @@ class AudioEngine : public IAudioEngine
2427
void setVolume(float volume) override;
2528

2629
private:
27-
AudioEngine();
28-
~AudioEngine();
29-
3030
void init();
3131

32-
static AudioEngine instance;
33-
3432
ma_engine *m_engine = nullptr;
3533
bool m_initialized = false;
3634
float m_volume = 1.0f;

0 commit comments

Comments
 (0)