this is necessary in order to get Furnace to build using CMake 4.0. you should do: git submodule deinit extern/portaudio
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef INCLUDED_PORTAUDIO_DEVICE_HXX
 | 
						|
#define INCLUDED_PORTAUDIO_DEVICE_HXX
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#include <iterator>
 | 
						|
 | 
						|
#include "portaudio.h"
 | 
						|
 | 
						|
#include "portaudiocpp/SampleDataFormat.hxx"
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
// Forward declaration(s):
 | 
						|
namespace portaudio
 | 
						|
{
 | 
						|
    class System;
 | 
						|
    class HostApi;
 | 
						|
}
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
// Declaration(s):
 | 
						|
namespace portaudio
 | 
						|
{
 | 
						|
 | 
						|
    //////
 | 
						|
    /// @brief Class which represents a PortAudio device in the System.
 | 
						|
    ///
 | 
						|
    /// A single physical device in the system may have multiple PortAudio
 | 
						|
    /// Device representations using different HostApi 's though. A Device
 | 
						|
    /// can be half-duplex or full-duplex. A half-duplex Device can be used
 | 
						|
    /// to create a half-duplex Stream. A full-duplex Device can be used to
 | 
						|
    /// create a full-duplex Stream. If supported by the HostApi, two
 | 
						|
    /// half-duplex Devices can even be used to create a full-duplex Stream.
 | 
						|
    ///
 | 
						|
    /// Note that Device objects are very light-weight and can be passed around
 | 
						|
    /// by-value.
 | 
						|
    //////
 | 
						|
    class Device
 | 
						|
    {
 | 
						|
    public:
 | 
						|
        // query info: name, max in channels, max out channels,
 | 
						|
        // default low/high input/output latency, default sample rate
 | 
						|
        PaDeviceIndex index() const;
 | 
						|
        const char *name() const;
 | 
						|
        int maxInputChannels() const;
 | 
						|
        int maxOutputChannels() const;
 | 
						|
        PaTime defaultLowInputLatency() const;
 | 
						|
        PaTime defaultHighInputLatency() const;
 | 
						|
        PaTime defaultLowOutputLatency() const;
 | 
						|
        PaTime defaultHighOutputLatency() const;
 | 
						|
        double defaultSampleRate() const;
 | 
						|
 | 
						|
        bool isInputOnlyDevice() const; // extended
 | 
						|
        bool isOutputOnlyDevice() const; // extended
 | 
						|
        bool isFullDuplexDevice() const; // extended
 | 
						|
        bool isSystemDefaultInputDevice() const; // extended
 | 
						|
        bool isSystemDefaultOutputDevice() const; // extended
 | 
						|
        bool isHostApiDefaultInputDevice() const; // extended
 | 
						|
        bool isHostApiDefaultOutputDevice() const; // extended
 | 
						|
 | 
						|
        bool operator==(const Device &rhs) const;
 | 
						|
        bool operator!=(const Device &rhs) const;
 | 
						|
 | 
						|
        // host api reference
 | 
						|
        HostApi &hostApi();
 | 
						|
        const HostApi &hostApi() const;
 | 
						|
 | 
						|
    private:
 | 
						|
        PaDeviceIndex index_;
 | 
						|
        const PaDeviceInfo *info_;
 | 
						|
 | 
						|
    private:
 | 
						|
        friend class System;
 | 
						|
 | 
						|
        explicit Device(PaDeviceIndex index);
 | 
						|
        ~Device();
 | 
						|
 | 
						|
        Device(const Device &); // non-copyable
 | 
						|
        Device &operator=(const Device &); // non-copyable
 | 
						|
    };
 | 
						|
 | 
						|
    // -----------------------------------------------------------------------------------
 | 
						|
 | 
						|
} // namespace portaudio
 | 
						|
 | 
						|
// ---------------------------------------------------------------------------------------
 | 
						|
 | 
						|
#endif // INCLUDED_PORTAUDIO_DEVICE_HXX
 |