46 lines
817 B
C
46 lines
817 B
C
#ifndef AUDIODATA_H
|
|
#define AUDIODATA_H
|
|
|
|
|
|
|
|
struct Data {
|
|
const uint8_t* data;
|
|
const uint32_t len;
|
|
Data(const uint8_t* data, const uint32_t len) : data(data), len(len) {;}
|
|
};
|
|
|
|
struct AudioData {
|
|
|
|
const uint8_t* data;
|
|
uint32_t available;
|
|
|
|
static uint32_t min(uint32_t a, uint32_t b) {
|
|
return (a<b) ? (a) : (b);
|
|
}
|
|
|
|
AudioData() : data(nullptr), available(0) {;}
|
|
|
|
AudioData(const uint8_t* data, const uint32_t len) : data(data), available(len) {
|
|
|
|
}
|
|
|
|
Data read(const uint32_t bytes) {
|
|
const uint32_t outBytes = min(bytes, this->available);
|
|
const uint8_t* ptr = this->data;
|
|
this->data += outBytes;
|
|
this->available -= outBytes;
|
|
return Data(ptr, outBytes);
|
|
}
|
|
|
|
uint32_t getNumBytesAvailable() const {
|
|
return available;
|
|
}
|
|
|
|
bool isEOF() const {
|
|
return available <= 0;
|
|
}
|
|
|
|
};
|
|
|
|
#endif // AUDIODATA_H
|