forked from W4D/soundcube-firmware
more wave file parsing WIP -> weiter in OF
This commit is contained in:
@ -424,20 +424,5 @@ void setup1(){
|
||||
}
|
||||
|
||||
void loop1(){
|
||||
if(streams_loaded) {
|
||||
for (int i = 0; i < NSTREAMS; i++) {
|
||||
if(!ringbuffer[i].isFull()){
|
||||
int cnt = 0;
|
||||
while (!ringbuffer[i].isFull() && cnt < 10000) {
|
||||
uint8_t samplebyte[2];
|
||||
streams[i].read(samplebyte, 2);
|
||||
if(!streams[i].available()) streams[i].seek(44, SeekSet);
|
||||
|
||||
int16_t sample = (samplebyte[1] << 8) + samplebyte[0];
|
||||
ringbuffer[i].push(sample);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -64,6 +64,18 @@ struct WaveFile{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool readblock(int16_t samplebuffer[]){
|
||||
uint8_t samplebyte[blockalign];
|
||||
|
||||
file.read(samplebyte, blockalign);
|
||||
if(!file.available() && loop) file.seek(44, SeekSet);
|
||||
|
||||
int16_t sample = (samplebyte[1] << 8) + samplebyte[0];
|
||||
ringbuffer[i].push(sample);
|
||||
|
||||
}
|
||||
|
||||
bool loop = false;
|
||||
uint16_t format = 0;
|
||||
uint32_t length = 0;
|
||||
uint16_t channels = 0;
|
||||
@ -97,5 +109,18 @@ class WaveStream{
|
||||
|
||||
private:
|
||||
WaveFile wavefiles[8];
|
||||
|
||||
void stream(){
|
||||
for (int i = 0; i < NSTREAMS; i++) {
|
||||
if(!wavefiles[i].buffer.isFull()){
|
||||
int cnt = 0;
|
||||
while (!wavefiles[i].buffer.isFull() && cnt < 10000) {
|
||||
wavefiles[i].readblock(samplebyte);
|
||||
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user