Chris@55: #include "portaudiocpp/InterfaceCallbackStream.hxx" Chris@55: Chris@55: #include "portaudiocpp/StreamParameters.hxx" Chris@55: #include "portaudiocpp/Exception.hxx" Chris@55: #include "portaudiocpp/CallbackInterface.hxx" Chris@55: Chris@55: namespace portaudio Chris@55: { Chris@55: Chris@55: // ---------------------------------------------------------------------------------== Chris@55: Chris@55: InterfaceCallbackStream::InterfaceCallbackStream() Chris@55: { Chris@55: } Chris@55: Chris@55: InterfaceCallbackStream::InterfaceCallbackStream(const StreamParameters ¶meters, CallbackInterface &instance) Chris@55: { Chris@55: open(parameters, instance); Chris@55: } Chris@55: Chris@55: InterfaceCallbackStream::~InterfaceCallbackStream() Chris@55: { Chris@55: try Chris@55: { Chris@55: close(); Chris@55: } Chris@55: catch (...) Chris@55: { Chris@55: // ignore all errors Chris@55: } Chris@55: } Chris@55: Chris@55: // ---------------------------------------------------------------------------------== Chris@55: Chris@55: void InterfaceCallbackStream::open(const StreamParameters ¶meters, CallbackInterface &instance) Chris@55: { Chris@55: PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), Chris@55: parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), &impl::callbackInterfaceToPaCallbackAdapter, static_cast(&instance)); Chris@55: Chris@55: if (err != paNoError) Chris@55: { Chris@55: throw PaException(err); Chris@55: } Chris@55: } Chris@55: }