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