reVeno/Source/Veno/Core/AudioConfig.cpp

79 lines
1.4 KiB
C++
Raw Permalink Normal View History

//
// Created by versustune on 22.03.20.
//
#include "AudioConfig.h"
2020-06-13 10:56:20 +02:00
#include "../Audio/WaveTable/WaveTableGenerator.h"
2020-06-13 10:56:20 +02:00
std::shared_ptr<AudioConfig> AudioConfig::m_instance;
2020-07-09 16:31:33 +02:00
std::unordered_map<std::string, std::string> AudioConfig::m_instances;
float AudioConfig::getSampleRate ()
{
return m_sampleRate;
}
void AudioConfig::setSampleRate (float _sampleRate)
{
if (m_sampleRate != _sampleRate)
{
m_sampleRate = _sampleRate;
m_needToReInit = true;
}
}
float AudioConfig::getBufferSize ()
{
return m_bufferSize;
}
void AudioConfig::setBufferSize (float _bufferSize)
{
m_bufferSize = _bufferSize;
}
bool AudioConfig::isNeedToReInit () const
{
return m_needToReInit;
}
void AudioConfig::setNeedToReInit (bool _needToReInit)
{
m_needToReInit = _needToReInit;
}
std::shared_ptr<AudioConfig> AudioConfig::getInstance ()
{
2020-06-13 10:56:20 +02:00
if (AudioConfig::m_instance == nullptr)
2020-07-09 16:31:33 +02:00
AudioConfig::m_instance = std::make_shared<AudioConfig> ();
return m_instance;
}
2020-06-13 10:56:20 +02:00
void AudioConfig::initWaveTables ()
{
2020-07-09 16:31:33 +02:00
WaveTableGenerator::getInstance ().init ();
2020-06-13 10:56:20 +02:00
}
AudioConfig::~AudioConfig ()
{
2020-07-09 16:31:33 +02:00
WaveTableGenerator::getInstance ().cleanTables ();
}
AudioConfig::AudioConfig ()
{
}
void AudioConfig::registerInstance (std::string id)
{
m_instances[id] = id;
}
void AudioConfig::deleteInstance (std::string id)
{
m_instances.erase (id);
if (m_instances.size () == 0)
{
m_instance.reset ();
}
2020-06-13 10:56:20 +02:00
}