Mercurial > hg > sv-dependency-builds
diff src/portaudio_20161030/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx @ 55:284acf908dcd
Add source for PortAudio stable v190600_20161030
author | Chris Cannam |
---|---|
date | Tue, 03 Jan 2017 13:44:07 +0000 |
parents | src/portaudio/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx@e13257ea84a4 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/portaudio_20161030/bindings/cpp/source/portaudiocpp/InterfaceCallbackStream.cxx Tue Jan 03 13:44:07 2017 +0000 @@ -0,0 +1,45 @@ +#include "portaudiocpp/InterfaceCallbackStream.hxx" + +#include "portaudiocpp/StreamParameters.hxx" +#include "portaudiocpp/Exception.hxx" +#include "portaudiocpp/CallbackInterface.hxx" + +namespace portaudio +{ + + // ---------------------------------------------------------------------------------== + + InterfaceCallbackStream::InterfaceCallbackStream() + { + } + + InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance) + { + open(parameters, instance); + } + + InterfaceCallbackStream::~InterfaceCallbackStream() + { + try + { + close(); + } + catch (...) + { + // ignore all errors + } + } + + // ---------------------------------------------------------------------------------== + + void InterfaceCallbackStream::open(const StreamParameters ¶meters, CallbackInterface &instance) + { + PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), + parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast<void *>(&instance)); + + if (err != paNoError) + { + throw PaException(err); + } + } +}