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