void audioStreamer_asiosim::tp() { while (!m_done) { int a=in->Read(m_buf,m_bufsize); if (a>0) { int spllen=a*4/(m_bps); // a*8/m_bps/nch float *inptrs[2], *outptrs[2]; inptrs[0]=m_procbuf; inptrs[1]=m_procbuf+spllen; outptrs[0]=m_procbuf+spllen*2; outptrs[1]=m_procbuf+spllen*3; pcmToFloats(m_buf,spllen,m_bps,2,inptrs[0],1); pcmToFloats(m_buf+(m_bps/8),spllen,m_bps,2,inptrs[1],1); if (m_splproc) m_splproc(inptrs,2,outptrs,2,spllen,m_srate); floatsToPcm(outptrs[0],1,spllen,m_buf,m_bps,2); floatsToPcm(outptrs[1],1,spllen,m_buf+(m_bps/8),m_bps,2); out->Write(m_buf,a); } else { struct timespec s={0,1000*1000}; // sleep 1ms; nanosleep(&s,NULL); } } }
void audioStreamer_win32_asiosim::tp() { while (!m_done) { int a=in->Read(m_buf,m_bufsize); if (a>0) { int spllen=a*4/(m_bps); // a*8/m_bps/nch float *inptrs[2], *outptrs[2]; inptrs[0]=m_procbuf; inptrs[1]=m_procbuf+spllen; outptrs[0]=m_procbuf+spllen*2; outptrs[1]=m_procbuf+spllen*3; pcmToFloats(m_buf,spllen,m_bps,2,inptrs[0],1); pcmToFloats(m_buf+(m_bps/8),spllen,m_bps,2,inptrs[1],1); if (m_splproc) m_splproc(inptrs,2,outptrs,2,spllen,m_srate); floatsToPcm(outptrs[0],1,spllen,m_buf,m_bps,2); floatsToPcm(outptrs[1],1,spllen,m_buf+(m_bps/8),m_bps,2); out->Write(m_buf,a); } else { Sleep(1); } } }