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