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