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