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 / include / portaudiocpp / PortAudioCpp.hxx @ 164:9fa11135915a
History | View | Annotate | Download (5.11 KB)
| 1 |
#ifndef INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX |
|---|---|
| 2 |
#define INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX |
| 3 |
|
| 4 |
// --------------------------------------------------------------------------------------- |
| 5 |
|
| 6 |
////// |
| 7 |
/// @mainpage PortAudioCpp |
| 8 |
/// |
| 9 |
/// <h1>PortAudioCpp - A Native C++ Binding of PortAudio V19</h1> |
| 10 |
/// <h2>PortAudio</h2> |
| 11 |
/// <p> |
| 12 |
/// PortAudio is a portable and mature C API for accessing audio hardware. It offers both callback-based and blocking |
| 13 |
/// style input and output, deals with sample data format conversions, dithering and much more. There are a large number |
| 14 |
/// of implementations available for various platforms including Windows MME, Windows DirectX, Windows and MacOS (Classic) |
| 15 |
/// ASIO, MacOS Classic SoundManager, MacOS X CoreAudio, OSS (Linux), Linux ALSA, JACK (MacOS X and Linux) and SGI Irix |
| 16 |
/// AL. Note that, currently not all of these implementations are equally complete or up-to-date (as PortAudio V19 is |
| 17 |
/// still in development). Because PortAudio has a C API, it can easily be called from a variety of other programming |
| 18 |
/// languages. |
| 19 |
/// </p> |
| 20 |
/// <h2>PortAudioCpp</h2> |
| 21 |
/// <p> |
| 22 |
/// Although, it is possible to use PortAudio's C API from within a C++ program, this is usually a little awkward |
| 23 |
/// as procedural and object-oriented paradigms need to be mixed. PortAudioCpp aims to resolve this by encapsulating |
| 24 |
/// PortAudio's C API to form an equivalent object-oriented C++ API. It provides a more natural integration of PortAudio |
| 25 |
/// into C++ programs as well as a more structured interface. PortAudio's concepts were preserved as much as possible and |
| 26 |
/// no additional features were added except for some `convenience methods'. |
| 27 |
/// </p> |
| 28 |
/// <p> |
| 29 |
/// PortAudioCpp's main features are: |
| 30 |
/// <ul> |
| 31 |
/// <li>Structured object model.</li> |
| 32 |
/// <li>C++ exception handling instead of C-style error return codes.</li> |
| 33 |
/// <li>Handling of callbacks using free functions (C and C++), static functions, member functions or instances of classes |
| 34 |
/// derived from a given interface.</li> |
| 35 |
/// <li>STL compliant iterators to host APIs and devices.</li> |
| 36 |
/// <li>Some additional convenience functions to more easily set up and use PortAudio.</li> |
| 37 |
/// </ul> |
| 38 |
/// </p> |
| 39 |
/// <p> |
| 40 |
/// PortAudioCpp requires a recent version of the PortAudio V19 source code. This can be obtained from CVS or as a snapshot |
| 41 |
/// from the website. The examples also require the ASIO 2 SDK which can be obtained from the Steinberg website. Alternatively, the |
| 42 |
/// examples can easily be modified to compile without needing ASIO. |
| 43 |
/// </p> |
| 44 |
/// <p> |
| 45 |
/// Supported platforms: |
| 46 |
/// <ul> |
| 47 |
/// <li>Microsoft Visual C++ 6.0, 7.0 (.NET 2002) and 7.1 (.NET 2003).</li> |
| 48 |
/// <li>GNU G++ 2.95 and G++ 3.3.</li> |
| 49 |
/// </ul> |
| 50 |
/// Other platforms should be easily supported as PortAudioCpp is platform-independent and (reasonably) C++ standard compliant. |
| 51 |
/// </p> |
| 52 |
/// <p> |
| 53 |
/// This documentation mainly provides information specific to PortAudioCpp. For a more complete explaination of all of the |
| 54 |
/// concepts used, please consult the PortAudio documentation. |
| 55 |
/// </p> |
| 56 |
/// <p> |
| 57 |
/// PortAudioCpp was developed by Merlijn Blaauw with many great suggestions and help from Ross Bencina. Ludwig Schwardt provided |
| 58 |
/// GNU/Linux build files and checked G++ compatibility. PortAudioCpp may be used under the same licensing, conditions and |
| 59 |
/// warranty as PortAudio. See <a href="http://www.portaudio.com/license.html">the PortAudio license</a> for more details. |
| 60 |
/// </p> |
| 61 |
/// <h2>Links</h2> |
| 62 |
/// <p> |
| 63 |
/// <a href="http://www.portaudio.com/">Official PortAudio site.</a><br> |
| 64 |
/// </p> |
| 65 |
////// |
| 66 |
|
| 67 |
// --------------------------------------------------------------------------------------- |
| 68 |
|
| 69 |
////// |
| 70 |
/// @namespace portaudio |
| 71 |
/// |
| 72 |
/// To avoid name collision, everything in PortAudioCpp is in the portaudio |
| 73 |
/// namespace. If this name is too long it's usually pretty safe to use an |
| 74 |
/// alias like ``namespace pa = portaudio;''. |
| 75 |
////// |
| 76 |
|
| 77 |
// --------------------------------------------------------------------------------------- |
| 78 |
|
| 79 |
////// |
| 80 |
/// @file PortAudioCpp.hxx |
| 81 |
/// An include-all header file (for lazy programmers and using pre-compiled headers). |
| 82 |
////// |
| 83 |
|
| 84 |
// --------------------------------------------------------------------------------------- |
| 85 |
|
| 86 |
#include "portaudio.h" |
| 87 |
|
| 88 |
#include "portaudiocpp/AutoSystem.hxx" |
| 89 |
#include "portaudiocpp/BlockingStream.hxx" |
| 90 |
#include "portaudiocpp/CallbackInterface.hxx" |
| 91 |
#include "portaudiocpp/CallbackStream.hxx" |
| 92 |
#include "portaudiocpp/CFunCallbackStream.hxx" |
| 93 |
#include "portaudiocpp/CppFunCallbackStream.hxx" |
| 94 |
#include "portaudiocpp/Device.hxx" |
| 95 |
#include "portaudiocpp/Exception.hxx" |
| 96 |
#include "portaudiocpp/HostApi.hxx" |
| 97 |
#include "portaudiocpp/InterfaceCallbackStream.hxx" |
| 98 |
#include "portaudiocpp/MemFunCallbackStream.hxx" |
| 99 |
#include "portaudiocpp/SampleDataFormat.hxx" |
| 100 |
#include "portaudiocpp/DirectionSpecificStreamParameters.hxx" |
| 101 |
#include "portaudiocpp/Stream.hxx" |
| 102 |
#include "portaudiocpp/StreamParameters.hxx" |
| 103 |
#include "portaudiocpp/System.hxx" |
| 104 |
#include "portaudiocpp/SystemDeviceIterator.hxx" |
| 105 |
#include "portaudiocpp/SystemHostApiIterator.hxx" |
| 106 |
|
| 107 |
// --------------------------------------------------------------------------------------- |
| 108 |
|
| 109 |
#endif // INCLUDED_PORTAUDIO_PORTAUDIOCPP_HXX |