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