[PD-cvs] pd/portaudio/pa_asio pa_asio.cpp,1.9,1.10

Miller Puckette millerpuckette at users.sourceforge.net
Sat Jun 3 21:13:08 CEST 2006


Update of /cvsroot/pure-data/pd/portaudio/pa_asio
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12672/pd/portaudio/pa_asio

Modified Files:
	pa_asio.cpp 
Log Message:
FFT package selection

Zmoelnig's multi-'$' patch

big-soundfile support

Patch to set open directories (openpanel, savepanel)

patch to allow funny characters in extern names

fixed makefile.in to support intel mac






Index: pa_asio.cpp
===================================================================
RCS file: /cvsroot/pure-data/pd/portaudio/pa_asio/pa_asio.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** pa_asio.cpp	30 May 2005 03:04:07 -0000	1.9
--- pa_asio.cpp	3 Jun 2006 19:13:06 -0000	1.10
***************
*** 1082,1085 ****
--- 1082,1105 ----
          for( i=0; i < driverCount; ++i )
          {
+ 
+             PA_DEBUG(("ASIO names[%d]:%s\n",i,names[i]));
+ 
+             // Since portaudio opens ALL ASIO drivers, and no one else does that,
+             // we face fact that some drivers were not meant for it, drivers which act
+             // like shells on top of REAL drivers, for instance.
+             // so we get duplicate handles, locks and other problems.
+             // so lets NOT try to load any such wrappers. 
+             // The ones i [davidv] know of so far are:
+ 
+             if (   strcmp (names[i],"ASIO DirectX Full Duplex Driver") == 0
+                 || strcmp (names[i],"ASIO Multimedia Driver")          == 0
+                 || strncmp(names[i],"Premiere",8)                      == 0   //"Premiere Elements Windows Sound 1.0"
+                 || strncmp(names[i],"Adobe",5)                         == 0 ) //"Adobe Default Windows Sound 1.5"
+             {
+                 PA_DEBUG(("BLACKLISTED!!!\n"));
+                 continue;
+             }
+ 
+ 
              /* Attempt to load the asio driver... */
              if( LoadAsioDriver( names[i], &paAsioDriverInfo, asioHostApi->systemSpecific ) == paNoError )
***************
*** 1734,1747 ****
      }
  
!     PA_DEBUG(("before ASIOSetSampleRate(%f)\n",sampleRate));
!     asioError = ASIOSetSampleRate( sampleRate );
!     /* Set sample rate */
      if( asioError != ASE_OK )
      {
          result = paInvalidSampleRate;
!         PA_DEBUG(("ERROR: ASIOSetSampleRate: %s\n", PaAsio_GetAsioErrorText(asioError) ));
          goto error;
      }
!     PA_DEBUG(("after ASIOSetSampleRate(%f)\n",sampleRate));
      /*
          IMPLEMENT ME:
--- 1754,1803 ----
      }
  
! 
!     // check that the device supports the requested sample rate 
! 
!     asioError = ASIOCanSampleRate( sampleRate );
!     PA_DEBUG(("ASIOCanSampleRate(%f):%d\n",sampleRate, asioError ));
! 
      if( asioError != ASE_OK )
      {
          result = paInvalidSampleRate;
!         PA_DEBUG(("ERROR: ASIOCanSampleRate: %s\n", PaAsio_GetAsioErrorText(asioError) ));
          goto error;
      }
! 
! 
!     // retrieve the current sample rate, we only change to the requested
!     // sample rate if the device is not already in that rate.
! 
!     ASIOSampleRate oldRate;
!     asioError = ASIOGetSampleRate(&oldRate);
!     if( asioError != ASE_OK )
!     {
!         result = paInvalidSampleRate;
!         PA_DEBUG(("ERROR: ASIOGetSampleRate: %s\n", PaAsio_GetAsioErrorText(asioError) ));
!         goto error;
!     }
!     PA_DEBUG(("ASIOGetSampleRate:%f\n",oldRate));
! 
!     if (oldRate != sampleRate){
! 
!         PA_DEBUG(("before ASIOSetSampleRate(%f)\n",sampleRate));
!         asioError = ASIOSetSampleRate( sampleRate );
!         /* Set sample rate */
!         if( asioError != ASE_OK )
!         {
!             result = paInvalidSampleRate;
!             PA_DEBUG(("ERROR: ASIOSetSampleRate: %s\n", PaAsio_GetAsioErrorText(asioError) ));
!             goto error;
!         }
!         PA_DEBUG(("after ASIOSetSampleRate(%f)\n",sampleRate));
!     }
!     else
!     {
!         PA_DEBUG(("No Need to change SR\n"));
!     }
! 
! 
      /*
          IMPLEMENT ME:
***************
*** 2036,2039 ****
--- 2092,2096 ----
  
  error:
+     PA_DEBUG(("goto errored\n"));
      if( stream )
      {





More information about the Pd-cvs mailing list