annotate src/portaudio_20140130/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx @ 169:223a55898ab9 tip default

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