cannam@89: #include "portaudiocpp/CFunCallbackStream.hxx" cannam@89: cannam@89: #include "portaudiocpp/StreamParameters.hxx" cannam@89: #include "portaudiocpp/Exception.hxx" cannam@89: cannam@89: namespace portaudio cannam@89: { cannam@89: CFunCallbackStream::CFunCallbackStream() cannam@89: { cannam@89: } cannam@89: cannam@89: CFunCallbackStream::CFunCallbackStream(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) cannam@89: { cannam@89: open(parameters, funPtr, userData); cannam@89: } cannam@89: cannam@89: CFunCallbackStream::~CFunCallbackStream() 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 CFunCallbackStream::open(const StreamParameters ¶meters, PaStreamCallback *funPtr, void *userData) cannam@89: { cannam@89: PaError err = Pa_OpenStream(&stream_, parameters.inputParameters().paStreamParameters(), parameters.outputParameters().paStreamParameters(), cannam@89: parameters.sampleRate(), parameters.framesPerBuffer(), parameters.flags(), funPtr, userData); cannam@89: cannam@89: if (err != paNoError) cannam@89: { cannam@89: throw PaException(err); cannam@89: } cannam@89: } cannam@89: }