this is necessary in order to get Furnace to build using CMake 4.0. you should do: git submodule deinit extern/portaudio
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef INCLUDED_PORTAUDIO_SYSTEM_HXX
 | 
						|
#define INCLUDED_PORTAUDIO_SYSTEM_HXX
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#include "portaudio.h"
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
// Forward declaration(s):
 | 
						|
namespace portaudio
 | 
						|
{
 | 
						|
    class Device;
 | 
						|
    class Stream;
 | 
						|
    class HostApi;
 | 
						|
}
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
// Declaration(s):
 | 
						|
namespace portaudio
 | 
						|
{
 | 
						|
 | 
						|
 | 
						|
    //////
 | 
						|
    /// @brief System singleton which represents the PortAudio system.
 | 
						|
    ///
 | 
						|
    /// The System is used to initialize/terminate PortAudio and provide
 | 
						|
    /// a single access point to the PortAudio System (instance()).
 | 
						|
    /// It can be used to iterate through all HostApi 's in the System as
 | 
						|
    /// well as all devices in the System. It also provides some utility
 | 
						|
    /// functionality of PortAudio.
 | 
						|
    ///
 | 
						|
    /// Terminating the System will also abort and close the open streams.
 | 
						|
    /// The Stream objects will need to be deallocated by the client though
 | 
						|
    /// (it's usually a good idea to have them cleaned up automatically).
 | 
						|
    //////
 | 
						|
    class System
 | 
						|
    {
 | 
						|
    public:
 | 
						|
        class HostApiIterator; // forward declaration
 | 
						|
        class DeviceIterator; // forward declaration
 | 
						|
 | 
						|
        // -------------------------------------------------------------------------------
 | 
						|
 | 
						|
        static int version();
 | 
						|
        static const char *versionText();
 | 
						|
 | 
						|
        static void initialize();
 | 
						|
        static void terminate();
 | 
						|
 | 
						|
        static System &instance();
 | 
						|
        static bool exists();
 | 
						|
 | 
						|
        // -------------------------------------------------------------------------------
 | 
						|
 | 
						|
        // host apis:
 | 
						|
        HostApiIterator hostApisBegin();
 | 
						|
        HostApiIterator hostApisEnd();
 | 
						|
 | 
						|
        HostApi &defaultHostApi();
 | 
						|
 | 
						|
        HostApi &hostApiByTypeId(PaHostApiTypeId type);
 | 
						|
        HostApi &hostApiByIndex(PaHostApiIndex index);
 | 
						|
 | 
						|
        int hostApiCount();
 | 
						|
 | 
						|
        // -------------------------------------------------------------------------------
 | 
						|
 | 
						|
        // devices:
 | 
						|
        DeviceIterator devicesBegin();
 | 
						|
        DeviceIterator devicesEnd();
 | 
						|
 | 
						|
        Device &defaultInputDevice();
 | 
						|
        Device &defaultOutputDevice();
 | 
						|
 | 
						|
        Device &deviceByIndex(PaDeviceIndex index);
 | 
						|
 | 
						|
        int deviceCount();
 | 
						|
 | 
						|
        static Device &nullDevice();
 | 
						|
 | 
						|
        // -------------------------------------------------------------------------------
 | 
						|
 | 
						|
        // misc:
 | 
						|
        void sleep(long msec);
 | 
						|
        int sizeOfSample(PaSampleFormat format);
 | 
						|
 | 
						|
    private:
 | 
						|
        System();
 | 
						|
        ~System();
 | 
						|
 | 
						|
        static System *instance_;
 | 
						|
        static int initCount_;
 | 
						|
 | 
						|
        static HostApi **hostApis_;
 | 
						|
        static Device **devices_;
 | 
						|
 | 
						|
        static Device *nullDevice_;
 | 
						|
    };
 | 
						|
 | 
						|
 | 
						|
} // namespace portaudio
 | 
						|
 | 
						|
 | 
						|
#endif // INCLUDED_PORTAUDIO_SYSTEM_HXX
 |