int main() { AudioServer server; int channel; MonAPI::Stream stream; struct audio_data_format format = {0, 2, 16, 44100}; char buf[4096]; FILE *fp = fopen("/APPS/TEST.RAW", "r"); channel = server.createChannel(0); server.setStream(channel, stream.handle()); // dputs("Set stream"); server.setFormat(channel, &format); // dputs("Set format"); render(buf, sizeof(buf)); stream.write(buf, sizeof(buf)); render(buf, sizeof(buf)); stream.write(buf, sizeof(buf)); server.start(channel); // dputs("Start"); while(1) //for( int i = 0 ; i < 44100*2*2*3 ; i+= sizeof(buf) ) { //render(buf, sizeof(buf)); size_t size = frender(fp, buf, sizeof(buf)); if (size == 0) break; stream.waitForWrite(); stream.write(buf, size); } server.wait(channel); server.stop(channel); fclose(fp); return 0; }
void frender_frames(fstage g, char *name_stem) { unsigned int frames = g.n_frames; int i; char tmp[16]; for (i=0; i<16; i++) tmp[i]='\0'; for (i=0; i<frames; i++){ sprintf(tmp, "%s%06d", name_stem, i); frender(g.c, g.compute_frame(i), tmp); } }