Files
MuditaOS/module-audio/Audio/encoder/Encoder.hpp
Bartosz Cichocki 50f28e8f19 [EGD-4270] updated test API, added sending message case in test harness (#1042)
[EGD-4270] build fix for GCC 10

Co-authored-by: SP2FET <bartosz.cichocki@mudita.com>
2020-11-19 13:02:06 +01:00

53 lines
1.0 KiB
C++

// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
#include <memory>
#include <cstdio>
#include <string>
namespace audio
{
class Encoder
{
public:
struct Format
{
uint32_t chanNr;
uint32_t sampleRate;
};
static std::unique_ptr<Encoder> Create(const char *file, const Format &frmt);
Encoder(const char *file, const Format &frmt);
virtual ~Encoder();
virtual uint32_t Encode(uint32_t samplesToWrite, int16_t *pcmData) = 0;
float getCurrentPosition()
{
return position;
}
uint32_t GetFileSize()
{
return fileSize;
}
const Format format;
protected:
float position = 0;
std::FILE *fd = nullptr;
uint32_t fileSize = 0;
std::string filePath;
bool isInitialized = false;
};
} // namespace audio