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