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(){
|
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;
|
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;
|
uint16_t format = 0;
|
||||||
uint32_t length = 0;
|
uint32_t length = 0;
|
||||||
uint16_t channels = 0;
|
uint16_t channels = 0;
|
||||||
@ -98,4 +110,17 @@ class WaveStream{
|
|||||||
private:
|
private:
|
||||||
WaveFile wavefiles[8];
|
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