mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-06 23:02:42 +02:00
Ensures that all files that Git considers to be text will have normalized (LF) line endings in the repository. When core.eol is set to native (which is the default), Git will convert the line endings of normalized files in your working directory back to your platform's native line ending. See also https://git-scm.com/docs/gitattributes
84 lines
1.7 KiB
C++
84 lines
1.7 KiB
C++
#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;
|
|
}
|
|
}
|
|
|
|
|