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