annotate src/portaudio_20140130/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx @ 39:7ddb4fc30dac

Current stable PortAudio source
author Chris Cannam
date Tue, 18 Oct 2016 13:11:05 +0100
parents
children
rev   line source
Chris@39 1 #include "portaudiocpp/AsioDeviceAdapter.hxx"
Chris@39 2
Chris@39 3 #include "portaudio.h"
Chris@39 4 #include "pa_asio.h"
Chris@39 5
Chris@39 6 #include "portaudiocpp/Device.hxx"
Chris@39 7 #include "portaudiocpp/HostApi.hxx"
Chris@39 8 #include "portaudiocpp/Exception.hxx"
Chris@39 9
Chris@39 10 namespace portaudio
Chris@39 11 {
Chris@39 12 AsioDeviceAdapter::AsioDeviceAdapter(Device &device)
Chris@39 13 {
Chris@39 14 if (device.hostApi().typeId() != paASIO)
Chris@39 15 throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
Chris@39 16
Chris@39 17 device_ = &device;
Chris@39 18
Chris@39 19 PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_,
Chris@39 20 &preferredBufferSize_, &granularity_);
Chris@39 21
Chris@39 22 if (err != paNoError)
Chris@39 23 throw PaException(err);
Chris@39 24
Chris@39 25 }
Chris@39 26
Chris@39 27 Device &AsioDeviceAdapter::device()
Chris@39 28 {
Chris@39 29 return *device_;
Chris@39 30 }
Chris@39 31
Chris@39 32 long AsioDeviceAdapter::minBufferSize() const
Chris@39 33 {
Chris@39 34 return minBufferSize_;
Chris@39 35 }
Chris@39 36
Chris@39 37 long AsioDeviceAdapter::maxBufferSize() const
Chris@39 38 {
Chris@39 39 return maxBufferSize_;
Chris@39 40 }
Chris@39 41
Chris@39 42 long AsioDeviceAdapter::preferredBufferSize() const
Chris@39 43 {
Chris@39 44 return preferredBufferSize_;
Chris@39 45 }
Chris@39 46
Chris@39 47 long AsioDeviceAdapter::granularity() const
Chris@39 48 {
Chris@39 49 return granularity_;
Chris@39 50 }
Chris@39 51
Chris@39 52 void AsioDeviceAdapter::showControlPanel(void *systemSpecific)
Chris@39 53 {
Chris@39 54 PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific);
Chris@39 55
Chris@39 56 if (err != paNoError)
Chris@39 57 throw PaException(err);
Chris@39 58 }
Chris@39 59
Chris@39 60 const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const
Chris@39 61 {
Chris@39 62 const char *channelName;
Chris@39 63 PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName);
Chris@39 64
Chris@39 65 if (err != paNoError)
Chris@39 66 throw PaException(err);
Chris@39 67
Chris@39 68 return channelName;
Chris@39 69 }
Chris@39 70
Chris@39 71 const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const
Chris@39 72 {
Chris@39 73 const char *channelName;
Chris@39 74 PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName);
Chris@39 75
Chris@39 76 if (err != paNoError)
Chris@39 77 throw PaException(err);
Chris@39 78
Chris@39 79 return channelName;
Chris@39 80 }
Chris@39 81 }
Chris@39 82
Chris@39 83