diff --git a/configure b/configure index e898329..bae505d 100755 --- a/configure +++ b/configure @@ -311,7 +311,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP byte_order rawwaves include realtime sound_api debug cflags object_path warn build build_cpu build_vendor build_os host host_cpu host_vendor host_os frameworks audio_apis LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS GXX CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP EGREP byte_order rawwaves include realtime sound_api debug cflags object_path warn build build_cpu build_vendor build_os host host_cpu host_vendor host_os frameworks audio_apis objects LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -867,6 +867,8 @@ Optional Packages: --with-oss = choose OSS API support (linux only) --with-jack = choose JACK server support (unix only) --with-core = choose CoreAudio API support (mac only) + --with-asio = choose ASIO API support (windoze only) + --with-ds = choose DirectSound API support (windoze only) Some influential environment variables: CC C compiler command @@ -1332,6 +1334,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_files="$ac_config_files src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile" +# Fill GXX with something before test. +GXX="no" + + # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -4217,89 +4223,11 @@ echo "$as_me: error: math library is needed!" >&2;} fi +# Checks for functions if test $realtime = yes; then -echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 -echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 -if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lpthread $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char pthread_create (); -int -main () -{ -pthread_create (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_pthread_pthread_create=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_pthread_pthread_create=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 -echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 -if test $ac_cv_lib_pthread_pthread_create = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBPTHREAD 1 -_ACEOF - - LIBS="-lpthread $LIBS" - -else - { { echo "$as_me:$LINENO: error: realtime support requires the pthread library!" >&5 -echo "$as_me: error: realtime support requires the pthread library!" >&2;} - { (exit 1); exit 1; }; } -fi - - - - -for ac_func in gettimeofday select socket +for ac_func in select socket do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -4400,6 +4328,100 @@ _ACEOF fi done + echo "$as_me:$LINENO: checking for gettimeofday" >&5 +echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6 +if test "${ac_cv_func_gettimeofday+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gettimeofday to an innocuous variant, in case declares gettimeofday. + For example, HP-UX 11i declares gettimeofday. */ +#define gettimeofday innocuous_gettimeofday + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gettimeofday (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gettimeofday + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gettimeofday (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday) +choke me +#else +char (*f) () = gettimeofday; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != gettimeofday; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gettimeofday=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_gettimeofday=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_gettimeofday" >&5 +echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6 +if test $ac_cv_func_gettimeofday = yes; then + cflags=$cflags" -DHAVE_GETTIMEOFDAY" +fi + fi # Check for debug @@ -4721,6 +4743,85 @@ fi; echo "${ECHO_T}using ALSA" >&6 audio_apis="-D__LINUX_ALSA__ $audio_apis" fi + + +echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthread_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 +if test $ac_cv_lib_pthread_pthread_create = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +else + { { echo "$as_me:$LINENO: error: realtime support requires the pthread library!" >&5 +echo "$as_me: error: realtime support requires the pthread library!" >&2;} + { (exit 1); exit 1; }; } +fi + ;; *-apple*) @@ -5135,6 +5236,130 @@ fi frameworks="-framework CoreAudio -framework CoreFoundation -framework CoreMidi" fi + + +echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5 +echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6 +if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpthread $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char pthread_create (); +int +main () +{ +pthread_create (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_pthread_pthread_create=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_pthread_pthread_create=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5 +echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6 +if test $ac_cv_lib_pthread_pthread_create = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBPTHREAD 1 +_ACEOF + + LIBS="-lpthread $LIBS" + +else + { { echo "$as_me:$LINENO: error: realtime support requires the pthread library!" >&5 +echo "$as_me: error: realtime support requires the pthread library!" >&2;} + { (exit 1); exit 1; }; } +fi + + ;; + + *-mingw32*) + sound_api=_NO_API_ + + +# Check whether --with-asio or --without-asio was given. +if test "${with_asio+set}" = set; then + withval="$with_asio" + sound_api=-D__WINDOWS_ASIO__ + echo "$as_me:$LINENO: result: using ASIO" >&5 +echo "${ECHO_T}using ASIO" >&6 +fi; + if test $sound_api = -D__WINDOWS_ASIO__; then + audio_apis="-D__WINDOWS_ASIO__" + objects="asio.o asiodrivers.o asiolist.o iasiothiscallresolver.o" + + fi + + # Look for DirectSound flag + +# Check whether --with-ds or --without-ds was given. +if test "${with_ds+set}" = set; then + withval="$with_ds" + sound_api=-D__WINDOWS_DS__ + echo "$as_me:$LINENO: result: using DirectSound" >&5 +echo "${ECHO_T}using DirectSound" >&6 +fi; + if test $sound_api = -D__WINDOWS_DS__; then + audio_apis="-D__WINDOWS_DS__ $audio_apis" + LIBS="-ldsound $LIBS" + fi + + # If no audio api flags specified, use DirectSound + if test $sound_api = _NO_API_; then + sound_api=-D__WINDOWS_DS__ + + echo "$as_me:$LINENO: result: using DirectSound" >&5 +echo "${ECHO_T}using DirectSound" >&6 + audio_apis="-D__WINDOWS_DS__" + LIBS="-ldsound $LIBS" + fi + + audio_apis="-D__WINDOWS_MM__ $audio_apis" + LIBS="-lole32 -lwinmm -lWsock32 $LIBS" ;; *) @@ -5939,6 +6164,7 @@ s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t +s,@GXX@,$GXX,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t @@ -5970,6 +6196,7 @@ s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@frameworks@,$frameworks,;t t s,@audio_apis@,$audio_apis,;t t +s,@objects@,$objects,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF diff --git a/doc/html/FileRead_8h-source.html b/doc/html/FileRead_8h-source.html index f4e2dc2..f66e42f 100644 --- a/doc/html/FileRead_8h-source.html +++ b/doc/html/FileRead_8h-source.html @@ -25,55 +25,58 @@ 00041 FileRead(); 00042 00044 -00048 FileRead( std::string fileName, bool typeRaw = false ); -00049 -00051 ~FileRead(); +00050 FileRead( std::string fileName, bool typeRaw = false, unsigned int nChannels = 1, +00051 StkFormat format = STK_SINT16, StkFloat rate = 22050.0 ); 00052 -00054 -00060 void open( std::string fileName, bool typeRaw = false ); -00061 -00063 void close( void ); -00064 -00066 bool isOpen( void ); -00067 -00069 unsigned long fileSize( void ) const { return fileSize_; }; -00070 -00072 unsigned int channels( void ) const { return channels_; }; -00073 -00075 -00080 StkFloat fileRate( void ) const { return fileRate_; }; -00081 -00083 -00095 void read( StkFrames& buffer, unsigned long startFrame = 0, bool doNormalize = true ); -00096 -00097 protected: -00098 -00099 // Get STK RAW file information. -00100 bool getRawInfo( const char *fileName ); -00101 -00102 // Get WAV file header information. -00103 bool getWavInfo( const char *fileName ); -00104 -00105 // Get SND (AU) file header information. -00106 bool getSndInfo( const char *fileName ); -00107 -00108 // Get AIFF file header information. -00109 bool getAifInfo( const char *fileName ); -00110 -00111 // Get MAT-file header information. -00112 bool getMatInfo( const char *fileName ); -00113 -00114 FILE *fd_; -00115 bool byteswap_; -00116 bool wavFile_; -00117 unsigned long fileSize_; -00118 unsigned long dataOffset_; -00119 unsigned int channels_; -00120 StkFormat dataType_; -00121 StkFloat fileRate_; -00122 }; -00123 -00124 #endif +00054 ~FileRead(); +00055 +00057 +00063 void open( std::string fileName, bool typeRaw = false, unsigned int nChannels = 1, +00064 StkFormat format = STK_SINT16, StkFloat rate = 22050.0 ); +00065 +00067 void close( void ); +00068 +00070 bool isOpen( void ); +00071 +00073 unsigned long fileSize( void ) const { return fileSize_; }; +00074 +00076 unsigned int channels( void ) const { return channels_; }; +00077 +00079 +00084 StkFloat fileRate( void ) const { return fileRate_; }; +00085 +00087 +00099 void read( StkFrames& buffer, unsigned long startFrame = 0, bool doNormalize = true ); +00100 +00101 protected: +00102 +00103 // Get STK RAW file information. +00104 bool getRawInfo( const char *fileName, unsigned int nChannels, +00105 StkFormat format, StkFloat rate ); +00106 +00107 // Get WAV file header information. +00108 bool getWavInfo( const char *fileName ); +00109 +00110 // Get SND (AU) file header information. +00111 bool getSndInfo( const char *fileName ); +00112 +00113 // Get AIFF file header information. +00114 bool getAifInfo( const char *fileName ); +00115 +00116 // Get MAT-file header information. +00117 bool getMatInfo( const char *fileName ); +00118 +00119 FILE *fd_; +00120 bool byteswap_; +00121 bool wavFile_; +00122 unsigned long fileSize_; +00123 unsigned long dataOffset_; +00124 unsigned int channels_; +00125 StkFormat dataType_; +00126 StkFloat fileRate_; +00127 }; +00128 +00129 #endif
diff --git a/doc/html/RtAudio_8h-source.html b/doc/html/RtAudio_8h-source.html index 11ae22d..d5366d0 100644 --- a/doc/html/RtAudio_8h-source.html +++ b/doc/html/RtAudio_8h-source.html @@ -14,7 +14,7 @@

RtAudio.h

Go to the documentation of this file.
00001 /************************************************************************/
 00039 /************************************************************************/
 00040 
-00045 // RtAudio: Version 4.0
+00045 // RtAudio: Version 4.0.3
 00046 
 00047 #ifndef __RTAUDIO_H
 00048 #define __RTAUDIO_H
@@ -360,20 +360,20 @@
 00679 //
 00680 // **************************************************************** //
 00681 
-00682 inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); };
-00683 inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); };
-00684 inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); };
-00685 inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); };
-00686 inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); };
-00687 inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); };
-00688 inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); };
-00689 inline void RtAudio :: stopStream( void )  { return rtapi_->stopStream(); };
-00690 inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); };
-00691 inline bool RtAudio :: isStreamOpen( void ) throw() { return rtapi_->isStreamOpen(); };
-00692 inline bool RtAudio :: isStreamRunning( void ) throw() { return rtapi_->isStreamRunning(); };
-00693 inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); };
-00694 inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); };
-00695 inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); };
+00682 inline RtAudio::Api RtAudio :: getCurrentApi( void ) throw() { return rtapi_->getCurrentApi(); }
+00683 inline unsigned int RtAudio :: getDeviceCount( void ) throw() { return rtapi_->getDeviceCount(); }
+00684 inline RtAudio::DeviceInfo RtAudio :: getDeviceInfo( unsigned int device ) { return rtapi_->getDeviceInfo( device ); }
+00685 inline unsigned int RtAudio :: getDefaultInputDevice( void ) throw() { return rtapi_->getDefaultInputDevice(); }
+00686 inline unsigned int RtAudio :: getDefaultOutputDevice( void ) throw() { return rtapi_->getDefaultOutputDevice(); }
+00687 inline void RtAudio :: closeStream( void ) throw() { return rtapi_->closeStream(); }
+00688 inline void RtAudio :: startStream( void ) { return rtapi_->startStream(); }
+00689 inline void RtAudio :: stopStream( void )  { return rtapi_->stopStream(); }
+00690 inline void RtAudio :: abortStream( void ) { return rtapi_->abortStream(); }
+00691 inline bool RtAudio :: isStreamOpen( void ) throw() { return rtapi_->isStreamOpen(); }
+00692 inline bool RtAudio :: isStreamRunning( void ) throw() { return rtapi_->isStreamRunning(); }
+00693 inline long RtAudio :: getStreamLatency( void ) { return rtapi_->getStreamLatency(); }
+00694 inline double RtAudio :: getStreamTime( void ) { return rtapi_->getStreamTime(); }
+00695 inline void RtAudio :: showWarnings( bool value ) throw() { rtapi_->showWarnings( value ); }
 00696 
 00697 // RtApi Subclass prototypes.
 00698 
@@ -475,152 +475,154 @@
 00794 
 00795   private:
 00796 
-00797   bool coInitialized_;
-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_DS__)
+00797   std::vector<RtAudio::DeviceInfo> devices_;
+00798   void saveDeviceInfo( void );
+00799   bool coInitialized_;
+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 RtApiDs: public RtApi
-00809 {
-00810 public:
-00811 
-00812   RtApiDs();
-00813   ~RtApiDs();
-00814   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_DS; };
-00815   unsigned int getDeviceCount( void );
-00816   unsigned int getDefaultOutputDevice( void );
-00817   unsigned int getDefaultInputDevice( 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   void callbackEvent( void );
-00830 
-00831   private:
+00808 #if defined(__WINDOWS_DS__)
+00809 
+00810 class RtApiDs: public RtApi
+00811 {
+00812 public:
+00813 
+00814   RtApiDs();
+00815   ~RtApiDs();
+00816   RtAudio::Api getCurrentApi( void ) { return RtAudio::WINDOWS_DS; };
+00817   unsigned int getDeviceCount( void );
+00818   unsigned int getDefaultOutputDevice( void );
+00819   unsigned int getDefaultInputDevice( void );
+00820   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00821   void closeStream( void );
+00822   void startStream( void );
+00823   void stopStream( void );
+00824   void abortStream( void );
+00825   long getStreamLatency( void );
+00826 
+00827   // This function is intended for internal use only.  It must be
+00828   // public because it is called by the internal callback handler,
+00829   // which is not a member of RtAudio.  External use of this function
+00830   // will most likely produce highly undesireable results!
+00831   void callbackEvent( void );
 00832 
-00833   bool coInitialized_;
-00834   bool buffersRolling;
-00835   long duplexPrerollBytes;
-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 #if defined(__LINUX_ALSA__)
+00833   private:
+00834 
+00835   bool coInitialized_;
+00836   bool buffersRolling;
+00837   long duplexPrerollBytes;
+00838   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00839                         unsigned int firstChannel, unsigned int sampleRate,
+00840                         RtAudioFormat format, unsigned int *bufferSize,
+00841                         RtAudio::StreamOptions *options );
+00842 };
+00843 
+00844 #endif
 00845 
-00846 class RtApiAlsa: public RtApi
-00847 {
-00848 public:
-00849 
-00850   RtApiAlsa();
-00851   ~RtApiAlsa();
-00852   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; };
-00853   unsigned int getDeviceCount( 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 
-00860   // This function is intended for internal use only.  It must be
-00861   // public because it is called by the internal callback handler,
-00862   // which is not a member of RtAudio.  External use of this function
-00863   // will most likely produce highly undesireable results!
-00864   void callbackEvent( void );
-00865 
-00866   private:
+00846 #if defined(__LINUX_ALSA__)
+00847 
+00848 class RtApiAlsa: public RtApi
+00849 {
+00850 public:
+00851 
+00852   RtApiAlsa();
+00853   ~RtApiAlsa();
+00854   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_ALSA; };
+00855   unsigned int getDeviceCount( 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 
+00862   // This function is intended for internal use only.  It must be
+00863   // public because it is called by the internal callback handler,
+00864   // which is not a member of RtAudio.  External use of this function
+00865   // will most likely produce highly undesireable results!
+00866   void callbackEvent( void );
 00867 
-00868   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00869                         unsigned int firstChannel, unsigned int sampleRate,
-00870                         RtAudioFormat format, unsigned int *bufferSize,
-00871                         RtAudio::StreamOptions *options );
-00872 };
-00873 
-00874 #endif
-00875 
-00876 #if defined(__LINUX_OSS__)
+00868   private:
+00869 
+00870   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00871                         unsigned int firstChannel, unsigned int sampleRate,
+00872                         RtAudioFormat format, unsigned int *bufferSize,
+00873                         RtAudio::StreamOptions *options );
+00874 };
+00875 
+00876 #endif
 00877 
-00878 class RtApiOss: public RtApi
-00879 {
-00880 public:
-00881 
-00882   RtApiOss();
-00883   ~RtApiOss();
-00884   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; };
-00885   unsigned int getDeviceCount( void );
-00886   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
-00887   void closeStream( void );
-00888   void startStream( void );
-00889   void stopStream( void );
-00890   void abortStream( void );
-00891 
-00892   // This function is intended for internal use only.  It must be
-00893   // public because it is called by the internal callback handler,
-00894   // which is not a member of RtAudio.  External use of this function
-00895   // will most likely produce highly undesireable results!
-00896   void callbackEvent( void );
-00897 
-00898   private:
+00878 #if defined(__LINUX_OSS__)
+00879 
+00880 class RtApiOss: public RtApi
+00881 {
+00882 public:
+00883 
+00884   RtApiOss();
+00885   ~RtApiOss();
+00886   RtAudio::Api getCurrentApi() { return RtAudio::LINUX_OSS; };
+00887   unsigned int getDeviceCount( void );
+00888   RtAudio::DeviceInfo getDeviceInfo( unsigned int device );
+00889   void closeStream( void );
+00890   void startStream( void );
+00891   void stopStream( void );
+00892   void abortStream( void );
+00893 
+00894   // This function is intended for internal use only.  It must be
+00895   // public because it is called by the internal callback handler,
+00896   // which is not a member of RtAudio.  External use of this function
+00897   // will most likely produce highly undesireable results!
+00898   void callbackEvent( void );
 00899 
-00900   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00901                         unsigned int firstChannel, unsigned int sampleRate,
-00902                         RtAudioFormat format, unsigned int *bufferSize,
-00903                         RtAudio::StreamOptions *options );
-00904 };
-00905 
-00906 #endif
-00907 
-00908 #if defined(__RTAUDIO_DUMMY__)
+00900   private:
+00901 
+00902   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00903                         unsigned int firstChannel, unsigned int sampleRate,
+00904                         RtAudioFormat format, unsigned int *bufferSize,
+00905                         RtAudio::StreamOptions *options );
+00906 };
+00907 
+00908 #endif
 00909 
-00910 class RtApiDummy: public RtApi
-00911 {
-00912 public:
-00913 
-00914   RtApiDummy() { errorText_ = "RtApiDummy: This class provides no functionality."; error( WARNING ); };
-00915   RtAudio::Api getCurrentApi( void ) { return RtAudio::RTAUDIO_DUMMY; };
-00916   unsigned int getDeviceCount( void ) { return 0; };
-00917   RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) { RtAudio::DeviceInfo info; return info; };
-00918   void closeStream( void ) {};
-00919   void startStream( void ) {};
-00920   void stopStream( void ) {};
-00921   void abortStream( void ) {};
-00922 
-00923   private:
+00910 #if defined(__RTAUDIO_DUMMY__)
+00911 
+00912 class RtApiDummy: public RtApi
+00913 {
+00914 public:
+00915 
+00916   RtApiDummy() { errorText_ = "RtApiDummy: This class provides no functionality."; error( RtError::WARNING ); };
+00917   RtAudio::Api getCurrentApi( void ) { return RtAudio::RTAUDIO_DUMMY; };
+00918   unsigned int getDeviceCount( void ) { return 0; };
+00919   RtAudio::DeviceInfo getDeviceInfo( unsigned int device ) { RtAudio::DeviceInfo info; return info; };
+00920   void closeStream( void ) {};
+00921   void startStream( void ) {};
+00922   void stopStream( void ) {};
+00923   void abortStream( void ) {};
 00924 
-00925   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
-00926                         unsigned int firstChannel, unsigned int sampleRate,
-00927                         RtAudioFormat format, unsigned int *bufferSize,
-00928                         RtAudio::StreamOptions *options ) { return false; };
-00929 };
-00930 
-00931 #endif
-00932 
+00925   private:
+00926 
+00927   bool probeDeviceOpen( unsigned int device, StreamMode mode, unsigned int channels, 
+00928                         unsigned int firstChannel, unsigned int sampleRate,
+00929                         RtAudioFormat format, unsigned int *bufferSize,
+00930                         RtAudio::StreamOptions *options ) { return false; };
+00931 };
+00932 
 00933 #endif
 00934 
-00935 // Indentation settings for Vim and Emacs
-00936 //
-00937 // Local Variables:
-00938 // c-basic-offset: 2
-00939 // indent-tabs-mode: nil
-00940 // End:
-00941 //
-00942 // vim: et sts=2 sw=2
+00935 #endif
+00936 
+00937 // Indentation settings for Vim and Emacs
+00938 //
+00939 // Local Variables:
+00940 // c-basic-offset: 2
+00941 // indent-tabs-mode: nil
+00942 // End:
+00943 //
+00944 // vim: et sts=2 sw=2
 

diff --git a/doc/html/RtMidi_8h-source.html b/doc/html/RtMidi_8h-source.html index 7ff2e27..d58d88f 100644 --- a/doc/html/RtMidi_8h-source.html +++ b/doc/html/RtMidi_8h-source.html @@ -14,7 +14,7 @@

RtMidi.h

00001 /**********************************************************************/
 00036 /**********************************************************************/
 00037 
-00038 // RtMidi: Version 1.0.5, in development
+00038 // RtMidi: Version 1.0.7
 00039 
 00040 #ifndef RTMIDI_H
 00041 #define RTMIDI_H
diff --git a/doc/html/Stk_8h-source.html b/doc/html/Stk_8h-source.html
index 84a80f7..e46dac5 100644
--- a/doc/html/Stk_8h-source.html
+++ b/doc/html/Stk_8h-source.html
@@ -12,246 +12,246 @@
 
 

Stk.h

00001 /***************************************************/
-00037 /***************************************************/
-00038 
-00039 #ifndef STK_STK_H
-00040 #define STK_STK_H
-00041 
-00042 #include <string>
-00043 #include <iostream>
-00044 #include <sstream>
-00045 #include <vector>
-00046 
-00047 // Most data in STK is passed and calculated with the
-00048 // following user-definable floating-point type.  You
-00049 // can change this to "float" if you prefer or perhaps
-00050 // a "long double" in the future.
-00051 typedef double StkFloat;
+00051 /***************************************************/
 00052 
-00054 
-00059 class StkError
-00060 {
-00061 public:
-00062   enum Type {
-00063     STATUS,
-00064     WARNING,
-00065     DEBUG_WARNING,
-00066     MEMORY_ALLOCATION,
-00067     MEMORY_ACCESS,
-00068     FUNCTION_ARGUMENT,
-00069     FILE_NOT_FOUND,
-00070     FILE_UNKNOWN_FORMAT,
-00071     FILE_ERROR,
-00072     PROCESS_THREAD,
-00073     PROCESS_SOCKET,
-00074     PROCESS_SOCKET_IPADDR,
-00075     AUDIO_SYSTEM,
-00076     MIDI_SYSTEM,
-00077     UNSPECIFIED
-00078   };
-00079 
-00080 protected:
-00081   std::string message_;
-00082   Type type_;
-00083 
-00084 public:
-00086   StkError(const std::string& message, Type type = StkError::UNSPECIFIED)
-00087     : message_(message), type_(type) {}
-00088 
-00090   virtual ~StkError(void) {};
-00091 
-00093   virtual void printMessage(void) { std::cerr << '\n' << message_ << "\n\n"; }
-00094 
-00096   virtual const Type& getType(void) { return type_; }
+00053 #ifndef STK_STK_H
+00054 #define STK_STK_H
+00055 
+00056 #include <string>
+00057 #include <iostream>
+00058 #include <sstream>
+00059 #include <vector>
+00060 
+00061 // Most data in STK is passed and calculated with the
+00062 // following user-definable floating-point type.  You
+00063 // can change this to "float" if you prefer or perhaps
+00064 // a "long double" in the future.
+00065 typedef double StkFloat;
+00066 
+00068 
+00073 class StkError
+00074 {
+00075 public:
+00076   enum Type {
+00077     STATUS,
+00078     WARNING,
+00079     DEBUG_WARNING,
+00080     MEMORY_ALLOCATION,
+00081     MEMORY_ACCESS,
+00082     FUNCTION_ARGUMENT,
+00083     FILE_NOT_FOUND,
+00084     FILE_UNKNOWN_FORMAT,
+00085     FILE_ERROR,
+00086     PROCESS_THREAD,
+00087     PROCESS_SOCKET,
+00088     PROCESS_SOCKET_IPADDR,
+00089     AUDIO_SYSTEM,
+00090     MIDI_SYSTEM,
+00091     UNSPECIFIED
+00092   };
+00093 
+00094 protected:
+00095   std::string message_;
+00096   Type type_;
 00097 
-00099   virtual const std::string& getMessage(void) { return message_; }
-00100 
-00102   virtual const char *getMessageCString(void) { return message_.c_str(); }
-00103 };
-00104 
+00098 public:
+00100   StkError(const std::string& message, Type type = StkError::UNSPECIFIED)
+00101     : message_(message), type_(type) {}
+00102 
+00104   virtual ~StkError(void) {};
 00105 
-00106 class Stk
-00107 {
-00108 public:
-00109 
-00110   typedef unsigned long StkFormat;
-00111   static const StkFormat STK_SINT8;   
-00112   static const StkFormat STK_SINT16;  
-00113   static const StkFormat STK_SINT24;  
-00114   static const StkFormat STK_SINT32;  
-00115   static const StkFormat STK_FLOAT32; 
-00116   static const StkFormat STK_FLOAT64; 
+00107   virtual void printMessage(void) { std::cerr << '\n' << message_ << "\n\n"; }
+00108 
+00110   virtual const Type& getType(void) { return type_; }
+00111 
+00113   virtual const std::string& getMessage(void) { return message_; }
+00114 
+00116   virtual const char *getMessageCString(void) { return message_.c_str(); }
+00117 };
 00118 
-00119   static StkFloat sampleRate( void ) { return srate_; }
-00120 
-00122 
-00139   static void setSampleRate( StkFloat rate );
-00140 
-00142 
-00147   void ignoreSampleRateChange( bool ignore = true ) { ignoreSampleRateChange_ = ignore; };
-00148 
-00150   static std::string rawwavePath(void) { return rawwavepath_; }
-00151 
-00153   static void setRawwavePath( std::string path );
+00119 
+00120 class Stk
+00121 {
+00122 public:
+00123 
+00124   typedef unsigned long StkFormat;
+00125   static const StkFormat STK_SINT8;   
+00126   static const StkFormat STK_SINT16;  
+00127   static const StkFormat STK_SINT24;  
+00128   static const StkFormat STK_SINT32;  
+00129   static const StkFormat STK_FLOAT32; 
+00130   static const StkFormat STK_FLOAT64; 
+00132 
+00133   static StkFloat sampleRate( void ) { return srate_; }
+00134 
+00136 
+00153   static void setSampleRate( StkFloat rate );
 00154 
-00156   static void swap16( unsigned char *ptr );
-00157 
-00159   static void swap32( unsigned char *ptr );
-00160 
-00162   static void swap64( unsigned char *ptr );
-00163 
-00165   static void sleep( unsigned long milliseconds );
-00166 
-00168   static void handleError( const char *message, StkError::Type type );
-00169 
-00171   static void handleError( std::string message, StkError::Type type );
-00172 
-00174   static void showWarnings( bool status ) { showWarnings_ = status; }
-00175 
-00177   static void printErrors( bool status ) { printErrors_ = status; }
-00178 
-00179 private:
-00180   static StkFloat srate_;
-00181   static std::string rawwavepath_;
-00182   static bool showWarnings_;
-00183   static bool printErrors_;
-00184   static std::vector<Stk *> alertList_;
-00185 
-00186 protected:
-00187 
-00188   std::ostringstream errorString_;
-00189   bool ignoreSampleRateChange_;
-00190 
-00192   Stk( void );
-00193 
-00195   virtual ~Stk( void );
-00196 
-00198   virtual void sampleRateChanged( StkFloat newRate, StkFloat oldRate );
+00156 
+00161   void ignoreSampleRateChange( bool ignore = true ) { ignoreSampleRateChange_ = ignore; };
+00162 
+00164   static std::string rawwavePath(void) { return rawwavepath_; }
+00165 
+00167   static void setRawwavePath( std::string path );
+00168 
+00170   static void swap16( unsigned char *ptr );
+00171 
+00173   static void swap32( unsigned char *ptr );
+00174 
+00176   static void swap64( unsigned char *ptr );
+00177 
+00179   static void sleep( unsigned long milliseconds );
+00180 
+00182   static void handleError( const char *message, StkError::Type type );
+00183 
+00185   static void handleError( std::string message, StkError::Type type );
+00186 
+00188   static void showWarnings( bool status ) { showWarnings_ = status; }
+00189 
+00191   static void printErrors( bool status ) { printErrors_ = status; }
+00192 
+00193 private:
+00194   static StkFloat srate_;
+00195   static std::string rawwavepath_;
+00196   static bool showWarnings_;
+00197   static bool printErrors_;
+00198   static std::vector<Stk *> alertList_;
 00199 
-00201   void addSampleRateAlert( Stk *ptr );
-00202 
-00204   void removeSampleRateAlert( Stk *ptr );
-00205 
-00207   void handleError( StkError::Type type );
-00208 };
-00209 
+00200 protected:
+00201 
+00202   std::ostringstream errorString_;
+00203   bool ignoreSampleRateChange_;
+00204 
+00206   Stk( void );
+00207 
+00209   virtual ~Stk( void );
 00210 
-00211 /***************************************************/
-00226 /***************************************************/
-00227 
-00228 class StkFrames
-00229 {
-00230 public:
-00231 
-00233   StkFrames( unsigned int nFrames = 0, unsigned int nChannels = 0, bool interleaved = true );
-00234 
-00236   StkFrames( const StkFloat& value, unsigned int nFrames, unsigned int nChannels, bool interleaved = true );
-00237 
-00239   ~StkFrames();
-00240 
-00242 
-00248   StkFloat& operator[] ( size_t n );
-00249 
+00212   virtual void sampleRateChanged( StkFloat newRate, StkFloat oldRate );
+00213 
+00215   void addSampleRateAlert( Stk *ptr );
+00216 
+00218   void removeSampleRateAlert( Stk *ptr );
+00219 
+00221   void handleError( StkError::Type type );
+00222 };
+00223 
+00224 
+00225 /***************************************************/
+00240 /***************************************************/
+00241 
+00242 class StkFrames
+00243 {
+00244 public:
+00245 
+00247   StkFrames( unsigned int nFrames = 0, unsigned int nChannels = 0, bool interleaved = true );
+00248 
+00250   StkFrames( const StkFloat& value, unsigned int nFrames, unsigned int nChannels, bool interleaved = true );
 00251 
-00255   StkFloat operator[] ( size_t n ) const;
+00253   ~StkFrames();
+00254 
 00256 
-00258 
-00265   StkFloat& operator() ( size_t frame, unsigned int channel );
-00266 
-00268 
-00273   StkFloat operator() ( size_t frame, unsigned int channel ) const;
-00274 
-00276 
-00282   StkFloat interpolate( StkFloat frame, unsigned int channel = 0 ) const;
-00283 
-00285   size_t size() const { return size_; }; 
-00286 
-00288   bool empty() const;
-00289 
-00291 
-00298   void resize( size_t nFrames, unsigned int nChannels = 1 );
-00299 
-00301 
-00308   void resize( size_t nFrames, unsigned int nChannels, StkFloat value );
-00309 
-00311   unsigned int channels( void ) const { return nChannels_; };
-00312 
-00314   unsigned int frames( void ) const { return nFrames_; };
+00262   StkFloat& operator[] ( size_t n );
+00263 
+00265 
+00269   StkFloat operator[] ( size_t n ) const;
+00270 
+00272 
+00279   StkFloat& operator() ( size_t frame, unsigned int channel );
+00280 
+00282 
+00287   StkFloat operator() ( size_t frame, unsigned int channel ) const;
+00288 
+00290 
+00296   StkFloat interpolate( StkFloat frame, unsigned int channel = 0 ) const;
+00297 
+00299   size_t size() const { return size_; }; 
+00300 
+00302   bool empty() const;
+00303 
+00305 
+00312   void resize( size_t nFrames, unsigned int nChannels = 1 );
+00313 
 00315 
-00317 
-00321   void setDataRate( StkFloat rate ) { dataRate_ = rate; };
-00322 
-00324 
-00328   StkFloat dataRate( void ) const { return dataRate_; };
+00322   void resize( size_t nFrames, unsigned int nChannels, StkFloat value );
+00323 
+00325   unsigned int channels( void ) const { return nChannels_; };
+00326 
+00328   unsigned int frames( void ) const { return nFrames_; };
 00329 
-00331   bool interleaved( void ) const { return interleaved_; };
-00332 
-00334 
-00339   void setInterleaved( bool isInterleaved ) { interleaved_ = isInterleaved; };
-00340 
-00341 private:
-00342 
-00343   StkFloat *data_;
-00344   StkFloat dataRate_;
-00345   size_t nFrames_;
-00346   unsigned int nChannels_;
-00347   size_t size_;
-00348   size_t bufferSize_;
-00349   bool interleaved_;
-00350 
-00351 };
-00352 
-00353 
-00354 // Here are a few other useful typedefs.
-00355 typedef unsigned short UINT16;
-00356 typedef unsigned int UINT32;
-00357 typedef signed short SINT16;
-00358 typedef signed int SINT32;
-00359 typedef float FLOAT32;
-00360 typedef double FLOAT64;
-00361 
-00362 // The default sampling rate.
-00363 const StkFloat SRATE = 44100.0;
+00331 
+00335   void setDataRate( StkFloat rate ) { dataRate_ = rate; };
+00336 
+00338 
+00342   StkFloat dataRate( void ) const { return dataRate_; };
+00343 
+00345   bool interleaved( void ) const { return interleaved_; };
+00346 
+00348 
+00353   void setInterleaved( bool isInterleaved ) { interleaved_ = isInterleaved; };
+00354 
+00355 private:
+00356 
+00357   StkFloat *data_;
+00358   StkFloat dataRate_;
+00359   size_t nFrames_;
+00360   unsigned int nChannels_;
+00361   size_t size_;
+00362   size_t bufferSize_;
+00363   bool interleaved_;
 00364 
-00365 // The default real-time audio input and output buffer size.  If
-00366 // clicks are occuring in the input and/or output sound stream, a
-00367 // larger buffer size may help.  Larger buffer sizes, however, produce
-00368 // more latency.
-00369 const unsigned int RT_BUFFER_SIZE = 512;
-00370 
-00371 // The default rawwave path value is set with the preprocessor
-00372 // definition RAWWAVE_PATH.  This can be specified as an argument to
-00373 // the configure script, in an integrated development environment, or
-00374 // below.  The global STK rawwave path variable can be dynamically set
-00375 // with the Stk::setRawwavePath() function.  This value is
-00376 // concatenated to the beginning of all references to rawwave files in
-00377 // the various STK core classes (ex. Clarinet.cpp).  If you wish to
-00378 // move the rawwaves directory to a different location in your file
-00379 // system, you will need to set this path definition appropriately.
-00380 #if !defined(RAWWAVE_PATH)
-00381   #define RAWWAVE_PATH "../../rawwaves/"
-00382 #endif
-00383 
-00384 const StkFloat PI           = 3.14159265358979;
-00385 const StkFloat TWO_PI       = 2 * PI;
-00386 const StkFloat ONE_OVER_128 = 0.0078125;
-00387 
-00388 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_MM__)
-00389   #define __OS_WINDOWS__
-00390   #define __STK_REALTIME__
-00391 #elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__UNIX_JACK__)
-00392   #define __OS_LINUX__
-00393   #define __STK_REALTIME__
-00394 #elif defined(__IRIX_AL__)
-00395   #define __OS_IRIX__
-00396 #elif defined(__MACOSX_CORE__) || defined(__UNIX_JACK__)
-00397   #define __OS_MACOSX__
-00398   #define __STK_REALTIME__
-00399 #endif
-00400 
-00401 //#define _STK_DEBUG_
-00402 
-00403 #endif
+00365 };
+00366 
+00367 
+00368 // Here are a few other useful typedefs.
+00369 typedef unsigned short UINT16;
+00370 typedef unsigned int UINT32;
+00371 typedef signed short SINT16;
+00372 typedef signed int SINT32;
+00373 typedef float FLOAT32;
+00374 typedef double FLOAT64;
+00375 
+00376 // The default sampling rate.
+00377 const StkFloat SRATE = 44100.0;
+00378 
+00379 // The default real-time audio input and output buffer size.  If
+00380 // clicks are occuring in the input and/or output sound stream, a
+00381 // larger buffer size may help.  Larger buffer sizes, however, produce
+00382 // more latency.
+00383 const unsigned int RT_BUFFER_SIZE = 512;
+00384 
+00385 // The default rawwave path value is set with the preprocessor
+00386 // definition RAWWAVE_PATH.  This can be specified as an argument to
+00387 // the configure script, in an integrated development environment, or
+00388 // below.  The global STK rawwave path variable can be dynamically set
+00389 // with the Stk::setRawwavePath() function.  This value is
+00390 // concatenated to the beginning of all references to rawwave files in
+00391 // the various STK core classes (ex. Clarinet.cpp).  If you wish to
+00392 // move the rawwaves directory to a different location in your file
+00393 // system, you will need to set this path definition appropriately.
+00394 #if !defined(RAWWAVE_PATH)
+00395   #define RAWWAVE_PATH "../../rawwaves/"
+00396 #endif
+00397 
+00398 const StkFloat PI           = 3.14159265358979;
+00399 const StkFloat TWO_PI       = 2 * PI;
+00400 const StkFloat ONE_OVER_128 = 0.0078125;
+00401 
+00402 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_MM__)
+00403   #define __OS_WINDOWS__
+00404   #define __STK_REALTIME__
+00405 #elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__UNIX_JACK__)
+00406   #define __OS_LINUX__
+00407   #define __STK_REALTIME__
+00408 #elif defined(__IRIX_AL__)
+00409   #define __OS_IRIX__
+00410 #elif defined(__MACOSX_CORE__) || defined(__UNIX_JACK__)
+00411   #define __OS_MACOSX__
+00412   #define __STK_REALTIME__
+00413 #endif
+00414 
+00415 //#define _STK_DEBUG_
+00416 
+00417 #endif
 

diff --git a/doc/html/classFileRead-members.html b/doc/html/classFileRead-members.html index aa6ca00..5fac179 100644 --- a/doc/html/classFileRead-members.html +++ b/doc/html/classFileRead-members.html @@ -15,14 +15,14 @@ - + - + diff --git a/doc/html/classFileRead.html b/doc/html/classFileRead.html index 0a517c3..1252d5d 100644 --- a/doc/html/classFileRead.html +++ b/doc/html/classFileRead.html @@ -31,14 +31,14 @@ by Perry R. Cook and Gary P. Scavone, 1995 - 2007.   - + - +
close(void)FileRead
fileRate(void) const FileRead [inline]
FileRead()FileRead
FileRead(std::string fileName, bool typeRaw=false)FileRead
FileRead(std::string fileName, bool typeRaw=false, unsigned int nChannels=1, StkFormat format=STK_SINT16, StkFloat rate=22050.0)FileRead
fileSize(void) const FileRead [inline]
handleError(const char *message, StkError::Type type)Stk [static]
handleError(std::string message, StkError::Type type)Stk [static]
handleError(StkError::Type type)Stk [protected]
ignoreSampleRateChange(bool ignore=true)Stk [inline]
isOpen(void)FileRead
open(std::string fileName, bool typeRaw=false)FileRead
open(std::string fileName, bool typeRaw=false, unsigned int nChannels=1, StkFormat format=STK_SINT16, StkFloat rate=22050.0)FileRead
printErrors(bool status)Stk [inline, static]
rawwavePath(void)Stk [inline, static]
read(StkFrames &buffer, unsigned long startFrame=0, bool doNormalize=true)FileRead
FileRead ()
 Default constructor.
 FileRead (std::string fileName, bool typeRaw=false)
 FileRead (std::string fileName, bool typeRaw=false, unsigned int nChannels=1, StkFormat format=STK_SINT16, StkFloat rate=22050.0)
 Overloaded constructor that opens a file during instantiation.
 ~FileRead ()
 Class destructor.
void open (std::string fileName, bool typeRaw=false)
void open (std::string fileName, bool typeRaw=false, unsigned int nChannels=1, StkFormat format=STK_SINT16, StkFloat rate=22050.0)
 Open the specified file and determine its formatting.
@@ -65,7 +65,7 @@ unsigned int  Read sample frames from the file into an StkFrames object.

Constructor & Destructor Documentation

-

+

- + + + + + + + + + + + + + + + + + + + @@ -101,11 +119,11 @@ unsigned int  +An StkError will be thrown if the file is not found or its format is unknown or unsupported. The optional arguments allow a headerless file type to be supported. If typeRaw is false (the default), the subsequent parameters are ignored.
@@ -80,7 +80,25 @@ unsigned int  bool  typeRaw = false typeRaw = false,
unsigned int  nChannels = 1,
StkFormat  format = STK_SINT16,
StkFloat  rate = 22050.0
Overloaded constructor that opens a file during instantiation.

-An StkError will be thrown if the file is not found or its format is unknown or unsupported.


Member Function Documentation

-

+

- + + + + + + + + + + + + + + + + + + + @@ -141,7 +177,7 @@ An StkError will be thrown if the fi

Open the specified file and determine its formatting.

-An StkError will be thrown if the file is not found or its format is unknown or unsupported. An optional parameter is provided to specify whether the input file is of type STK RAW (default = false). +An StkError will be thrown if the file is not found or its format is unknown or unsupported. The optional arguments allow a headerless file type to be supported. If typeRaw is false (the default), the subsequent parameters are ignored.

@@ -120,7 +138,25 @@ An StkError will be thrown if the fi bool  typeRaw = false typeRaw = false,
unsigned int  nChannels = 1,
StkFormat  format = STK_SINT16,
StkFloat  rate = 22050.0

diff --git a/doc/html/classRtMidi.html b/doc/html/classRtMidi.html index 1e0e155..6c8ca00 100644 --- a/doc/html/classRtMidi.html +++ b/doc/html/classRtMidi.html @@ -22,7 +22,7 @@ An abstract base class for realtime MIDI input/output.

This class implements some common functionality for the realtime MIDI input/output subclasses RtMidiIn and RtMidiOut.

RtMidi WWW site: http://music.mcgill.ca/~gary/rtmidi/

-RtMidi: realtime MIDI i/o C++ classes Copyright (c) 2003-2005 Gary P. Scavone

+RtMidi: realtime MIDI i/o C++ classes Copyright (c) 2003-2007 Gary P. Scavone

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Any person wishing to distribute modifications to the Software is requested to send the modifications to the original developer so that they can be incorporated into the canonical version.

diff --git a/doc/html/classRtMidiIn.html b/doc/html/classRtMidiIn.html index 53d9e65..b08d41b 100644 --- a/doc/html/classRtMidiIn.html +++ b/doc/html/classRtMidiIn.html @@ -42,7 +42,7 @@ typedef void(*  Open a MIDI input connection.
void openVirtualPort (const std::string portName=std::string("RtMidi Input")) - Create a virtual input port to allow software connections (OS X and ALSA only).
+ Create a virtual input port, with optional name, to allow software connections (OS X and ALSA only).
void setCallback (RtMidiCallback callback, void *userData=0)  Set a callback function to be invoked for incoming MIDI messages.
@@ -158,7 +158,7 @@ Implements RtMidi.

-Create a virtual input port to allow software connections (OS X and ALSA only). +Create a virtual input port, with optional name, to allow software connections (OS X and ALSA only).

This function creates a virtual MIDI input port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing for the other APIs).

diff --git a/doc/html/classRtMidiOut.html b/doc/html/classRtMidiOut.html index 6f6e6c0..89acfac 100644 --- a/doc/html/classRtMidiOut.html +++ b/doc/html/classRtMidiOut.html @@ -41,7 +41,7 @@ void  Close an open MIDI connection (if one exists).
void 
openVirtualPort (const std::string portName=std::string("RtMidi Output")) - Create a virtual output port to allow software connections (OS X and ALSA only).
+ Create a virtual output port, with optional name, to allow software connections (OS X and ALSA only).
unsigned int getPortCount () @@ -141,7 +141,7 @@ Implements RtMidi.

-Create a virtual output port to allow software connections (OS X and ALSA only). +Create a virtual output port, with optional name, to allow software connections (OS X and ALSA only).

This function creates a virtual MIDI output port to which other software applications can connect. This type of functionality is currently only supported by the Macintosh OS-X and Linux ALSA APIs (the function does nothing with the other APIs). An exception is thrown if an error occurs while attempting to create the virtual port.

diff --git a/doc/html/classStk.html b/doc/html/classStk.html index e41aa89..8729332 100644 --- a/doc/html/classStk.html +++ b/doc/html/classStk.html @@ -38,7 +38,9 @@ STK base class.

Nearly all STK classes inherit from this class. The global sample rate and rawwave path variables can be queried and modified via Stk. In addition, this class provides error handling and byte-swapping functions.

-by Perry R. Cook and Gary P. Scavone, 1995 - 2007.

+The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code. STK currently runs with realtime support (audio and MIDI) on Linux, Macintosh OS X, and Windows computer platforms. Generic, non-realtime support has been tested under NeXTStep, Sun, and other platforms and should work with any standard C++ compiler.

+STK WWW site: http://ccrma.stanford.edu/software/stk/

+The Synthesis ToolKit in C++ (STK) Copyright (c) 1995-2007 Perry R. Cook and Gary P. Scavone

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Any person wishing to distribute modifications to the Software is asked to send the modifications to the original developer so that they can be incorporated into the canonical version. This is, however, not a binding provision of this license.

diff --git a/doc/html/controlin.html b/doc/html/controlin.html index 69d2c0a..68ec68f 100644 --- a/doc/html/controlin.html +++ b/doc/html/controlin.html @@ -33,10 +33,8 @@ In the following example, we'll modify the bethree.cpp program from #include "SKINI.msg" #include <math.h> #include <algorithm> -#if !defined(__OS_WINDOWS__) // Windoze bogosity for VC++ 6.0 - using std::min; -#endif - +using std::min; + void usage(void) { // Error function in case of incorrect command-line // argument specifications. diff --git a/doc/html/download.html b/doc/html/download.html index 16dfb83..21a089e 100644 --- a/doc/html/download.html +++ b/doc/html/download.html @@ -10,19 +10,31 @@


Download, Release Notes, and Bug Fixes

-Download Version 4.3.0 (13 August 2007):

+Download Version 4.3.1 (7 December 2007):

Release Notes:

-Version 4.3.0

+Version 4.3.1 +
    +
  • +Further headerless file support in FileRead.
  • +
  • +Bug fix in RtWvOut.cpp.
  • +
  • +Added configure support for MinGW.
  • +
  • +Updates to RtAudio and RtMidi for MinGW.
  • +
  • +Changes to channel assignment in demo.cpp.
  • +
+

+Version 4.3.1

+: TwoZero
  • Type +: RtError
  • type +: Skini::Message
    diff --git a/doc/html/hello.html b/doc/html/hello.html index 2cba41d..31f4b06 100644 --- a/doc/html/hello.html +++ b/doc/html/hello.html @@ -65,7 +65,7 @@ The ToolKit has some basic C++ error handling functionality built in. Classes th output.openFile( "hellosine.wav", 1, FileWrite::FILE_WAV, Stk::STK_SINT16 ); } catch ( StkError & ) { - exit(0); + exit( 1 ); } input.setFrequency( 440.0 ); @@ -78,9 +78,8 @@ The ToolKit has some basic C++ error handling functionality built in. Classes th output.tick( input.tick() ); } catch ( StkError & ) { - exit(0); + exit( 1 ); } - } return 0; diff --git a/doc/html/index.html b/doc/html/index.html index 8641f62..470d27a 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -11,7 +11,7 @@

    The Synthesis ToolKit in C++ (STK)

    -

    4.3

    +

    4.3.1

    Perry R. Cook & Gary P. Scavone

    diff --git a/doc/html/multichannel.html b/doc/html/multichannel.html index e99a9c4..8a82303 100644 --- a/doc/html/multichannel.html +++ b/doc/html/multichannel.html @@ -36,7 +36,7 @@ The following example demonstrates the use of the openFile( "foursine.aif", 4, FileWrite::FILE_AIF, Stk::STK_SINT16 ); } catch (StkError &) { - exit(0); + exit( 1 ); } // Write two seconds of four sines to the output file diff --git a/doc/html/polyvoices.html b/doc/html/polyvoices.html index fa3c9f8..87a4577 100644 --- a/doc/html/polyvoices.html +++ b/doc/html/polyvoices.html @@ -21,10 +21,8 @@ In the following example, we modify the controlbee.cpp program to m #include "SKINI.msg" #include <algorithm> -#if !defined(__OS_WINDOWS__) // Windoze bogosity for VC++ 6.0 - using std::min; -#endif - +using std::min; + // The TickData structure holds all the class instances and data that // are shared by the various processing functions. struct TickData { diff --git a/doc/html/realtime.html b/doc/html/realtime.html index 75e372d..fd06237 100644 --- a/doc/html/realtime.html +++ b/doc/html/realtime.html @@ -29,7 +29,7 @@ dac = new RtWvOut( 1 ); } catch ( StkError & ) { - exit(0); + exit( 1 ); } sine.setFrequency( 441.0 );