[PD-cvs] pd/src s_audio_portaudio.c,1.1.2.3,1.1.2.4

Tim Blechmann timblech at users.sourceforge.net
Fri May 5 22:55:54 CEST 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19642/src

Modified Files:
      Tag: devel_0_39
	s_audio_portaudio.c 
Log Message:
reverting portaudio/pd indexing

Index: s_audio_portaudio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/s_audio_portaudio.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -C2 -d -r1.1.2.3 -r1.1.2.4
*** s_audio_portaudio.c	23 Apr 2006 12:13:45 -0000	1.1.2.3
--- s_audio_portaudio.c	5 May 2006 20:55:52 -0000	1.1.2.4
***************
*** 67,70 ****
--- 67,73 ----
  static int pa_bufferpos;
  
+ static int pdindev2paindev(int pdindev);
+ static int pdoutdev2paoutdev(int pdoutdev);
+ 
  int process (const void *input, void *output, unsigned long frameCount, 
      const PaStreamCallbackTimeInfo* timeInfo, 
***************
*** 112,132 ****
      if (inchans > 0)
      {
!         const PaDeviceInfo *info = Pa_GetDeviceInfo(indeviceno);
!         int maxchans = info->maxOutputChannels;
!         if (maxchans > 0)
          {
!             pa_indev = indeviceno;
          }
      }
!     
      if (outchans > 0)
      {
!         const PaDeviceInfo *info = Pa_GetDeviceInfo(outdeviceno);
!         int maxchans = info->maxOutputChannels;
!         if (maxchans > 0)
          {
!             pa_outdev = outdeviceno;
          }
      }
  
      if (1/* sys_verbose */)
--- 115,156 ----
      if (inchans > 0)
      {
!         for (j = 0, devno = 0; j < Pa_GetDeviceCount(); j++)
          {
!             const PaDeviceInfo *info = Pa_GetDeviceInfo(j);
!             int maxchans = info->maxInputChannels;
!             if (maxchans > 0)
!             {
!                 if (devno == indeviceno)
!                 {
!                     if (maxchans < inchans)
!                         inchans = maxchans;
!                     pa_indev = j;
!                     break;
!                 }
!                 devno++;
!             }
          }
      }
!   
      if (outchans > 0)
      {
!         for (j = 0, devno = 0; j < Pa_GetDeviceCount(); j++)
          {
!             const PaDeviceInfo *info = Pa_GetDeviceInfo(j);
!             int maxchans = info->maxOutputChannels;
!             if (maxchans > 0)
!             {
!                 if (devno == outdeviceno)
!                 {
!                     if (maxchans < outchans)
!                         outchans = maxchans;
!                     pa_outdev = j;
!                     break;
!                 }
!                 devno++;
!             }
          }
      }
+     
  
      if (1/* sys_verbose */)
***************
*** 430,434 ****
      {
          const PaDeviceInfo *pdi = Pa_GetDeviceInfo(i);
!         if (nin < maxndev)
          {
              PaHostApiIndex api = pdi->hostApi;
--- 454,458 ----
      {
          const PaDeviceInfo *pdi = Pa_GetDeviceInfo(i);
!         if (pdi->maxInputChannels > 0 && nin < maxndev)
          {
              PaHostApiIndex api = pdi->hostApi;
***************
*** 441,445 ****
              nin++;
          }
!         if (nout < maxndev)
          {
              PaHostApiIndex api = pdi->hostApi;
--- 465,469 ----
              nin++;
          }
!         if (pdi->maxOutputChannels > 0 && nout < maxndev)
          {
              PaHostApiIndex api = pdi->hostApi;
***************
*** 460,464 ****
  void pa_getaudioindevinfo(t_float f)
  {
!     int i = (int)f;
      const PaDeviceInfo * pdi;
     
--- 484,488 ----
  void pa_getaudioindevinfo(t_float f)
  {
!     int i = pdindev2paindev((int)f);
      const PaDeviceInfo * pdi;
     
***************
*** 481,485 ****
  void pa_getaudiooutdevinfo(t_float f)
  {
!     int i = (int)f;
      const PaDeviceInfo * pdi;
     
--- 505,509 ----
  void pa_getaudiooutdevinfo(t_float f)
  {
!     int i = pdoutdev2paoutdev((int)f);
      const PaDeviceInfo * pdi;
     
***************
*** 525,528 ****
--- 549,555 ----
      PaStreamParameters inputParameters, outputParameters;
      
+     indev = pdindev2paindev(indev);
+     outdev = pdoutdev2paoutdev(outdev);
+     
      if ((pa_indev == -1) && (pa_outdev == -1))
      {
***************
*** 547,548 ****
--- 574,613 ----
      }
  }
+ 
+ static int pdindev2paindev(int pdindev)
+ {
+     int j;
+     int devno;
+     for (j = 0, devno = 0; j < Pa_GetDeviceCount(); j++)
+     {
+         const PaDeviceInfo *info = Pa_GetDeviceInfo(j);
+         int maxchans = info->maxInputChannels;
+         if (maxchans > 0)
+         {
+             if (devno == pdindev)
+             {
+                 return devno;
+             }
+             devno++;
+         }
+     }
+ }
+ 
+ static int pdoutdev2paoutdev(int pdoutdev)
+ {
+     int j;
+     int devno;
+     for (j = 0, devno = 0; j < Pa_GetDeviceCount(); j++)
+     {
+         const PaDeviceInfo *info = Pa_GetDeviceInfo(j);
+         int maxchans = info->maxOutputChannels;
+         if (maxchans > 0)
+         {
+             if (devno == pdoutdev)
+             {
+                 return devno;
+             }
+             devno++;
+         }
+     }
+ }





More information about the Pd-cvs mailing list