annotate src/portaudio/bindings/cpp/source/portaudiocpp/AsioDeviceAdapter.cxx @ 19:891f60ab2af1

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