To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.
root / src / portaudio_20161030_catalina_patch / bindings / cpp / source / portaudiocpp / AsioDeviceAdapter.cxx @ 164:9fa11135915a
History | View | Annotate | Download (1.71 KB)
| 1 |
#include "portaudiocpp/AsioDeviceAdapter.hxx" |
|---|---|
| 2 |
|
| 3 |
#include "portaudio.h" |
| 4 |
#include "pa_asio.h" |
| 5 |
|
| 6 |
#include "portaudiocpp/Device.hxx" |
| 7 |
#include "portaudiocpp/HostApi.hxx" |
| 8 |
#include "portaudiocpp/Exception.hxx" |
| 9 |
|
| 10 |
namespace portaudio
|
| 11 |
{
|
| 12 |
AsioDeviceAdapter::AsioDeviceAdapter(Device &device) |
| 13 |
{
|
| 14 |
if (device.hostApi().typeId() != paASIO)
|
| 15 |
throw PaCppException(PaCppException::UNABLE_TO_ADAPT_DEVICE);
|
| 16 |
|
| 17 |
device_ = &device; |
| 18 |
|
| 19 |
PaError err = PaAsio_GetAvailableLatencyValues(device_->index(), &minBufferSize_, &maxBufferSize_, |
| 20 |
&preferredBufferSize_, &granularity_); |
| 21 |
|
| 22 |
if (err != paNoError)
|
| 23 |
throw PaException(err);
|
| 24 |
|
| 25 |
} |
| 26 |
|
| 27 |
Device &AsioDeviceAdapter::device() |
| 28 |
{
|
| 29 |
return *device_;
|
| 30 |
} |
| 31 |
|
| 32 |
long AsioDeviceAdapter::minBufferSize() const |
| 33 |
{
|
| 34 |
return minBufferSize_;
|
| 35 |
} |
| 36 |
|
| 37 |
long AsioDeviceAdapter::maxBufferSize() const |
| 38 |
{
|
| 39 |
return maxBufferSize_;
|
| 40 |
} |
| 41 |
|
| 42 |
long AsioDeviceAdapter::preferredBufferSize() const |
| 43 |
{
|
| 44 |
return preferredBufferSize_;
|
| 45 |
} |
| 46 |
|
| 47 |
long AsioDeviceAdapter::granularity() const |
| 48 |
{
|
| 49 |
return granularity_;
|
| 50 |
} |
| 51 |
|
| 52 |
void AsioDeviceAdapter::showControlPanel(void *systemSpecific) |
| 53 |
{
|
| 54 |
PaError err = PaAsio_ShowControlPanel(device_->index(), systemSpecific); |
| 55 |
|
| 56 |
if (err != paNoError)
|
| 57 |
throw PaException(err);
|
| 58 |
} |
| 59 |
|
| 60 |
const char *AsioDeviceAdapter::inputChannelName(int channelIndex) const |
| 61 |
{
|
| 62 |
const char *channelName; |
| 63 |
PaError err = PaAsio_GetInputChannelName(device_->index(), channelIndex, &channelName); |
| 64 |
|
| 65 |
if (err != paNoError)
|
| 66 |
throw PaException(err);
|
| 67 |
|
| 68 |
return channelName;
|
| 69 |
} |
| 70 |
|
| 71 |
const char *AsioDeviceAdapter::outputChannelName(int channelIndex) const |
| 72 |
{
|
| 73 |
const char *channelName; |
| 74 |
PaError err = PaAsio_GetOutputChannelName(device_->index(), channelIndex, &channelName); |
| 75 |
|
| 76 |
if (err != paNoError)
|
| 77 |
throw PaException(err);
|
| 78 |
|
| 79 |
return channelName;
|
| 80 |
} |
| 81 |
} |
| 82 |
|
| 83 |
|