[PD-cvs] pd/src s_audio.c, 1.5.4.16.2.18, 1.5.4.16.2.19 s_audio_portaudio.c, 1.1.2.16, 1.1.2.17 s_midi.c, 1.4.4.1.2.8, 1.4.4.1.2.9 s_midi_pm.c, 1.4.4.1.2.3, 1.4.4.1.2.4

Thomas Grill xovo at users.sourceforge.net
Sat Aug 5 21:04:01 CEST 2006


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

Modified Files:
      Tag: devel_0_39
	s_audio.c s_audio_portaudio.c s_midi.c s_midi_pm.c 
Log Message:
more fixes to audio and midi consistence

Index: s_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.5.4.16.2.18
retrieving revision 1.5.4.16.2.19
diff -C2 -d -r1.5.4.16.2.18 -r1.5.4.16.2.19
*** s_audio.c	25 Jun 2006 17:37:42 -0000	1.5.4.16.2.18
--- s_audio.c	5 Aug 2006 19:03:59 -0000	1.5.4.16.2.19
***************
*** 1263,1267 ****
      
      t_atom argv[MAXNDEV];
!     t_float f = ac ? atom_getfloatarg(0,ac,av) : -1;
  
      t_symbol * selector = gensym("audioindev");
--- 1263,1267 ----
      
      t_atom argv[MAXNDEV];
!     int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1;
  
      t_symbol * selector = gensym("audioindev");
***************
*** 1288,1295 ****
          typedmess(pd->s_thing, selector, nindevs, argv);
      }
!     else if (f < (float) nindevs)
      {
          t_symbol * sym;
!         strcpy(str, indevlist + (int)f * DEVDESCSIZE);
          sym = gensym(str);
          SETSYMBOL(argv, sym);
--- 1288,1295 ----
          typedmess(pd->s_thing, selector, nindevs, argv);
      }
!     else if (f < nindevs)
      {
          t_symbol * sym;
!         strcpy(str, indevlist + f * DEVDESCSIZE);
          sym = gensym(str);
          SETSYMBOL(argv, sym);
***************
*** 1320,1324 ****
      
      t_atom argv[MAXNDEV];
!     t_float f = ac ? atom_getfloatarg(0,ac,av) : -1;
  
      t_symbol * selector = gensym("audiooutdev");
--- 1320,1324 ----
      
      t_atom argv[MAXNDEV];
!     int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1;
  
      t_symbol * selector = gensym("audiooutdev");
***************
*** 1345,1352 ****
          typedmess(pd->s_thing, selector, noutdevs, argv);
      }
!     else if (f < (float) noutdevs)
      {
          t_symbol * sym;
!         strcpy(str, outdevlist + (int)f  * DEVDESCSIZE);
          sym = gensym(str);
          SETSYMBOL(argv, sym);
--- 1345,1352 ----
          typedmess(pd->s_thing, selector, noutdevs, argv);
      }
!     else if (f < noutdevs)
      {
          t_symbol * sym;
!         strcpy(str, outdevlist + f  * DEVDESCSIZE);
          sym = gensym(str);
          SETSYMBOL(argv, sym);
***************
*** 1357,1381 ****
  /* some prototypes from s_audio_portaudio.c */
  extern void pa_getcurrent_devices(void);
! extern void pa_getaudioindevinfo(t_float f);
! extern void pa_getaudiooutdevinfo(t_float f);
  extern void pa_test_setting (int ac, t_atom *av);
  extern void pa_get_asio_latencies(t_float f);
  
! void glob_audio_getaudioindevinfo(t_pd * dummy, t_float f)
  {
  #ifdef USEAPI_PORTAUDIO
  #ifndef PABLIO
      if (sys_audioapi == API_PORTAUDIO)
!         pa_getaudioindevinfo(f);
  #endif
  #endif
  }
  
! void glob_audio_getaudiooutdevinfo(t_pd * dummy, t_float f)
  {
  #ifdef USEAPI_PORTAUDIO
  #ifndef PABLIO
      if (sys_audioapi == API_PORTAUDIO)
!         pa_getaudiooutdevinfo(f);
  #endif
  #endif
--- 1357,1381 ----
  /* some prototypes from s_audio_portaudio.c */
  extern void pa_getcurrent_devices(void);
! extern void pa_getaudioininfo(t_float f);
! extern void pa_getaudiooutinfo(t_float f);
  extern void pa_test_setting (int ac, t_atom *av);
  extern void pa_get_asio_latencies(t_float f);
  
! void glob_audio_getaudioininfo(t_pd * dummy, t_float f)
  {
  #ifdef USEAPI_PORTAUDIO
  #ifndef PABLIO
      if (sys_audioapi == API_PORTAUDIO)
!         pa_getaudioininfo(f);
  #endif
  #endif
  }
  
! void glob_audio_getaudiooutinfo(t_pd * dummy, t_float f)
  {
  #ifdef USEAPI_PORTAUDIO
  #ifndef PABLIO
      if (sys_audioapi == API_PORTAUDIO)
!         pa_getaudiooutinfo(f);
  #endif
  #endif

Index: s_midi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_midi.c,v
retrieving revision 1.4.4.1.2.8
retrieving revision 1.4.4.1.2.9
diff -C2 -d -r1.4.4.1.2.8 -r1.4.4.1.2.9
*** s_midi.c	25 Jul 2006 10:54:41 -0000	1.4.4.1.2.8
--- s_midi.c	5 Aug 2006 19:03:59 -0000	1.4.4.1.2.9
***************
*** 810,814 ****
  /* tb { */
  
! void glob_midi_getindevs(t_pd *dummy)
  {
      char buf[1024 + 2 * MAXNDEV*(DEVDESCSIZE+4)];
--- 810,814 ----
  /* tb { */
  
! void glob_midi_getindevs(t_pd *dummy, t_symbol *s, int ac, t_atom *av)
  {
      char buf[1024 + 2 * MAXNDEV*(DEVDESCSIZE+4)];
***************
*** 830,833 ****
--- 830,835 ----
      char str[DEVDESCSIZE];
  
+     int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1;
+ 
      t_symbol * selector = gensym("midiindev");
      t_symbol * pd = gensym("pd");
***************
*** 836,850 ****
          MAXNDEV, DEVDESCSIZE);
  
!     for (i = 0; i < nindevs; i++)
      {
          t_symbol * sym;
!         strcpy(str, indevlist + i  * DEVDESCSIZE);
          sym = gensym(str);
!         SETSYMBOL(argv+i, sym);
      }
-     typedmess(pd->s_thing, selector, nindevs, argv);
  }
  
! void glob_midi_getoutdevs(t_pd *dummy)
  {
      char buf[1024 + 2 * MAXNDEV*(DEVDESCSIZE+4)];
--- 838,865 ----
          MAXNDEV, DEVDESCSIZE);
  
!     if (f < 0)
!     {
!         int i;
! 
!         for (i = 0; i != nindevs ;++i)
!         {
!             t_symbol * sym;
!             strcpy(str, indevlist + i * DEVDESCSIZE);
!             sym = gensym(str);
!             SETSYMBOL(argv+i, sym);
!         }
!         typedmess(pd->s_thing, selector, nindevs, argv);
!     }
!     else if (f < nindevs)
      {
          t_symbol * sym;
!         strcpy(str, indevlist + f * DEVDESCSIZE);
          sym = gensym(str);
!         SETSYMBOL(argv, sym);
!         typedmess(pd->s_thing, selector, 1, argv);
      }
  }
  
! void glob_midi_getoutdevs(t_pd *dummy, t_symbol *s, int ac, t_atom *av)
  {
      char buf[1024 + 2 * MAXNDEV*(DEVDESCSIZE+4)];
***************
*** 865,868 ****
--- 880,885 ----
      t_atom argv[MAXNDEV];
      char str[DEVDESCSIZE];
+ 	
+     int f = ac ? (int)atom_getfloatarg(0,ac,av) : -1;
  
      t_symbol * selector = gensym("midioutdev");
***************
*** 872,883 ****
          MAXNDEV, DEVDESCSIZE);
  
!     for (i = 0; i < noutdevs; i++)
      {
          t_symbol * sym;
!         strcpy(str, outdevlist + i  * DEVDESCSIZE);
          sym = gensym(str);
!         SETSYMBOL(argv+i, sym);
      }
-     typedmess(pd->s_thing, selector, noutdevs, argv);
  }
  
--- 889,913 ----
          MAXNDEV, DEVDESCSIZE);
  
!     if (f < 0)
!     {
!         int i;
! 
!         for (i = 0; i != noutdevs ;++i)
!         {
!             t_symbol * sym;
!             strcpy(str, outdevlist + i  * DEVDESCSIZE);
!             sym = gensym(str);
!             SETSYMBOL(argv+i, sym);
!         }
!         typedmess(pd->s_thing, selector, noutdevs, argv);
!     }
!     else if (f < noutdevs)
      {
          t_symbol * sym;
!         strcpy(str, outdevlist + f  * DEVDESCSIZE);
          sym = gensym(str);
!         SETSYMBOL(argv, sym);
!         typedmess(pd->s_thing, selector, 1, argv);
      }
  }
  
***************
*** 905,909 ****
      for (i = 0; i < noutdev; i++)
      {
!         SETFLOAT(argv+i, midiindev[i]);
      }
      typedmess(pd->s_thing, selector, nindev, argv);
--- 935,939 ----
      for (i = 0; i < noutdev; i++)
      {
!         SETFLOAT(argv+i, midiindev[i]+1);
      }
      typedmess(pd->s_thing, selector, nindev, argv);
***************
*** 932,936 ****
      for (i = 0; i < noutdev; i++)
      {
!         SETFLOAT(argv+i, midioutdev[i]);
      }
      typedmess(pd->s_thing, selector, nindev, argv);
--- 962,966 ----
      for (i = 0; i < noutdev; i++)
      {
!         SETFLOAT(argv+i, midioutdev[i]+1);
      }
      typedmess(pd->s_thing, selector, nindev, argv);

Index: s_audio_portaudio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/s_audio_portaudio.c,v
retrieving revision 1.1.2.16
retrieving revision 1.1.2.17
diff -C2 -d -r1.1.2.16 -r1.1.2.17
*** s_audio_portaudio.c	4 Aug 2006 11:55:51 -0000	1.1.2.16
--- s_audio_portaudio.c	5 Aug 2006 19:03:59 -0000	1.1.2.17
***************
*** 209,212 ****
--- 209,213 ----
          {
              const PaStreamInfo * streaminfo = Pa_GetStreamInfo (pa_stream);
+ 
              t_atom atoms[4];
  
***************
*** 216,223 ****
  
              sys_schedadvance = 1e-6 * streaminfo->outputLatency;
              SETFLOAT(atoms, (float)pa_indev);
              SETFLOAT(atoms+1, (float)inchans);
              SETFLOAT(atoms+2, (float)rate);
!             SETFLOAT(atoms+3, (float)streaminfo->inputLatency * 1000);
              typedmess(pd->s_thing, selector1, 4, atoms);
  
--- 217,225 ----
  
              sys_schedadvance = 1e-6 * streaminfo->outputLatency;
+ 
              SETFLOAT(atoms, (float)pa_indev);
              SETFLOAT(atoms+1, (float)inchans);
              SETFLOAT(atoms+2, (float)rate);
!             SETFLOAT(atoms+3, (float)streaminfo->inputLatency * 1000.f);
              typedmess(pd->s_thing, selector1, 4, atoms);
  
***************
*** 225,229 ****
              SETFLOAT(atoms+1, (float)outchans);
              SETFLOAT(atoms+2, (float)rate);
!             SETFLOAT(atoms+3, (float)streaminfo->outputLatency * 1000);
              typedmess(pd->s_thing, selector2, 4, atoms);
          }
--- 227,231 ----
              SETFLOAT(atoms+1, (float)outchans);
              SETFLOAT(atoms+2, (float)rate);
!             SETFLOAT(atoms+3, (float)streaminfo->outputLatency * 1000.f);
              typedmess(pd->s_thing, selector2, 4, atoms);
          }
***************
*** 475,479 ****
  }
  
! void pa_getaudioindevinfo(t_float f)
  {
      int i = pdindev2paindev((int)f);
--- 477,481 ----
  }
  
! void pa_getaudioininfo(t_float f)
  {
      int i = pdindev2paindev((int)f);
***************
*** 485,489 ****
      if (pdi)
      {
!         t_symbol * selector = gensym("audioindevinfo");
          t_symbol * pd = gensym("pd");
          t_atom argv[4];
--- 487,491 ----
      if (pdi)
      {
!         t_symbol * selector = gensym("audioininfo");
          t_symbol * pd = gensym("pd");
          t_atom argv[4];
***************
*** 496,500 ****
  }
  
! void pa_getaudiooutdevinfo(t_float f)
  {
      int i = pdoutdev2paoutdev((int)f);
--- 498,502 ----
  }
  
! void pa_getaudiooutinfo(t_float f)
  {
      int i = pdoutdev2paoutdev((int)f);
***************
*** 506,510 ****
      if (pdi)
      {
!         t_symbol * selector = gensym("audiooutdevinfo");
          t_symbol * pd = gensym("pd");
          t_atom argv[4];
--- 508,512 ----
      if (pdi)
      {
!         t_symbol * selector = gensym("audiooutinfo");
          t_symbol * pd = gensym("pd");
          t_atom argv[4];
***************
*** 535,539 ****
      int outchans = atom_getfloatarg(4, ac, av);
      int advance = atom_getfloatarg(5, ac, av);
-     int blocksize =  (advance * samplerate) / (1000000.);
      t_symbol * pd = gensym("pd");
      t_symbol * selector = gensym("testaudiosettingresult");
--- 537,540 ----
***************
*** 564,568 ****
          ret = Pa_IsFormatSupported(&inputParameters, &outputParameters, samplerate);
  
!         SETFLOAT(argv, ret);
          typedmess(pd->s_thing, selector, 1, argv);
      }
--- 565,569 ----
          ret = Pa_IsFormatSupported(&inputParameters, &outputParameters, samplerate);
  
!         SETFLOAT(argv, ret == paNoError?1:0);
          typedmess(pd->s_thing, selector, 1, argv);
      }

Index: s_midi_pm.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_midi_pm.c,v
retrieving revision 1.4.4.1.2.3
retrieving revision 1.4.4.1.2.4
diff -C2 -d -r1.4.4.1.2.3 -r1.4.4.1.2.4
*** s_midi_pm.c	28 Jul 2006 14:46:43 -0000	1.4.4.1.2.3
--- s_midi_pm.c	5 Aug 2006 19:03:59 -0000	1.4.4.1.2.4
***************
*** 41,44 ****
--- 41,45 ----
      for (i = 0; i < nmidiin; i++)
      {
+ 		int found = 0;
          for (j = 0, devno = 0; j < Pm_CountDevices(); j++)
          {
***************
*** 50,54 ****
                      err = Pm_OpenInput(&mac_midiindevlist[mac_nmidiindev],
                          j, NULL, 100, NULL, NULL);
!                     if (err)
                          post("could not open midi input %d (%s): %s",
                              j, info->name, Pm_GetErrorText(err));
--- 51,55 ----
                      err = Pm_OpenInput(&mac_midiindevlist[mac_nmidiindev],
                          j, NULL, 100, NULL, NULL);
!                     if (err != pmNoError)
                          post("could not open midi input %d (%s): %s",
                              j, info->name, Pm_GetErrorText(err));
***************
*** 60,63 ****
--- 61,65 ----
                                  info->name);
                          mac_nmidiindev++;
+ 						found = 1;
                      }
                  }
***************
*** 65,68 ****
--- 67,72 ----
              }
          }
+         if(!found)
+ 			post("could not find midi device %d",midiinvec[i]);
      }   
  
***************
*** 70,73 ****
--- 74,78 ----
      for (i = 0; i < nmidiout; i++)
      {
+ 		int found = 0;
          for (j = 0, devno = 0; j < Pm_CountDevices(); j++)
          {
***************
*** 89,92 ****
--- 94,98 ----
                                  info->name);
                          mac_nmidioutdev++;
+ 						found = 1;
                      }
                  }
***************
*** 94,97 ****
--- 100,105 ----
              }
          }
+         if(!found)
+ 			post("could not find midi device %d",midioutvec[i]);
      }   
  }





More information about the Pd-cvs mailing list