File WaveTableLoader.h¶
File List > external-docs > libDaisy > src > util > WaveTableLoader.h
Go to the documentation of this file
Source Code¶
#pragma once
#include "fatfs.h"
#include "util/wav_format.h"
namespace daisy
{
class WaveTableLoader
{
public:
enum class Result
{
OK,
ERR_TABLE_INFO_OVERFLOW,
ERR_FILE_READ,
ERR_GENERIC,
};
WaveTableLoader() {}
~WaveTableLoader() {}
void Init(float *mem, size_t mem_size);
Result SetWaveTableInfo(size_t samps, size_t count);
Result Import(const char *filename);
float *GetTable(size_t idx);
private:
static constexpr int kWorkspaceSize = 1024;
float * buf_;
size_t buf_size_;
WAV_FormatTypeDef header_;
size_t samps_per_table_;
size_t num_tables_;
int32_t workspace[kWorkspaceSize];
FIL fp_;
};
} // namespace daisy