Files
MuditaOS/module-audio/Audio/encoder/Encoder.cpp
Radoslaw Wicik a8573a404c Apply new style
2020-03-17 10:03:16 +01:00

56 lines
1.1 KiB
C++

/*
* @file Encoder.cpp
* @author Mateusz Piesta (mateusz.piesta@mudita.com)
* @date 23.07.19
* @brief
* @copyright Copyright (C) 2019 mudita.com
* @details
*/
#include "Encoder.hpp"
#include "EncoderWAV.hpp"
#include <stdint.h>
#include <string>
#include <memory>
#include <cstring>
namespace audio
{
Encoder::Encoder(const char *fileName, const Format &frmt) : filePath(fileName), format(frmt)
{
fd = vfs.fopen(fileName, "w");
if (fd == NULL) {
return;
}
isInitialized = true;
}
Encoder::~Encoder()
{
if (fd) {
vfs.fclose(fd);
}
}
std::unique_ptr<Encoder> Encoder::Create(const char *file, const Format &frmt)
{
std::unique_ptr<Encoder> enc;
if ((strstr(file, ".wav") != NULL) || (strstr(file, ".WAV") != NULL)) {
enc = std::make_unique<EncoderWAV>(file, frmt);
}
else {
return nullptr;
}
if (enc->isInitialized) {
return enc;
}
else {
return nullptr;
}
}
} // namespace audio