Lightningbeam/nam-ffi/capi-override/NeuralAudioCApi.cpp

84 lines
1.7 KiB
C++

#include "NeuralAudioCApi.h"
#include "NeuralModel.h"
struct NeuralModel
{
NeuralAudio::NeuralModel* model;
};
#ifdef _WIN32
NeuralModel* CreateModelFromFile(const wchar_t* modelPath)
#else
NeuralModel* CreateModelFromFile(const char* modelPath)
#endif
{
NeuralModel* model = new NeuralModel();
model->model = NeuralAudio::NeuralModel::CreateFromFile(modelPath);
return model;
}
void DeleteModel(NeuralModel* model)
{
delete model->model;
delete model;
}
void SetLSTMLoadMode(int loadMode)
{
NeuralAudio::NeuralModel::SetLSTMLoadMode((NeuralAudio::EModelLoadMode)loadMode);
}
void SetWaveNetLoadMode(int loadMode)
{
NeuralAudio::NeuralModel::SetWaveNetLoadMode((NeuralAudio::EModelLoadMode)loadMode);
}
void SetAudioInputLevelDBu(float audioDBu)
{
NeuralAudio::NeuralModel::SetAudioInputLevelDBu(audioDBu);
}
void SetDefaultMaxAudioBufferSize(int maxSize)
{
NeuralAudio::NeuralModel::SetDefaultMaxAudioBufferSize(maxSize);
}
int GetLoadMode(NeuralModel* model)
{
return model->model->GetLoadMode();
}
bool IsStatic(NeuralModel* model)
{
return model->model->IsStatic();
}
void SetMaxAudioBufferSize(NeuralModel* model, int maxSize)
{
model->model->SetMaxAudioBufferSize(maxSize);
}
float GetRecommendedInputDBAdjustment(NeuralModel* model)
{
return model->model->GetRecommendedInputDBAdjustment();
}
float GetRecommendedOutputDBAdjustment(NeuralModel* model)
{
return model->model->GetRecommendedOutputDBAdjustment();
}
float GetSampleRate(NeuralModel* model)
{
return model->model->GetSampleRate();
}
void Process(NeuralModel* model, float* input, float* output, size_t numSamples)
{
model->model->Process(input, output, numSamples);
}