Open PortAudio-admin opened 17 years ago
Comment by @RossBencina
Sven Fischer from Institute of Hearing Technology and Audiology (IHA) http://www.hoertechnik-audiologie.de has sent in a patch for this (attached to this ticket). I'm working on merging it.
Comment by @RossBencina
Progress made. I've just checked in a version of Sven's patch to allow the standard portaudio ringbuffer to handle multi-byte elements. see r1346
Comment by @RossBencina
I have a final patch from Sven. I just need to merge and review it. No reason why this shouldn't go in before RC1
Comment by @RossBencina
Checked in Sven Fischer's implementation of this in r1363
Still need to ensure we havn't broken the build systems too much. Waiting for some feedback and testing.
Comment by @RossBencina
The following build files still need to be updated to included pa_ringbuffer.c
File bindings\cpp\build\vc6\devs_example.dsp: SOURCE=........\pa_asio\pa_asio.cpp File bindings\cpp\build\vc6\sine_example.dsp: SOURCE=........\pa_asio\pa_asio.cpp
File bindings\cpp\build\vc7_1\devs_example.vcproj: RelativePath="........\src\hostapi\asio\pa_asio.cpp"> File bindings\cpp\build\vc7_1\sine_example.vcproj: RelativePath="........\src\hostapi\asio\pa_asio.cpp">
File build\dev-cpp\Makefile-dll: ./pa_asio.o: ../../pa_asio/pa_asio.cpp $(CPP) -c ../../pa_asio/pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) File build\dev-cpp\Makefile-static: ./pa_asio.o: ../../pa_asio/pa_asio.cpp $(CPP) -c ../../pa_asio/pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS)
File build\dev-cpp\portaudio-dll.dev: FileName=....\pa_asio\pa_asio.cpp BuildCmd=$(CPP) -c pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS) File build\dev-cpp\portaudio-static.dev: FileName=....\pa_asio\pa_asio.cpp BuildCmd=$(CPP) -c pa_asio.cpp -o ./pa_asio.o $(CXXFLAGS)
Comment by @RossBencina
The blocking API needs to be estensively tested QAed.
Code review is needed for ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable in pa_asio.cpp.
Comment by @RossBencina
TRAC migration: propagating ticket status from TRAC
Issue created by @RossBencina
ReadStream and WriteStream are not implemented for ASIO. It is necessary to set up separate ring buffers to implement this. If the Read or Write functions were blocked waiting to input or output data to the FIFOs the ASIO callback could set an event/condition variable to wake them up.
There is now a new ticket covering testing this:
148 -- ASIO blocking i/o implementation needs testing