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