blocking i/o not implemented for asio (committed needs testing see #148)
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
There is now a new ticket covering testing this:
#148 -- ASIO blocking i/o implementation needs testing
Leave a comment
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.
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)
> 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)