annotate src/portaudio/bindings/cpp/include/portaudiocpp/System.hxx @ 4:e13257ea84a4

Add bzip2, zlib, liblo, portaudio sources
author Chris Cannam
date Wed, 20 Mar 2013 13:59:52 +0000
parents
children
rev   line source
Chris@4 1 #ifndef INCLUDED_PORTAUDIO_SYSTEM_HXX
Chris@4 2 #define INCLUDED_PORTAUDIO_SYSTEM_HXX
Chris@4 3
Chris@4 4 // ---------------------------------------------------------------------------------------
Chris@4 5
Chris@4 6 #include "portaudio.h"
Chris@4 7
Chris@4 8 // ---------------------------------------------------------------------------------------
Chris@4 9
Chris@4 10 // Forward declaration(s):
Chris@4 11 namespace portaudio
Chris@4 12 {
Chris@4 13 class Device;
Chris@4 14 class Stream;
Chris@4 15 class HostApi;
Chris@4 16 }
Chris@4 17
Chris@4 18 // ---------------------------------------------------------------------------------------
Chris@4 19
Chris@4 20 // Declaration(s):
Chris@4 21 namespace portaudio
Chris@4 22 {
Chris@4 23
Chris@4 24
Chris@4 25 //////
Chris@4 26 /// @brief System singleton which represents the PortAudio system.
Chris@4 27 ///
Chris@4 28 /// The System is used to initialize/terminate PortAudio and provide
Chris@4 29 /// a single acccess point to the PortAudio System (instance()).
Chris@4 30 /// It can be used to iterate through all HostApi 's in the System as
Chris@4 31 /// well as all devices in the System. It also provides some utility
Chris@4 32 /// functionality of PortAudio.
Chris@4 33 ///
Chris@4 34 /// Terminating the System will also abort and close the open streams.
Chris@4 35 /// The Stream objects will need to be deallocated by the client though
Chris@4 36 /// (it's usually a good idea to have them cleaned up automatically).
Chris@4 37 //////
Chris@4 38 class System
Chris@4 39 {
Chris@4 40 public:
Chris@4 41 class HostApiIterator; // forward declaration
Chris@4 42 class DeviceIterator; // forward declaration
Chris@4 43
Chris@4 44 // -------------------------------------------------------------------------------
Chris@4 45
Chris@4 46 static int version();
Chris@4 47 static const char *versionText();
Chris@4 48
Chris@4 49 static void initialize();
Chris@4 50 static void terminate();
Chris@4 51
Chris@4 52 static System &instance();
Chris@4 53 static bool exists();
Chris@4 54
Chris@4 55 // -------------------------------------------------------------------------------
Chris@4 56
Chris@4 57 // host apis:
Chris@4 58 HostApiIterator hostApisBegin();
Chris@4 59 HostApiIterator hostApisEnd();
Chris@4 60
Chris@4 61 HostApi &defaultHostApi();
Chris@4 62
Chris@4 63 HostApi &hostApiByTypeId(PaHostApiTypeId type);
Chris@4 64 HostApi &hostApiByIndex(PaHostApiIndex index);
Chris@4 65
Chris@4 66 int hostApiCount();
Chris@4 67
Chris@4 68 // -------------------------------------------------------------------------------
Chris@4 69
Chris@4 70 // devices:
Chris@4 71 DeviceIterator devicesBegin();
Chris@4 72 DeviceIterator devicesEnd();
Chris@4 73
Chris@4 74 Device &defaultInputDevice();
Chris@4 75 Device &defaultOutputDevice();
Chris@4 76
Chris@4 77 Device &deviceByIndex(PaDeviceIndex index);
Chris@4 78
Chris@4 79 int deviceCount();
Chris@4 80
Chris@4 81 static Device &nullDevice();
Chris@4 82
Chris@4 83 // -------------------------------------------------------------------------------
Chris@4 84
Chris@4 85 // misc:
Chris@4 86 void sleep(long msec);
Chris@4 87 int sizeOfSample(PaSampleFormat format);
Chris@4 88
Chris@4 89 private:
Chris@4 90 System();
Chris@4 91 ~System();
Chris@4 92
Chris@4 93 static System *instance_;
Chris@4 94 static int initCount_;
Chris@4 95
Chris@4 96 static HostApi **hostApis_;
Chris@4 97 static Device **devices_;
Chris@4 98
Chris@4 99 static Device *nullDevice_;
Chris@4 100 };
Chris@4 101
Chris@4 102
Chris@4 103 } // namespace portaudio
Chris@4 104
Chris@4 105
Chris@4 106 #endif // INCLUDED_PORTAUDIO_SYSTEM_HXX
Chris@4 107