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.

Statistics Download as Zip
| Branch: | Tag: | Revision:

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