42 lines
777 B
C
42 lines
777 B
C
#ifndef AUDIODATA_H
|
|
#define AUDIODATA_H
|
|
|
|
#define min(a,b) ( (a<b) ? (a) : (b) )
|
|
|
|
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;
|
|
|
|
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
|