#ifndef ADPCMDECODER_H
#define ADPCMDECODER_H
#include <vector>
#include <cstdint>
class AdpcmDecoder
{
private:
int16_t predictor;
int8_t index;
public:
AdpcmDecoder(int16_t initialPredictor, int16_t initialStep);
int16_t getNextSample(uint8_t value);
std::vector<int16_t> decode(const std::vector<char>& data, uint32_t offset = 0, uint32_t length = 0);
static std::vector<int16_t> decodeFile(const std::vector<char>& data, uint32_t offset = 0, uint32_t length = 0);
};
#endif