From fa0759941de32b91fd328c7ec412d2dd3255aa1e Mon Sep 17 00:00:00 2001 From: Gary Scavone Date: Fri, 11 Oct 2013 02:05:07 +0200 Subject: Release 4.0.11 tarball --- doc/html/RtAudio_8h_source.html | 1103 ++++++++++++++++++++------------------- 1 file changed, 569 insertions(+), 534 deletions(-) (limited to 'doc/html/RtAudio_8h_source.html') diff --git a/doc/html/RtAudio_8h_source.html b/doc/html/RtAudio_8h_source.html index d8a83a1..a5f0026 100644 --- a/doc/html/RtAudio_8h_source.html +++ b/doc/html/RtAudio_8h_source.html @@ -12,7 +12,7 @@

RtAudio.h

Go to the documentation of this file.
00001 /************************************************************************/
 00039 /************************************************************************/
 00040 
-00045 // RtAudio: Version 4.0.10
+00045 // RtAudio: Version 4.0.11
 00046 
 00047 #ifndef __RTAUDIO_H
 00048 #define __RTAUDIO_H
@@ -70,509 +70,509 @@
 00210   enum Api {
 00211     UNSPECIFIED,    
 00212     LINUX_ALSA,     
-00213     LINUX_OSS,      
-00214     UNIX_JACK,      
-00215     MACOSX_CORE,    
-00216     WINDOWS_ASIO,   
-00217     WINDOWS_DS,     
-00218     RTAUDIO_DUMMY   
-00219   };
-00220 
-00222   struct DeviceInfo {
-00223     bool probed;                  
-00224     std::string name;             
-00225     unsigned int outputChannels;  
-00226     unsigned int inputChannels;   
-00227     unsigned int duplexChannels;  
-00228     bool isDefaultOutput;         
-00229     bool isDefaultInput;          
-00230     std::vector<unsigned int> sampleRates; 
-00231     RtAudioFormat nativeFormats;  
-00233     // Default constructor.
-00234     DeviceInfo()
-00235       :probed(false), outputChannels(0), inputChannels(0), duplexChannels(0),
-00236        isDefaultOutput(false), isDefaultInput(false), nativeFormats(0) {}
-00237   };
-00238 
-00240   struct StreamParameters {
-00241     unsigned int deviceId;     
-00242     unsigned int nChannels;    
-00243     unsigned int firstChannel; 
-00245     // Default constructor.
-00246     StreamParameters()
-00247       : deviceId(0), nChannels(0), firstChannel(0) {}
-00248   };
-00249 
-00251 
-00307   struct StreamOptions {
-00308     RtAudioStreamFlags flags;      
-00309     unsigned int numberOfBuffers;  
-00310     std::string streamName;        
-00311     int priority;                  
-00313     // Default constructor.
-00314     StreamOptions()
-00315     : flags(0), numberOfBuffers(0), priority(0) {}
-00316   };
-00317 
-00319 
-00324   static void getCompiledApi( std::vector<RtAudio::Api> &apis ) throw();
-00325 
-00327 
-00335   RtAudio( RtAudio::Api api=UNSPECIFIED ) throw();
-00336 
-00338 
-00342   ~RtAudio() throw();
-00343 
-00345   RtAudio::Api getCurrentApi( void ) throw();
-00346 
-00348 
-00353   unsigned int getDeviceCount( void ) throw();
-00354 
-00356 
-00366   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00367 
-00369 
-00376   unsigned int getDefaultOutputDevice( void ) throw();
-00377 
-00379 
-00386   unsigned int getDefaultInputDevice( void ) throw();
-00387 
-00389 
-00426   void openStream( RtAudio::StreamParameters *outputParameters,
-00427                    RtAudio::StreamParameters *inputParameters,
-00428                    RtAudioFormat format, unsigned int sampleRate,
-00429                    unsigned int *bufferFrames, RtAudioCallback callback,
-00430                    void *userData = NULL, RtAudio::StreamOptions *options = NULL );
-00431 
-00433 
-00437   void closeStream( void ) throw();
-00438 
-00440 
-00446   void startStream( void );
-00447 
-00449 
-00455   void stopStream( void );
-00456 
-00458 
-00464   void abortStream( void );
-00465 
-00467   bool isStreamOpen( void ) const throw();
-00468 
-00470   bool isStreamRunning( void ) const throw();
-00471 
-00473 
-00476   double getStreamTime( void );
-00477 
-00479 
-00487   long getStreamLatency( void );
-00488 
-00490 
-00495   unsigned int getStreamSampleRate( void );
-00496 
-00498   void showWarnings( bool value = true ) throw();
-00499 
-00500  protected:
-00501 
-00502   void openRtApi( RtAudio::Api api );
-00503   RtApi *rtapi_;
-00504 };
-00505 
-00506 // Operating system dependent thread functionality.
-00507 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)
-00508   #include <windows.h>
-00509   #include <process.h>
-00510 
-00511   typedef unsigned long ThreadHandle;
-00512   typedef CRITICAL_SECTION StreamMutex;
-00513 
-00514 #elif defined(__LINUX_ALSA__) || defined(__UNIX_JACK__) || defined(__LINUX_OSS__) || defined(__MACOSX_CORE__)
-00515   // Using pthread library for various flavors of unix.
-00516   #include <pthread.h>
-00517 
-00518   typedef pthread_t ThreadHandle;
-00519   typedef pthread_mutex_t StreamMutex;
-00520 
-00521 #else // Setup for "dummy" behavior
-00522 
-00523   #define __RTAUDIO_DUMMY__
-00524   typedef int ThreadHandle;
-00525   typedef int StreamMutex;
-00526 
-00527 #endif
-00528 
-00529 // This global structure type is used to pass callback information
-00530 // between the private RtAudio stream structure and global callback
-00531 // handling functions.
-00532 struct CallbackInfo {
-00533   void *object;    // Used as a "this" pointer.
-00534   ThreadHandle thread;
-00535   void *callback;
-00536   void *userData;
-00537   void *apiInfo;   // void pointer for API specific callback information
-00538   bool isRunning;
-00539 
-00540   // Default constructor.
-00541   CallbackInfo()
-00542     :object(0), callback(0), userData(0), apiInfo(0), isRunning(false) {}
-00543 };
-00544 
-00545 // **************************************************************** //
-00546 //
-00547 // RtApi class declaration.
-00548 //
-00549 // Subclasses of RtApi contain all API- and OS-specific code necessary
-00550 // to fully implement the RtAudio API.
-00551 //
-00552 // Note that RtApi is an abstract base class and cannot be
-00553 // explicitly instantiated.  The class RtAudio will create an
-00554 // instance of an RtApi subclass (RtApiOss, RtApiAlsa,
-00555 // RtApiJack, RtApiCore, RtApiAl, RtApiDs, or RtApiAsio).
-00556 //
-00557 // **************************************************************** //
-00558 
-00559 #if defined( HAVE_GETTIMEOFDAY )
-00560   #include <sys/time.h>
-00561 #endif
-00562 
-00563 #include <sstream>
-00564 
-00565 class RtApi
-00566 {
-00567 public:
-00568 
-00569   RtApi();
-00570   virtual ~RtApi();
-00571   virtual RtAudio::Api getCurrentApi( void ) = 0;
-00572   virtual unsigned int getDeviceCount( void ) = 0;
-00573   virtual RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) = 0;
-00574   virtual unsigned int getDefaultInputDevice( void );
-00575   virtual unsigned int getDefaultOutputDevice( void );
-00576   void openStream( RtAudio::StreamParameters *outputParameters,
-00577                    RtAudio::StreamParameters *inputParameters,
-00578                    RtAudioFormat format, unsigned int sampleRate,
-00579                    unsigned int *bufferFrames, RtAudioCallback callback,
-00580                    void *userData, RtAudio::StreamOptions *options );
-00581   virtual void closeStream( void );
-00582   virtual void startStream( void ) = 0;
-00583   virtual void stopStream( void ) = 0;
-00584   virtual void abortStream( void ) = 0;
-00585   long getStreamLatency( void );
-00586   unsigned int getStreamSampleRate( void );
-00587   virtual double getStreamTime( void );
-00588   bool isStreamOpen( void ) const { return stream_.state != STREAM_CLOSED; };
-00589   bool isStreamRunning( void ) const { return stream_.state == STREAM_RUNNING; };
-00590   void showWarnings( bool value ) { showWarnings_ = value; };
-00591 
+00213     LINUX_PULSE,    
+00214     LINUX_OSS,      
+00215     UNIX_JACK,      
+00216     MACOSX_CORE,    
+00217     WINDOWS_ASIO,   
+00218     WINDOWS_DS,     
+00219     RTAUDIO_DUMMY   
+00220   };
+00221 
+00223   struct DeviceInfo {
+00224     bool probed;                  
+00225     std::string name;             
+00226     unsigned int outputChannels;  
+00227     unsigned int inputChannels;   
+00228     unsigned int duplexChannels;  
+00229     bool isDefaultOutput;         
+00230     bool isDefaultInput;          
+00231     std::vector<unsigned int> sampleRates; 
+00232     RtAudioFormat nativeFormats;  
+00234     // Default constructor.
+00235     DeviceInfo()
+00236       :probed(false), outputChannels(0), inputChannels(0), duplexChannels(0),
+00237        isDefaultOutput(false), isDefaultInput(false), nativeFormats(0) {}
+00238   };
+00239 
+00241   struct StreamParameters {
+00242     unsigned int deviceId;     
+00243     unsigned int nChannels;    
+00244     unsigned int firstChannel; 
+00246     // Default constructor.
+00247     StreamParameters()
+00248       : deviceId(0), nChannels(0), firstChannel(0) {}
+00249   };
+00250 
+00252 
+00308   struct StreamOptions {
+00309     RtAudioStreamFlags flags;      
+00310     unsigned int numberOfBuffers;  
+00311     std::string streamName;        
+00312     int priority;                  
+00314     // Default constructor.
+00315     StreamOptions()
+00316     : flags(0), numberOfBuffers(0), priority(0) {}
+00317   };
+00318 
+00320 
+00325   static void getCompiledApi( std::vector<RtAudio::Api> &apis ) throw();
+00326 
+00328 
+00336   RtAudio( RtAudio::Api api=UNSPECIFIED ) throw();
+00337 
+00339 
+00343   ~RtAudio() throw();
+00344 
+00346   RtAudio::Api getCurrentApi( void ) throw();
+00347 
+00349 
+00354   unsigned int getDeviceCount( void ) throw();
+00355 
+00357 
+00367   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00368 
+00370 
+00377   unsigned int getDefaultOutputDevice( void ) throw();
+00378 
+00380 
+00387   unsigned int getDefaultInputDevice( void ) throw();
+00388 
+00390 
+00427   void openStream( RtAudio::StreamParameters *outputParameters,
+00428                    RtAudio::StreamParameters *inputParameters,
+00429                    RtAudioFormat format, unsigned int sampleRate,
+00430                    unsigned int *bufferFrames, RtAudioCallback callback,
+00431                    void *userData = NULL, RtAudio::StreamOptions *options = NULL );
+00432 
+00434 
+00438   void closeStream( void ) throw();
+00439 
+00441 
+00447   void startStream( void );
+00448 
+00450 
+00456   void stopStream( void );
+00457 
+00459 
+00465   void abortStream( void );
+00466 
+00468   bool isStreamOpen( void ) const throw();
+00469 
+00471   bool isStreamRunning( void ) const throw();
+00472 
+00474 
+00477   double getStreamTime( void );
+00478 
+00480 
+00488   long getStreamLatency( void );
+00489 
+00491 
+00496   unsigned int getStreamSampleRate( void );
+00497 
+00499   void showWarnings( bool value = true ) throw();
+00500 
+00501  protected:
+00502 
+00503   void openRtApi( RtAudio::Api api );
+00504   RtApi *rtapi_;
+00505 };
+00506 
+00507 // Operating system dependent thread functionality.
+00508 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__)
+00509   #include <windows.h>
+00510   #include <process.h>
+00511 
+00512   typedef unsigned long ThreadHandle;
+00513   typedef CRITICAL_SECTION StreamMutex;
+00514 
+00515 #elif defined(__LINUX_ALSA__) || defined(__LINUX_PULSE__) || defined(__UNIX_JACK__) || defined(__LINUX_OSS__) || defined(__MACOSX_CORE__)
+00516   // Using pthread library for various flavors of unix.
+00517   #include <pthread.h>
+00518 
+00519   typedef pthread_t ThreadHandle;
+00520   typedef pthread_mutex_t StreamMutex;
+00521 
+00522 #else // Setup for "dummy" behavior
+00523 
+00524   #define __RTAUDIO_DUMMY__
+00525   typedef int ThreadHandle;
+00526   typedef int StreamMutex;
+00527 
+00528 #endif
+00529 
+00530 // This global structure type is used to pass callback information
+00531 // between the private RtAudio stream structure and global callback
+00532 // handling functions.
+00533 struct CallbackInfo {
+00534   void *object;    // Used as a "this" pointer.
+00535   ThreadHandle thread;
+00536   void *callback;
+00537   void *userData;
+00538   void *apiInfo;   // void pointer for API specific callback information
+00539   bool isRunning;
+00540 
+00541   // Default constructor.
+00542   CallbackInfo()
+00543     :object(0), callback(0), userData(0), apiInfo(0), isRunning(false) {}
+00544 };
+00545 
+00546 // **************************************************************** //
+00547 //
+00548 // RtApi class declaration.
+00549 //
+00550 // Subclasses of RtApi contain all API- and OS-specific code necessary
+00551 // to fully implement the RtAudio API.
+00552 //
+00553 // Note that RtApi is an abstract base class and cannot be
+00554 // explicitly instantiated.  The class RtAudio will create an
+00555 // instance of an RtApi subclass (RtApiOss, RtApiAlsa,
+00556 // RtApiJack, RtApiCore, RtApiDs, or RtApiAsio).
+00557 //
+00558 // **************************************************************** //
+00559 
+00560 #if defined( HAVE_GETTIMEOFDAY )
+00561   #include <sys/time.h>
+00562 #endif
+00563 
+00564 #include <sstream>
+00565 
+00566 class RtApi
+00567 {
+00568 public:
+00569 
+00570   RtApi();
+00571   virtual ~RtApi();
+00572   virtual RtAudio::Api getCurrentApi( void ) = 0;
+00573   virtual unsigned int getDeviceCount( void ) = 0;
+00574   virtual RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) = 0;
+00575   virtual unsigned int getDefaultInputDevice( void );
+00576   virtual unsigned int getDefaultOutputDevice( void );
+00577   void openStream( RtAudio::StreamParameters *outputParameters,
+00578                    RtAudio::StreamParameters *inputParameters,
+00579                    RtAudioFormat format, unsigned int sampleRate,
+00580                    unsigned int *bufferFrames, RtAudioCallback callback,
+00581                    void *userData, RtAudio::StreamOptions *options );
+00582   virtual void closeStream( void );
+00583   virtual void startStream( void ) = 0;
+00584   virtual void stopStream( void ) = 0;
+00585   virtual void abortStream( void ) = 0;
+00586   long getStreamLatency( void );
+00587   unsigned int getStreamSampleRate( void );
+00588   virtual double getStreamTime( void );
+00589   bool isStreamOpen( void ) const { return stream_.state != STREAM_CLOSED; };
+00590   bool isStreamRunning( void ) const { return stream_.state == STREAM_RUNNING; };
+00591   void showWarnings( bool value ) { showWarnings_ = value; };
 00592 
-00593 protected:
-00594 
-00595   static const unsigned int MAX_SAMPLE_RATES;
-00596   static const unsigned int SAMPLE_RATES[];
-00597 
-00598   enum { FAILURE, SUCCESS };
-00599 
-00600   enum StreamState {
-00601     STREAM_STOPPED,
-00602     STREAM_RUNNING,
-00603     STREAM_CLOSED = -50
-00604   };
-00605 
-00606   enum StreamMode {
-00607     OUTPUT,
-00608     INPUT,
-00609     DUPLEX,
-00610     UNINITIALIZED = -75
-00611   };
-00612 
-00613   // A protected structure used for buffer conversion.
-00614   struct ConvertInfo {
-00615     int channels;
-00616     int inJump, outJump;
-00617     RtAudioFormat inFormat, outFormat;
-00618     std::vector<int> inOffset;
-00619     std::vector<int> outOffset;
-00620   };
-00621 
-00622   // A protected structure for audio streams.
-00623   struct RtApiStream {
-00624     unsigned int device[2];    // Playback and record, respectively.
-00625     void *apiHandle;           // void pointer for API specific stream handle information
-00626     StreamMode mode;           // OUTPUT, INPUT, or DUPLEX.
-00627     StreamState state;         // STOPPED, RUNNING, or CLOSED
-00628     char *userBuffer[2];       // Playback and record, respectively.
-00629     char *deviceBuffer;
-00630     bool doConvertBuffer[2];   // Playback and record, respectively.
-00631     bool userInterleaved;
-00632     bool deviceInterleaved[2]; // Playback and record, respectively.
-00633     bool doByteSwap[2];        // Playback and record, respectively.
-00634     unsigned int sampleRate;
-00635     unsigned int bufferSize;
-00636     unsigned int nBuffers;
-00637     unsigned int nUserChannels[2];    // Playback and record, respectively.
-00638     unsigned int nDeviceChannels[2];  // Playback and record channels, respectively.
-00639     unsigned int channelOffset[2];    // Playback and record, respectively.
-00640     unsigned long latency[2];         // Playback and record, respectively.
-00641     RtAudioFormat userFormat;
-00642     RtAudioFormat deviceFormat[2];    // Playback and record, respectively.
-00643     StreamMutex mutex;
-00644     CallbackInfo callbackInfo;
-00645     ConvertInfo convertInfo[2];
-00646     double streamTime;         // Number of elapsed seconds since the stream started.
-00647 
-00648 #if defined(HAVE_GETTIMEOFDAY)
-00649     struct timeval lastTickTimestamp;
-00650 #endif
-00651 
-00652     RtApiStream()
-00653       :apiHandle(0), deviceBuffer(0) { device[0] = 11111; device[1] = 11111; }
-00654   };
-00655 
-00656   typedef signed short Int16;
-00657   typedef signed int Int32;
-00658   typedef float Float32;
-00659   typedef double Float64;
-00660 
-00661   std::ostringstream errorStream_;
-00662   std::string errorText_;
-00663   bool showWarnings_;
-00664   RtApiStream stream_;
-00665 
-00673   virtual bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00674                                 unsigned int firstChannel, unsigned int sampleRate,
-00675                                 RtAudioFormat format, unsigned int *bufferSize,
-00676                                 RtAudio::StreamOptions *options );
-00677 
-00679   void tickStreamTime( void );
-00680 
-00682   void clearStreamInfo();
-00683 
-00688   void verifyStream( void );
-00689 
-00691   void error( RtError::Type type );
-00692 
-00697   void convertBuffer( char *outBuffer, char *inBuffer, ConvertInfo &info );
-00698 
-00700   void byteSwapBuffer( char *buffer, unsigned int samples, RtAudioFormat format );
-00701 
-00703   unsigned int formatBytes( RtAudioFormat format );
-00704 
-00706   void setConvertInfo( StreamMode mode, unsigned int firstChannel );
-00707 };
-00708 
-00709 // **************************************************************** //
-00710 //
-00711 // Inline RtAudio definitions.
+00593 
+00594 protected:
+00595 
+00596   static const unsigned int MAX_SAMPLE_RATES;
+00597   static const unsigned int SAMPLE_RATES[];
+00598 
+00599   enum { FAILURE, SUCCESS };
+00600 
+00601   enum StreamState {
+00602     STREAM_STOPPED,
+00603     STREAM_STOPPING,
+00604     STREAM_RUNNING,
+00605     STREAM_CLOSED = -50
+00606   };
+00607 
+00608   enum StreamMode {
+00609     OUTPUT,
+00610     INPUT,
+00611     DUPLEX,
+00612     UNINITIALIZED = -75
+00613   };
+00614 
+00615   // A protected structure used for buffer conversion.
+00616   struct ConvertInfo {
+00617     int channels;
+00618     int inJump, outJump;
+00619     RtAudioFormat inFormat, outFormat;
+00620     std::vector<int> inOffset;
+00621     std::vector<int> outOffset;
+00622   };
+00623 
+00624   // A protected structure for audio streams.
+00625   struct RtApiStream {
+00626     unsigned int device[2];    // Playback and record, respectively.
+00627     void *apiHandle;           // void pointer for API specific stream handle information
+00628     StreamMode mode;           // OUTPUT, INPUT, or DUPLEX.
+00629     StreamState state;         // STOPPED, RUNNING, or CLOSED
+00630     char *userBuffer[2];       // Playback and record, respectively.
+00631     char *deviceBuffer;
+00632     bool doConvertBuffer[2];   // Playback and record, respectively.
+00633     bool userInterleaved;
+00634     bool deviceInterleaved[2]; // Playback and record, respectively.
+00635     bool doByteSwap[2];        // Playback and record, respectively.
+00636     unsigned int sampleRate;
+00637     unsigned int bufferSize;
+00638     unsigned int nBuffers;
+00639     unsigned int nUserChannels[2];    // Playback and record, respectively.
+00640     unsigned int nDeviceChannels[2];  // Playback and record channels, respectively.
+00641     unsigned int channelOffset[2];    // Playback and record, respectively.
+00642     unsigned long latency[2];         // Playback and record, respectively.
+00643     RtAudioFormat userFormat;
+00644     RtAudioFormat deviceFormat[2];    // Playback and record, respectively.
+00645     StreamMutex mutex;
+00646     CallbackInfo callbackInfo;
+00647     ConvertInfo convertInfo[2];
+00648     double streamTime;         // Number of elapsed seconds since the stream started.
+00649 
+00650 #if defined(HAVE_GETTIMEOFDAY)
+00651     struct timeval lastTickTimestamp;
+00652 #endif
+00653 
+00654     RtApiStream()
+00655       :apiHandle(0), deviceBuffer(0) { device[0] = 11111; device[1] = 11111; }
+00656   };
+00657 
+00658   typedef signed short Int16;
+00659   typedef signed int Int32;
+00660   typedef float Float32;
+00661   typedef double Float64;
+00662 
+00663   std::ostringstream errorStream_;
+00664   std::string errorText_;
+00665   bool showWarnings_;
+00666   RtApiStream stream_;
+00667 
+00675   virtual bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00676                                 unsigned int firstChannel, unsigned int sampleRate,
+00677                                 RtAudioFormat format, unsigned int *bufferSize,
+00678                                 RtAudio::StreamOptions *options );
+00679 
+00681   void tickStreamTime( void );
+00682 
+00684   void clearStreamInfo();
+00685 
+00690   void verifyStream( void );
+00691 
+00693   void error( RtError::Type type );
+00694 
+00699   void convertBuffer( char *outBuffer, char *inBuffer, ConvertInfo &info );
+00700 
+00702   void byteSwapBuffer( char *buffer, unsigned int samples, RtAudioFormat format );
+00703 
+00705   unsigned int formatBytes( RtAudioFormat format );
+00706 
+00708   void setConvertInfo( StreamMode mode, unsigned int firstChannel );
+00709 };
+00710 
+00711 // **************************************************************** //
 00712 //
-00713 // **************************************************************** //
-00714 
-00715 inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
-00716 inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }
-00717 inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
-00718 inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }
-00719 inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }
-00720 inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }
-00721 inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
-00722 inline void RtAudio :: stopStream( void )  { return rtapi_->stopStream(); }
-00723 inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
-00724 inline bool RtAudio :: isStreamOpen( void ) const throw() { return rtapi_->isStreamOpen(); }
-00725 inline bool RtAudio :: isStreamRunning( void ) const throw() { return rtapi_->isStreamRunning(); }
-00726 inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
-00727 inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); };
-00728 inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
-00729 inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }
-00730 
-00731 // RtApi Subclass prototypes.
+00713 // Inline RtAudio definitions.
+00714 //
+00715 // **************************************************************** //
+00716 
+00717 inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
+00718 inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }
+00719 inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
+00720 inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }
+00721 inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }
+00722 inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }
+00723 inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
+00724 inline void RtAudio :: stopStream( void )  { return rtapi_->stopStream(); }
+00725 inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
+00726 inline bool RtAudio :: isStreamOpen( void ) const throw() { return rtapi_->isStreamOpen(); }
+00727 inline bool RtAudio :: isStreamRunning( void ) const throw() { return rtapi_->isStreamRunning(); }
+00728 inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
+00729 inline unsigned int RtAudio :: getStreamSampleRate( void ) { return rtapi_->getStreamSampleRate(); };
+00730 inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
+00731 inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }
 00732 
-00733 #if defined(__MACOSX_CORE__)
-00734 
-00735 #include <CoreAudio/AudioHardware.h>
-00736 
-00737 class RtApiCore: public RtApi
-00738 {
-00739 public:
-00740 
-00741   RtApiCore();
-00742   ~RtApiCore();
-00743   RtAudio::Api getCurrentApi( void ) { return RtAudio::MACOSX_CORE; };
-00744   unsigned int getDeviceCount( void );
-00745   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00746   unsigned int getDefaultOutputDevice( void );
-00747   unsigned int getDefaultInputDevice( void );
-00748   void closeStream( void );
-00749   void startStream( void );
-00750   void stopStream( void );
-00751   void abortStream( void );
-00752   long getStreamLatency( void );
-00753 
-00754   // This function is intended for internal use only.  It must be
-00755   // public because it is called by the internal callback handler,
-00756   // which is not a member of RtAudio.  External use of this function
-00757   // will most likely produce highly undesireable results!
-00758   bool callbackEvent( AudioDeviceID deviceId,
-00759                       const AudioBufferList *inBufferList,
-00760                       const AudioBufferList *outBufferList );
-00761 
-00762   private:
+00733 // RtApi Subclass prototypes.
+00734 
+00735 #if defined(__MACOSX_CORE__)
+00736 
+00737 #include <CoreAudio/AudioHardware.h>
+00738 
+00739 class RtApiCore: public RtApi
+00740 {
+00741 public:
+00742 
+00743   RtApiCore();
+00744   ~RtApiCore();
+00745   RtAudio::Api getCurrentApi( void ) { return RtAudio::MACOSX_CORE; };
+00746   unsigned int getDeviceCount( void );
+00747   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00748   unsigned int getDefaultOutputDevice( void );
+00749   unsigned int getDefaultInputDevice( void );
+00750   void closeStream( void );
+00751   void startStream( void );
+00752   void stopStream( void );
+00753   void abortStream( void );
+00754   long getStreamLatency( void );
+00755 
+00756   // This function is intended for internal use only.  It must be
+00757   // public because it is called by the internal callback handler,
+00758   // which is not a member of RtAudio.  External use of this function
+00759   // will most likely produce highly undesireable results!
+00760   bool callbackEvent( AudioDeviceID deviceId,
+00761                       const AudioBufferList *inBufferList,
+00762                       const AudioBufferList *outBufferList );
 00763 
-00764   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00765                         unsigned int firstChannel, unsigned int sampleRate,
-00766                         RtAudioFormat format, unsigned int *bufferSize,
-00767                         RtAudio::StreamOptions *options );
-00768   static const char* getErrorCode( OSStatus code );
-00769 };
-00770 
-00771 #endif
-00772 
-00773 #if defined(__UNIX_JACK__)
+00764   private:
+00765 
+00766   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00767                         unsigned int firstChannel, unsigned int sampleRate,
+00768                         RtAudioFormat format, unsigned int *bufferSize,
+00769                         RtAudio::StreamOptions *options );
+00770   static const char* getErrorCode( OSStatus code );
+00771 };
+00772 
+00773 #endif
 00774 
-00775 class RtApiJack: public RtApi
-00776 {
-00777 public:
-00778 
-00779   RtApiJack();
-00780   ~RtApiJack();
-00781   RtAudio::Api getCurrentApi( void ) { return RtAudio::UNIX_JACK; };
-00782   unsigned int getDeviceCount( void );
-00783   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00784   void closeStream( void );
-00785   void startStream( void );
-00786   void stopStream( void );
-00787   void abortStream( void );
-00788   long getStreamLatency( void );
-00789 
-00790   // This function is intended for internal use only.  It must be
-00791   // public because it is called by the internal callback handler,
-00792   // which is not a member of RtAudio.  External use of this function
-00793   // will most likely produce highly undesireable results!
-00794   bool callbackEvent( unsigned long nframes );
-00795 
-00796   private:
+00775 #if defined(__UNIX_JACK__)
+00776 
+00777 class RtApiJack: public RtApi
+00778 {
+00779 public:
+00780 
+00781   RtApiJack();
+00782   ~RtApiJack();
+00783   RtAudio::Api getCurrentApi( void ) { return RtAudio::UNIX_JACK; };
+00784   unsigned int getDeviceCount( void );
+00785   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00786   void closeStream( void );
+00787   void startStream( void );
+00788   void stopStream( void );
+00789   void abortStream( void );
+00790   long getStreamLatency( void );
+00791 
+00792   // This function is intended for internal use only.  It must be
+00793   // public because it is called by the internal callback handler,
+00794   // which is not a member of RtAudio.  External use of this function
+00795   // will most likely produce highly undesireable results!
+00796   bool callbackEvent( unsigned long nframes );
 00797 
-00798   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00799                         unsigned int firstChannel, unsigned int sampleRate,
-00800                         RtAudioFormat format, unsigned int *bufferSize,
-00801                         RtAudio::StreamOptions *options );
-00802 };
-00803 
-00804 #endif
-00805 
-00806 #if defined(__WINDOWS_ASIO__)
+00798   private:
+00799 
+00800   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00801                         unsigned int firstChannel, unsigned int sampleRate,
+00802                         RtAudioFormat format, unsigned int *bufferSize,
+00803                         RtAudio::StreamOptions *options );
+00804 };
+00805 
+00806 #endif
 00807 
-00808 class RtApiAsio: public RtApi
-00809 {
-00810 public:
-00811 
-00812   RtApiAsio();
-00813   ~RtApiAsio();
-00814   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_ASIO; };
-00815   unsigned int getDeviceCount( void );
-00816   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00817   void closeStream( void );
-00818   void startStream( void );
-00819   void stopStream( void );
-00820   void abortStream( void );
-00821   long getStreamLatency( void );
-00822 
-00823   // This function is intended for internal use only.  It must be
-00824   // public because it is called by the internal callback handler,
-00825   // which is not a member of RtAudio.  External use of this function
-00826   // will most likely produce highly undesireable results!
-00827   bool callbackEvent( long bufferIndex );
-00828 
-00829   private:
+00808 #if defined(__WINDOWS_ASIO__)
+00809 
+00810 class RtApiAsio: public RtApi
+00811 {
+00812 public:
+00813 
+00814   RtApiAsio();
+00815   ~RtApiAsio();
+00816   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_ASIO; };
+00817   unsigned int getDeviceCount( void );
+00818   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00819   void closeStream( void );
+00820   void startStream( void );
+00821   void stopStream( void );
+00822   void abortStream( void );
+00823   long getStreamLatency( void );
+00824 
+00825   // This function is intended for internal use only.  It must be
+00826   // public because it is called by the internal callback handler,
+00827   // which is not a member of RtAudio.  External use of this function
+00828   // will most likely produce highly undesireable results!
+00829   bool callbackEvent( long bufferIndex );
 00830 
-00831   std::vector<RtAudio::DeviceInfo> devices_;
-00832   void saveDeviceInfo( void );
-00833   bool coInitialized_;
-00834   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00835                         unsigned int firstChannel, unsigned int sampleRate,
-00836                         RtAudioFormat format, unsigned int *bufferSize,
-00837                         RtAudio::StreamOptions *options );
-00838 };
-00839 
-00840 #endif
-00841 
-00842 #if defined(__WINDOWS_DS__)
+00831   private:
+00832 
+00833   std::vector<RtAudio::DeviceInfo> devices_;
+00834   void saveDeviceInfo( void );
+00835   bool coInitialized_;
+00836   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00837                         unsigned int firstChannel, unsigned int sampleRate,
+00838                         RtAudioFormat format, unsigned int *bufferSize,
+00839                         RtAudio::StreamOptions *options );
+00840 };
+00841 
+00842 #endif
 00843 
-00844 class RtApiDs: public RtApi
-00845 {
-00846 public:
-00847 
-00848   RtApiDs();
-00849   ~RtApiDs();
-00850   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_DS; };
-00851   unsigned int getDeviceCount( void );
-00852   unsigned int getDefaultOutputDevice( void );
-00853   unsigned int getDefaultInputDevice( void );
-00854   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00855   void closeStream( void );
-00856   void startStream( void );
-00857   void stopStream( void );
-00858   void abortStream( void );
-00859   long getStreamLatency( void );
-00860 
-00861   // This function is intended for internal use only.  It must be
-00862   // public because it is called by the internal callback handler,
-00863   // which is not a member of RtAudio.  External use of this function
-00864   // will most likely produce highly undesireable results!
-00865   void callbackEvent( void );
-00866 
-00867   private:
+00844 #if defined(__WINDOWS_DS__)
+00845 
+00846 class RtApiDs: public RtApi
+00847 {
+00848 public:
+00849 
+00850   RtApiDs();
+00851   ~RtApiDs();
+00852   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_DS; };
+00853   unsigned int getDeviceCount( void );
+00854   unsigned int getDefaultOutputDevice( void );
+00855   unsigned int getDefaultInputDevice( void );
+00856   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00857   void closeStream( void );
+00858   void startStream( void );
+00859   void stopStream( void );
+00860   void abortStream( void );
+00861   long getStreamLatency( void );
+00862 
+00863   // This function is intended for internal use only.  It must be
+00864   // public because it is called by the internal callback handler,
+00865   // which is not a member of RtAudio.  External use of this function
+00866   // will most likely produce highly undesireable results!
+00867   void callbackEvent( void );
 00868 
-00869   bool coInitialized_;
-00870   bool buffersRolling;
-00871   long duplexPrerollBytes;
-00872   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00873                         unsigned int firstChannel, unsigned int sampleRate,
-00874                         RtAudioFormat format, unsigned int *bufferSize,
-00875                         RtAudio::StreamOptions *options );
-00876 };
-00877 
-00878 #endif
-00879 
-00880 #if defined(__LINUX_ALSA__)
+00869   private:
+00870 
+00871   bool coInitialized_;
+00872   bool buffersRolling;
+00873   long duplexPrerollBytes;
+00874   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00875                         unsigned int firstChannel, unsigned int sampleRate,
+00876                         RtAudioFormat format, unsigned int *bufferSize,
+00877                         RtAudio::StreamOptions *options );
+00878 };
+00879 
+00880 #endif
 00881 
-00882 class RtApiAlsa: public RtApi
-00883 {
-00884 public:
-00885 
-00886   RtApiAlsa();
-00887   ~RtApiAlsa();
-00888   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; };
-00889   unsigned int getDeviceCount( void );
-00890   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00891   void closeStream( void );
-00892   void startStream( void );
-00893   void stopStream( void );
-00894   void abortStream( void );
-00895 
-00896   // This function is intended for internal use only.  It must be
-00897   // public because it is called by the internal callback handler,
-00898   // which is not a member of RtAudio.  External use of this function
-00899   // will most likely produce highly undesireable results!
-00900   void callbackEvent( void );
-00901 
-00902   private:
+00882 #if defined(__LINUX_ALSA__)
+00883 
+00884 class RtApiAlsa: public RtApi
+00885 {
+00886 public:
+00887 
+00888   RtApiAlsa();
+00889   ~RtApiAlsa();
+00890   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; };
+00891   unsigned int getDeviceCount( void );
+00892   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00893   void closeStream( void );
+00894   void startStream( void );
+00895   void stopStream( void );
+00896   void abortStream( void );
+00897 
+00898   // This function is intended for internal use only.  It must be
+00899   // public because it is called by the internal callback handler,
+00900   // which is not a member of RtAudio.  External use of this function
+00901   // will most likely produce highly undesireable results!
+00902   void callbackEvent( void );
 00903 
-00904   std::vector<RtAudio::DeviceInfo> devices_;
-00905   void saveDeviceInfo( void );
-00906   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00907                         unsigned int firstChannel, unsigned int sampleRate,
-00908                         RtAudioFormat format, unsigned int *bufferSize,
-00909                         RtAudio::StreamOptions *options );
-00910 };
-00911 
-00912 #endif
-00913 
-00914 #if defined(__LINUX_OSS__)
+00904   private:
+00905 
+00906   std::vector<RtAudio::DeviceInfo> devices_;
+00907   void saveDeviceInfo( void );
+00908   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00909                         unsigned int firstChannel, unsigned int sampleRate,
+00910                         RtAudioFormat format, unsigned int *bufferSize,
+00911                         RtAudio::StreamOptions *options );
+00912 };
+00913 
+00914 #endif
 00915 
-00916 class RtApiOss: public RtApi
-00917 {
-00918 public:
-00919 
-00920   RtApiOss();
-00921   ~RtApiOss();
-00922   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; };
+00916 #if defined(__LINUX_PULSE__)
+00917 
+00918 class RtApiPulse: public RtApi
+00919 {
+00920 public:
+00921   ~RtApiPulse();
+00922   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_PULSE; };
 00923   unsigned int getDeviceCount( void );
 00924   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
 00925   void closeStream( void );
@@ -588,54 +588,89 @@
 00935 
 00936   private:
 00937 
-00938   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00939                         unsigned int firstChannel, unsigned int sampleRate,
-00940                         RtAudioFormat format, unsigned int *bufferSize,
-00941                         RtAudio::StreamOptions *options );
-00942 };
-00943 
-00944 #endif
-00945 
-00946 #if defined(__RTAUDIO_DUMMY__)
+00938   std::vector<RtAudio::DeviceInfo> devices_;
+00939   void saveDeviceInfo( void );
+00940   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels,
+00941                         unsigned int firstChannel, unsigned int sampleRate,
+00942                         RtAudioFormat format, unsigned int *bufferSize,
+00943                         RtAudio::StreamOptions *options );
+00944 };
+00945 
+00946 #endif
 00947 
-00948 class RtApiDummy: public RtApi
-00949 {
-00950 public:
-00951 
-00952   RtApiDummy() { errorText_ = "RtApiDummy: This class provides no functionality."; error( RtError::WARNING ); };
-00953   RtAudio::Api getCurrentApi( void ) { return RtAudio::RTAUDIO_DUMMY; };
-00954   unsigned int getDeviceCount( void ) { return 0; };
-00955   RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) { RtAudio::DeviceInfo info; return info; };
-00956   void closeStream( void ) {};
-00957   void startStream( void ) {};
-00958   void stopStream( void ) {};
-00959   void abortStream( void ) {};
-00960 
-00961   private:
-00962 
-00963   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00964                         unsigned int firstChannel, unsigned int sampleRate,
-00965                         RtAudioFormat format, unsigned int *bufferSize,
-00966                         RtAudio::StreamOptions *options ) { return false; };
-00967 };
-00968 
-00969 #endif
-00970 
-00971 #endif
-00972 
-00973 // Indentation settings for Vim and Emacs
-00974 //
-00975 // Local Variables:
-00976 // c-basic-offset: 2
-00977 // indent-tabs-mode: nil
-00978 // End:
-00979 //
-00980 // vim: et sts=2 sw=2
+00948 
+00949 #if defined(__LINUX_OSS__)
+00950 
+00951 class RtApiOss: public RtApi
+00952 {
+00953 public:
+00954 
+00955   RtApiOss();
+00956   ~RtApiOss();
+00957   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; };
+00958   unsigned int getDeviceCount( void );
+00959   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00960   void closeStream( void );
+00961   void startStream( void );
+00962   void stopStream( void );
+00963   void abortStream( void );
+00964 
+00965   // This function is intended for internal use only.  It must be
+00966   // public because it is called by the internal callback handler,
+00967   // which is not a member of RtAudio.  External use of this function
+00968   // will most likely produce highly undesireable results!
+00969   void callbackEvent( void );
+00970 
+00971   private:
+00972 
+00973   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00974                         unsigned int firstChannel, unsigned int sampleRate,
+00975                         RtAudioFormat format, unsigned int *bufferSize,
+00976                         RtAudio::StreamOptions *options );
+00977 };
+00978 
+00979 #endif
+00980 
+00981 #if defined(__RTAUDIO_DUMMY__)
+00982 
+00983 class RtApiDummy: public RtApi
+00984 {
+00985 public:
+00986 
+00987   RtApiDummy() { errorText_ = "RtApiDummy: This class provides no functionality."; error( RtError::WARNING ); };
+00988   RtAudio::Api getCurrentApi( void ) { return RtAudio::RTAUDIO_DUMMY; };
+00989   unsigned int getDeviceCount( void ) { return 0; };
+00990   RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) { RtAudio::DeviceInfo info; return info; };
+00991   void closeStream( void ) {};
+00992   void startStream( void ) {};
+00993   void stopStream( void ) {};
+00994   void abortStream( void ) {};
+00995 
+00996   private:
+00997 
+00998   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00999                         unsigned int firstChannel, unsigned int sampleRate,
+01000                         RtAudioFormat format, unsigned int *bufferSize,
+01001                         RtAudio::StreamOptions *options ) { return false; };
+01002 };
+01003 
+01004 #endif
+01005 
+01006 #endif
+01007 
+01008 // Indentation settings for Vim and Emacs
+01009 //
+01010 // Local Variables:
+01011 // c-basic-offset: 2
+01012 // indent-tabs-mode: nil
+01013 // End:
+01014 //
+01015 // vim: et sts=2 sw=2
 

- +
©2001-2010 Gary P. Scavone, McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.
©2001-2012 Gary P. Scavone, McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.
-- cgit v1.2.3