[PD-cvs] pd/src s_midi.c,1.4.4.1.2.12.2.7,1.4.4.1.2.12.2.8

Mathieu Bouchard matju at users.sourceforge.net
Thu Jun 28 18:50:39 CEST 2007


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

Modified Files:
      Tag: desiredata
	s_midi.c 
Log Message:
cleanup


Index: s_midi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_midi.c,v
retrieving revision 1.4.4.1.2.12.2.7
retrieving revision 1.4.4.1.2.12.2.8
diff -C2 -d -r1.4.4.1.2.12.2.7 -r1.4.4.1.2.12.2.8
*** s_midi.c	28 Jun 2007 06:21:23 -0000	1.4.4.1.2.12.2.7
--- s_midi.c	28 Jun 2007 16:50:36 -0000	1.4.4.1.2.12.2.8
***************
*** 24,29 ****
  #include <signal.h>
  
! typedef struct _midiqelem
! {
      double q_time;
      int q_portno;
--- 24,28 ----
  #include <signal.h>
  
! typedef struct _midiqelem {
      double q_time;
      int q_portno;
***************
*** 57,83 ****
  static double sys_whenupdate;
  
! void sys_initmidiqueue( void)
! {
      sys_midiinittime = clock_getlogicaltime();
      sys_dactimeminusrealtime = sys_adctimeminusrealtime = 0;
  }
  
!     /* this is called from the OS dependent code from time to time when we
!     think we know the delay (outbuftime) in seconds, at which the last-output
!     audio sample will go out the door. */
! void sys_setmiditimediff(double inbuftime, double outbuftime)
! {
!     double dactimeminusrealtime =
!         .001 * clock_gettimesince(sys_midiinittime)
!             - outbuftime - sys_getrealtime();
!     double adctimeminusrealtime =
!         .001 * clock_gettimesince(sys_midiinittime)
!             + inbuftime - sys_getrealtime();
!     if (dactimeminusrealtime > sys_newdactimeminusrealtime)
!         sys_newdactimeminusrealtime = dactimeminusrealtime;
!     if (adctimeminusrealtime > sys_newadctimeminusrealtime)
!         sys_newadctimeminusrealtime = adctimeminusrealtime;
!     if (sys_getrealtime() > sys_whenupdate)
!     {
          sys_dactimeminusrealtime = sys_newdactimeminusrealtime;
          sys_adctimeminusrealtime = sys_newadctimeminusrealtime;
--- 56,73 ----
  static double sys_whenupdate;
  
! void sys_initmidiqueue (void) {
      sys_midiinittime = clock_getlogicaltime();
      sys_dactimeminusrealtime = sys_adctimeminusrealtime = 0;
  }
  
! /* this is called from the OS dependent code from time to time when we
!    think we know the delay (outbuftime) in seconds, at which the last-output
!    audio sample will go out the door. */
! void sys_setmiditimediff(double inbuftime, double outbuftime) {
!     double dactimeminusrealtime = .001 * clock_gettimesince(sys_midiinittime) - outbuftime - sys_getrealtime();
!     double adctimeminusrealtime = .001 * clock_gettimesince(sys_midiinittime) +  inbuftime - sys_getrealtime();
!     if (dactimeminusrealtime > sys_newdactimeminusrealtime) sys_newdactimeminusrealtime = dactimeminusrealtime;
!     if (adctimeminusrealtime > sys_newadctimeminusrealtime) sys_newadctimeminusrealtime = adctimeminusrealtime;
!     if (sys_getrealtime() > sys_whenupdate) {
          sys_dactimeminusrealtime = sys_newdactimeminusrealtime;
          sys_adctimeminusrealtime = sys_newadctimeminusrealtime;
***************
*** 91,119 ****
      going out, based on how much "system time" has elapsed since the
      last time sys_setmiditimediff got called. */
! static double sys_getmidioutrealtime( void)
! {
!     return (sys_getrealtime() + sys_dactimeminusrealtime);
! }
! 
! static double sys_getmidiinrealtime( void)
! {
!     return (sys_getrealtime() + sys_adctimeminusrealtime);
! }
  
! static void sys_putnext( void)
! {
      int portno = midi_outqueue[midi_outtail].q_portno;
  #ifdef USEAPI_ALSA
!     if (sys_midiapi == API_ALSA)
!       {
          if (midi_outqueue[midi_outtail].q_onebyte)
!           sys_alsa_putmidibyte(portno, midi_outqueue[midi_outtail].q_byte1);
          else sys_alsa_putmidimess(portno, midi_outqueue[midi_outtail].q_byte1,
                               midi_outqueue[midi_outtail].q_byte2,
                               midi_outqueue[midi_outtail].q_byte3);
!       }
!     else
  #endif /* ALSA */
!       {
          if (midi_outqueue[midi_outtail].q_onebyte)
            sys_putmidibyte(portno, midi_outqueue[midi_outtail].q_byte1);
--- 81,99 ----
      going out, based on how much "system time" has elapsed since the
      last time sys_setmiditimediff got called. */
! static double sys_getmidioutrealtime (void) {return sys_getrealtime() + sys_dactimeminusrealtime;}
! static double sys_getmidiinrealtime  (void) {return sys_getrealtime() + sys_adctimeminusrealtime;}
  
! static void sys_putnext (void) {
      int portno = midi_outqueue[midi_outtail].q_portno;
  #ifdef USEAPI_ALSA
!     if (sys_midiapi == API_ALSA) {
          if (midi_outqueue[midi_outtail].q_onebyte)
!             sys_alsa_putmidibyte(portno, midi_outqueue[midi_outtail].q_byte1);
          else sys_alsa_putmidimess(portno, midi_outqueue[midi_outtail].q_byte1,
                               midi_outqueue[midi_outtail].q_byte2,
                               midi_outqueue[midi_outtail].q_byte3);
!     } else
  #endif /* ALSA */
!     {
          if (midi_outqueue[midi_outtail].q_onebyte)
            sys_putmidibyte(portno, midi_outqueue[midi_outtail].q_byte1);
***************
*** 121,125 ****
                               midi_outqueue[midi_outtail].q_byte2,
                               midi_outqueue[midi_outtail].q_byte3);
!       }
      midi_outtail  = (midi_outtail + 1 == MIDIQSIZE ? 0 : midi_outtail + 1);
  }
--- 101,105 ----
                               midi_outqueue[midi_outtail].q_byte2,
                               midi_outqueue[midi_outtail].q_byte3);
!     }
      midi_outtail  = (midi_outtail + 1 == MIDIQSIZE ? 0 : midi_outtail + 1);
  }
***************
*** 127,132 ****
  /*  #define TEST_DEJITTER */
  
! void sys_pollmidioutqueue( void)
! {
  #ifdef TEST_DEJITTER
      static int db = 0;
--- 107,111 ----
  /*  #define TEST_DEJITTER */
  
! void sys_pollmidioutqueue (void) {
  #ifdef TEST_DEJITTER
      static int db = 0;
***************
*** 137,145 ****
          db = 0;
  #endif
!     while (midi_outhead != midi_outtail)
!     {
  #ifdef TEST_DEJITTER
!         if (!db)
!         {
              post("out: del %f, midiRT %f logicaltime %f, RT %f dacminusRT %f",
                  (midi_outqueue[midi_outtail].q_time - midirealtime),
--- 116,122 ----
          db = 0;
  #endif
!     while (midi_outhead != midi_outtail) {
  #ifdef TEST_DEJITTER
!         if (!db) {
              post("out: del %f, midiRT %f logicaltime %f, RT %f dacminusRT %f",
                  (midi_outqueue[midi_outtail].q_time - midirealtime),
***************
*** 212,223 ****
  }
  
! void outmidi_mclk(int portno)
! {
!    sys_queuemidimess(portno, 1, 0xf8, 0,0);
! }
  
  /* ------------------------- MIDI input queue handling ------------------ */
! typedef struct midiparser
! {
      int mp_status;
      int mp_gotbyte1;
--- 189,196 ----
  }
  
! void outmidi_mclk(int portno) {sys_queuemidimess(portno, 1, 0xf8, 0,0);}
  
  /* ------------------------- MIDI input queue handling ------------------ */
! typedef struct midiparser {
      int mp_status;
      int mp_gotbyte1;
***************
*** 248,252 ****
  #define MIDIRESET         0xff  /* 0 */
  
! static void sys_dispatchnextmidiin( void) {
      static t_midiparser parser[MAXMIDIINDEV], *parserp;
      int portno = midi_inqueue[midi_intail].q_portno, byte = midi_inqueue[midi_intail].q_byte1;
--- 221,225 ----
  #define MIDIRESET         0xff  /* 0 */
  
! static void sys_dispatchnextmidiin (void) {
      static t_midiparser parser[MAXMIDIINDEV], *parserp;
      int portno = midi_inqueue[midi_intail].q_portno, byte = midi_inqueue[midi_intail].q_byte1;
***************
*** 277,282 ****
              int chan = (parserp->mp_status & 0xf);
              int byte1 = parserp->mp_byte1, gotbyte1 = parserp->mp_gotbyte1;
!             switch (cmd)
!             {
              case MIDINOTEOFF:
                  if (gotbyte1) inmidi_noteon(portno, chan, byte1, 0), parserp->mp_gotbyte1 = 0;
--- 250,254 ----
              int chan = (parserp->mp_status & 0xf);
              int byte1 = parserp->mp_byte1, gotbyte1 = parserp->mp_gotbyte1;
!             switch (cmd) {
              case MIDINOTEOFF:
                  if (gotbyte1) inmidi_noteon(portno, chan, byte1, 0), parserp->mp_gotbyte1 = 0;
***************
*** 320,325 ****
  }
  
! void sys_pollmidiinqueue( void)
! {
  #ifdef TEST_DEJITTER
      static int db = 0;
--- 292,296 ----
  }
  
! void sys_pollmidiinqueue (void) {
  #ifdef TEST_DEJITTER
      static int db = 0;
***************
*** 330,335 ****
          db = 0;
  #endif
!     while (midi_inhead != midi_intail)
!     {
  #ifdef TEST_DEJITTER
          if (!db) {
--- 301,305 ----
          db = 0;
  #endif
!     while (midi_inhead != midi_intail) {
  #ifdef TEST_DEJITTER
          if (!db) {
***************
*** 379,383 ****
  }
  
! void sys_pollmidiqueue( void) {
  #if 0
      static double lasttime;
--- 349,353 ----
  }
  
! void sys_pollmidiqueue (void) {
  #if 0
      static double lasttime;
***************
*** 399,407 ****
  
  #ifdef USEAPI_ALSA
! void midi_alsa_init( void);
  #endif
  #ifndef USEAPI_PORTMIDI
  #ifdef USEAPI_OSS
! void midi_oss_init( void);
  #endif
  #endif
--- 369,377 ----
  
  #ifdef USEAPI_ALSA
! void midi_alsa_init (void);
  #endif
  #ifndef USEAPI_PORTMIDI
  #ifdef USEAPI_OSS
! void midi_oss_init (void);
  #endif
  #endif
***************
*** 414,419 ****
  
  
! void sys_get_midi_apis(char *buf)
! {
      int n = 0;
      strcpy(buf, "{ ");
--- 384,388 ----
  
  
! void sys_get_midi_apis(char *buf) {
      int n = 0;
      strcpy(buf, "{ ");





More information about the Pd-cvs mailing list