annotate src/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx @ 107:71c914cf6201

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