Files
squeezelite-esp32/components/spotify/cspot/bell/main/audio-containers/include/AudioContainer.h
2023-05-06 23:50:26 +02:00

28 lines
579 B
C++

#pragma once
#include <cstddef>
#include <cstring>
#include <istream>
#include "CodecType.h"
#include "StreamInfo.h"
namespace bell {
class AudioContainer {
protected:
std::istream& istr;
uint32_t toConsume = 0;
public:
bell::SampleRate sampleRate;
bell::BitWidth bitWidth;
int channels;
AudioContainer(std::istream& istr) : istr(istr) {}
virtual std::byte* readSample(uint32_t& len) = 0;
void consumeBytes(uint32_t bytes) { this->toConsume = bytes; }
virtual void parseSetupData() = 0;
virtual bell::AudioCodec getCodec() = 0;
};
} // namespace bell