Browse Source

Update RtAudio to 5.0.0

tags/1.9.8
falkTX 7 years ago
parent
commit
9b6917bdd8
3 changed files with 10207 additions and 10173 deletions
  1. +10163
    -10135
      source/modules/rtaudio/RtAudio.cpp
  2. +44
    -38
      source/modules/rtaudio/RtAudio.h
  3. +0
    -0
      source/modules/rtaudio/include/functiondiscoverykeys_devpkey.h

+ 10163
- 10135
source/modules/rtaudio/RtAudio.cpp
File diff suppressed because it is too large
View File


+ 44
- 38
source/modules/rtaudio/RtAudio.h View File

@@ -10,7 +10,7 @@
RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/ RtAudio WWW site: http://www.music.mcgill.ca/~gary/rtaudio/


RtAudio: realtime audio i/o C++ classes RtAudio: realtime audio i/o C++ classes
Copyright (c) 2001-2014 Gary P. Scavone
Copyright (c) 2001-2017 Gary P. Scavone


Permission is hereby granted, free of charge, to any person Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files obtaining a copy of this software and associated documentation files
@@ -45,11 +45,12 @@
#ifndef __RTAUDIO_H #ifndef __RTAUDIO_H
#define __RTAUDIO_H #define __RTAUDIO_H


#define RTAUDIO_VERSION "4.1.1"
#define RTAUDIO_VERSION "5.0.0"
#define RTAUDIO_DLL_PUBLIC


#include <string> #include <string>
#include <vector> #include <vector>
#include <exception>
#include <stdexcept>
#include <iostream> #include <iostream>


/*! \typedef typedef unsigned long RtAudioFormat; /*! \typedef typedef unsigned long RtAudioFormat;
@@ -86,6 +87,7 @@ static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/mi
- \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency. - \e RTAUDIO_MINIMIZE_LATENCY: Attempt to set stream parameters for lowest possible latency.
- \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use. - \e RTAUDIO_HOG_DEVICE: Attempt grab device for exclusive use.
- \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only). - \e RTAUDIO_ALSA_USE_DEFAULT: Use the "default" PCM device (ALSA only).
- \e RTAUDIO_JACK_DONT_CONNECT: Do not automatically connect ports (JACK only).


By default, RtAudio streams pass and receive audio data from the By default, RtAudio streams pass and receive audio data from the
client in an interleaved format. By passing the client in an interleaved format. By passing the
@@ -117,6 +119,9 @@ static const RtAudioFormat RTAUDIO_FLOAT64 = 0x20; // Normalized between plus/mi
If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to If the RTAUDIO_ALSA_USE_DEFAULT flag is set, RtAudio will attempt to
open the "default" PCM device when using the ALSA API. Note that this open the "default" PCM device when using the ALSA API. Note that this
will override any specified input or output device id. will override any specified input or output device id.

If the RTAUDIO_JACK_DONT_CONNECT flag is set, RtAudio will not attempt
to automatically connect the ports of the client to the audio device.
*/ */
typedef unsigned int RtAudioStreamFlags; typedef unsigned int RtAudioStreamFlags;
static const RtAudioStreamFlags RTAUDIO_NONINTERLEAVED = 0x1; // Use non-interleaved buffers (default = interleaved). static const RtAudioStreamFlags RTAUDIO_NONINTERLEAVED = 0x1; // Use non-interleaved buffers (default = interleaved).
@@ -124,6 +129,7 @@ static const RtAudioStreamFlags RTAUDIO_MINIMIZE_LATENCY = 0x2; // Attempt to s
static const RtAudioStreamFlags RTAUDIO_HOG_DEVICE = 0x4; // Attempt grab device and prevent use by others. static const RtAudioStreamFlags RTAUDIO_HOG_DEVICE = 0x4; // Attempt grab device and prevent use by others.
static const RtAudioStreamFlags RTAUDIO_SCHEDULE_REALTIME = 0x8; // Try to select realtime scheduling for callback thread. static const RtAudioStreamFlags RTAUDIO_SCHEDULE_REALTIME = 0x8; // Try to select realtime scheduling for callback thread.
static const RtAudioStreamFlags RTAUDIO_ALSA_USE_DEFAULT = 0x10; // Use the "default" PCM device (ALSA only). static const RtAudioStreamFlags RTAUDIO_ALSA_USE_DEFAULT = 0x10; // Use the "default" PCM device (ALSA only).
static const RtAudioStreamFlags RTAUDIO_JACK_DONT_CONNECT = 0x20; // Do not automatically connect ports (JACK only).


/*! \typedef typedef unsigned long RtAudioStreamStatus; /*! \typedef typedef unsigned long RtAudioStreamStatus;
\brief RtAudio stream status (over- or underflow) flags. \brief RtAudio stream status (over- or underflow) flags.
@@ -195,7 +201,7 @@ typedef int (*RtAudioCallback)( void *outputBuffer, void *inputBuffer,
*/ */
/************************************************************************/ /************************************************************************/


class RtAudioError : public std::exception
class RTAUDIO_DLL_PUBLIC RtAudioError : public std::runtime_error
{ {
public: public:
//! Defined RtAudioError types. //! Defined RtAudioError types.
@@ -214,25 +220,22 @@ class RtAudioError : public std::exception
}; };


//! The constructor. //! The constructor.
RtAudioError( const std::string& message, Type type = RtAudioError::UNSPECIFIED ) throw() : message_(message), type_(type) {}
//! The destructor.
virtual ~RtAudioError( void ) throw() {}
RtAudioError( const std::string& message,
Type type = RtAudioError::UNSPECIFIED )
: std::runtime_error(message), type_(type) {}


//! Prints thrown error message to stderr. //! Prints thrown error message to stderr.
virtual void printMessage( void ) const throw() { std::cerr << '\n' << message_ << "\n\n"; }
virtual void printMessage( void ) const
{ std::cerr << '\n' << what() << "\n\n"; }


//! Returns the thrown error message type. //! Returns the thrown error message type.
virtual const Type& getType(void) const throw() { return type_; }
virtual const Type& getType(void) const { return type_; }


//! Returns the thrown error message string. //! Returns the thrown error message string.
virtual const std::string& getMessage(void) const throw() { return message_; }

//! Returns the thrown error message as a c-style string.
virtual const char* what( void ) const throw() { return message_.c_str(); }
virtual const std::string getMessage(void) const
{ return std::string(what()); }


protected: protected:
std::string message_;
Type type_; Type type_;
}; };


@@ -258,7 +261,7 @@ typedef void (*RtAudioErrorCallback)( RtAudioError::Type type, const std::string


class RtApi; class RtApi;


class RtAudio
class RTAUDIO_DLL_PUBLIC RtAudio
{ {
public: public:


@@ -286,12 +289,13 @@ class RtAudio
bool isDefaultOutput; /*!< true if this is the default output device. */ bool isDefaultOutput; /*!< true if this is the default output device. */
bool isDefaultInput; /*!< true if this is the default input device. */ bool isDefaultInput; /*!< true if this is the default input device. */
std::vector<unsigned int> sampleRates; /*!< Supported sample rates (queried from list of standard rates). */ std::vector<unsigned int> sampleRates; /*!< Supported sample rates (queried from list of standard rates). */
unsigned int preferredSampleRate; /*!< Preferred sample rate, eg. for WASAPI the system sample rate. */
RtAudioFormat nativeFormats; /*!< Bit mask of supported data formats. */ RtAudioFormat nativeFormats; /*!< Bit mask of supported data formats. */


// Default constructor. // Default constructor.
DeviceInfo() DeviceInfo()
:probed(false), outputChannels(0), inputChannels(0), duplexChannels(0), :probed(false), outputChannels(0), inputChannels(0), duplexChannels(0),
isDefaultOutput(false), isDefaultInput(false), nativeFormats(0) {}
isDefaultOutput(false), isDefaultInput(false), preferredSampleRate(0), nativeFormats(0) {}
}; };


//! The structure for specifying input or ouput stream parameters. //! The structure for specifying input or ouput stream parameters.
@@ -374,7 +378,7 @@ class RtAudio
}; };


//! A static function to determine the current RtAudio version. //! A static function to determine the current RtAudio version.
static std::string getVersion( void ) throw();
static std::string getVersion( void );


//! A static function to determine the available compiled audio APIs. //! A static function to determine the available compiled audio APIs.
/*! /*!
@@ -382,7 +386,7 @@ class RtAudio
the enumerated list values. Note that there can be more than one the enumerated list values. Note that there can be more than one
API compiled for certain operating systems. API compiled for certain operating systems.
*/ */
static void getCompiledApi( std::vector<RtAudio::Api> &apis ) throw();
static void getCompiledApi( std::vector<RtAudio::Api> &apis );


//! The class constructor. //! The class constructor.
/*! /*!
@@ -400,10 +404,10 @@ class RtAudio
If a stream is running or open, it will be stopped and closed If a stream is running or open, it will be stopped and closed
automatically. automatically.
*/ */
~RtAudio() throw();
~RtAudio();


//! Returns the audio API specifier for the current instance of RtAudio. //! Returns the audio API specifier for the current instance of RtAudio.
RtAudio::Api getCurrentApi( void ) const throw();
RtAudio::Api getCurrentApi( void ) const;


//! A public function that queries for the number of audio devices available. //! A public function that queries for the number of audio devices available.
/*! /*!
@@ -411,7 +415,7 @@ class RtAudio
is called, thus supporting devices connected \e after instantiation. If is called, thus supporting devices connected \e after instantiation. If
a system error occurs during processing, a warning will be issued. a system error occurs during processing, a warning will be issued.
*/ */
unsigned int getDeviceCount( void ) throw();
unsigned int getDeviceCount( void );


//! Return an RtAudio::DeviceInfo structure for a specified device number. //! Return an RtAudio::DeviceInfo structure for a specified device number.
/*! /*!
@@ -434,7 +438,7 @@ class RtAudio
client's responsibility to verify that a device is available client's responsibility to verify that a device is available
before attempting to open a stream. before attempting to open a stream.
*/ */
unsigned int getDefaultOutputDevice( void ) throw();
unsigned int getDefaultOutputDevice( void );


//! A function that returns the index of the default input device. //! A function that returns the index of the default input device.
/*! /*!
@@ -444,7 +448,7 @@ class RtAudio
client's responsibility to verify that a device is available client's responsibility to verify that a device is available
before attempting to open a stream. before attempting to open a stream.
*/ */
unsigned int getDefaultInputDevice( void ) throw();
unsigned int getDefaultInputDevice( void );


//! A public function for opening a stream with the specified parameters. //! A public function for opening a stream with the specified parameters.
/*! /*!
@@ -497,7 +501,7 @@ class RtAudio
If a stream is not open, this function issues a warning and If a stream is not open, this function issues a warning and
returns (no exception is thrown). returns (no exception is thrown).
*/ */
void closeStream( void ) throw();
void closeStream( void );


//! A function that starts a stream. //! A function that starts a stream.
/*! /*!
@@ -527,10 +531,10 @@ class RtAudio
void abortStream( void ); void abortStream( void );


//! Returns true if a stream is open and false if not. //! Returns true if a stream is open and false if not.
bool isStreamOpen( void ) const throw();
bool isStreamOpen( void ) const;


//! Returns true if the stream is running and false if it is stopped or not open. //! Returns true if the stream is running and false if it is stopped or not open.
bool isStreamRunning( void ) const throw();
bool isStreamRunning( void ) const;


//! Returns the number of elapsed seconds since the stream was started. //! Returns the number of elapsed seconds since the stream was started.
/*! /*!
@@ -564,7 +568,7 @@ class RtAudio
unsigned int getStreamSampleRate( void ); unsigned int getStreamSampleRate( void );


//! Specify whether warning messages should be printed to stderr. //! Specify whether warning messages should be printed to stderr.
void showWarnings( bool value = true ) throw();
void showWarnings( bool value = true );


protected: protected:


@@ -615,7 +619,7 @@ struct CallbackInfo {


// Default constructor. // Default constructor.
CallbackInfo() CallbackInfo()
:object(0), callback(0), userData(0), errorCallback(0), apiInfo(0), isRunning(false), doRealtime(false) {}
:object(0), callback(0), userData(0), errorCallback(0), apiInfo(0), isRunning(false), doRealtime(false), priority(0) {}
}; };


// **************************************************************** // // **************************************************************** //
@@ -668,7 +672,7 @@ class S24 {


#include <sstream> #include <sstream>


class RtApi
class RTAUDIO_DLL_PUBLIC RtApi
{ {
public: public:


@@ -823,22 +827,22 @@ protected:
// //
// **************************************************************** // // **************************************************************** //


inline RtAudio::Api RtAudio :: getCurrentApi( void ) const throw() { return rtapi_->getCurrentApi(); }
inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }
inline RtAudio::Api RtAudio :: getCurrentApi( void ) const { return rtapi_->getCurrentApi(); }
inline unsigned int RtAudio :: getDeviceCount( void ) { return rtapi_->getDeviceCount(); }
inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); } inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }
inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }
inline unsigned int RtAudio :: getDefaultInputDevice( void ) { return rtapi_->getDefaultInputDevice(); }
inline unsigned int RtAudio :: getDefaultOutputDevice( void ) { return rtapi_->getDefaultOutputDevice(); }
inline void RtAudio :: closeStream( void ) { return rtapi_->closeStream(); }
inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); } inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); } inline void RtAudio :: stopStream( void ) { return rtapi_->stopStream(); }
inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); } inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
inline bool RtAudio :: isStreamOpen( void ) const throw() { return rtapi_->isStreamOpen(); }
inline bool RtAudio :: isStreamRunning( void ) const throw() { return rtapi_->isStreamRunning(); }
inline bool RtAudio :: isStreamOpen( void ) const { return rtapi_->isStreamOpen(); }
inline bool RtAudio :: isStreamRunning( void ) const { return rtapi_->isStreamRunning(); }
inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); } inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); } inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); }
inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); } inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
inline void RtAudio :: setStreamTime( double time ) { return rtapi_->setStreamTime( time ); } inline void RtAudio :: setStreamTime( double time ) { return rtapi_->setStreamTime( time ); }
inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }
inline void RtAudio :: showWarnings( bool value ) { rtapi_->showWarnings( value ); }


// RtApi Subclass prototypes. // RtApi Subclass prototypes.


@@ -911,6 +915,8 @@ public:
unsigned int firstChannel, unsigned int sampleRate, unsigned int firstChannel, unsigned int sampleRate,
RtAudioFormat format, unsigned int *bufferSize, RtAudioFormat format, unsigned int *bufferSize,
RtAudio::StreamOptions *options ); RtAudio::StreamOptions *options );

bool shouldAutoconnect_;
}; };


#endif #endif


source/modules/rtaudio/include/FunctionDiscoveryKeys_devpkey.h → source/modules/rtaudio/include/functiondiscoverykeys_devpkey.h View File


Loading…
Cancel
Save