[PD-cvs] externals/mrpeach/osc unpackOSC.c, 1.6, 1.7 packOSC.c, 1.7, 1.8

Martin Peach mrpeach at users.sourceforge.net
Sun Jul 15 20:00:22 CEST 2007


Update of /cvsroot/pure-data/externals/mrpeach/osc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23060

Modified Files:
	unpackOSC.c packOSC.c 
Log Message:
Should compile on MSW now...


Index: packOSC.c
===================================================================
RCS file: /cvsroot/pure-data/externals/mrpeach/osc/packOSC.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** packOSC.c	11 Jul 2007 17:34:38 -0000	1.7
--- packOSC.c	15 Jul 2007 18:00:20 -0000	1.8
***************
*** 38,47 ****
  #include <string.h>
  #include <stdlib.h>
- #include <sys/time.h>
  
  #ifdef MSW
  #include <winsock2.h>
  #else
  #include <ctype.h>
  #endif
  
--- 38,48 ----
  #include <string.h>
  #include <stdlib.h>
  
  #ifdef MSW
  #include <winsock2.h>
+ #include <sys/timeb.h>
  #else
  #include <ctype.h>
+ #include <sys/time.h>
  #endif
  
***************
*** 1269,1275 ****
  { /* offset is in microseconds */
      OSCTimeTag tt;
      struct timeval tv;
      struct timezone tz;
-     static unsigned int onemillion = 1000000;
  
      gettimeofday(&tv, &tz);
--- 1270,1289 ----
  { /* offset is in microseconds */
      OSCTimeTag tt;
+     static unsigned int onemillion = 1000000;
+     static unsigned int onethousand = 1000;
+ #ifdef MSW
+     struct _timeb tb;
+ 
+     _ftime(&tb);
+ 
+     /* First get the seconds right */
+     tt.seconds = (unsigned)SECONDS_FROM_1900_to_1970 +
+         (unsigned)tb.time+
+         (unsigned)offset/onemillion;
+     /* Now get the fractional part. */
+     tt.fraction = (unsigned)tb.millitm*onethousand + (unsigned)(offset%onemillion); /* in usec */
+ #else
      struct timeval tv;
      struct timezone tz;
  
      gettimeofday(&tv, &tz);
***************
*** 1283,1286 ****
--- 1297,1301 ----
      /* Now get the fractional part. */
      tt.fraction = (unsigned) tv.tv_usec + (unsigned)(offset%onemillion); /* in usec */
+ #endif
      if (tt.fraction > onemillion)
      {

Index: unpackOSC.c
===================================================================
RCS file: /cvsroot/pure-data/externals/mrpeach/osc/unpackOSC.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** unpackOSC.c	12 Jul 2007 15:25:36 -0000	1.6
--- unpackOSC.c	15 Jul 2007 18:00:20 -0000	1.7
***************
*** 78,88 ****
      #include <string.h>
      #include <stdlib.h>
-     #include <sys/time.h>
  #ifdef _WIN32
      #include <winsock2.h>
  #else
      #include <sys/types.h>
      #include <netinet/in.h>
      #include <ctype.h>
  #endif /* _WIN32 */
  
--- 78,89 ----
      #include <string.h>
      #include <stdlib.h>
  #ifdef _WIN32
      #include <winsock2.h>
+     #include <sys/timeb.h>
  #else
      #include <sys/types.h>
      #include <netinet/in.h>
      #include <ctype.h>
+     #include <sys/time.h>
  #endif /* _WIN32 */
  
***************
*** 605,629 ****
  static t_float unpackOSC_DeltaTime(OSCTimeTag tt)
  {
-     OSCTimeTag ttnow;
-     struct timeval tv;
-     struct timezone tz;
      static double onemillion = 1000000.0f;
!     double  ttusec, nowusec, delta;
  
      if (tt.fraction == 1 && tt.seconds == 0) return 0.0; /* immediate */
!     gettimeofday(&tv, &tz); /* find now */
!     /* First get the seconds right */
!     ttnow.seconds = (unsigned) SECONDS_FROM_1900_to_1970 +
!         (unsigned) tv.tv_sec -
!         (unsigned) 60 * tz.tz_minuteswest +
!         (unsigned) (tz.tz_dsttime ? 3600 : 0);
!     /* find usec in tt */
!     ttusec = tt.seconds*onemillion + ONE_MILLION_OVER_TWO_TO_THE_32*tt.fraction;
!     nowusec = ttnow.seconds*onemillion + tv.tv_usec;
!     /* subtract now from tt to get delta time */
!     /* if (ttusec < nowusec) return 0.0; */
!     /*negative delays are all right */
!     delta = ttusec - nowusec;
!     return (float)(delta*0.001f);
  }
  /* end of unpackOSC.c */
--- 606,647 ----
  static t_float unpackOSC_DeltaTime(OSCTimeTag tt)
  {
      static double onemillion = 1000000.0f;
!     static double onethousand = 1000.0f;
  
      if (tt.fraction == 1 && tt.seconds == 0) return 0.0; /* immediate */
!     else
!     {
!         OSCTimeTag ttnow;
!         double  ttusec, nowusec, delta;
! #ifdef MSW
!         struct _timeb tb;
! 
!         _ftime(&tb); /* find now */
!         /* First get the seconds right */
!         ttnow.seconds = (unsigned) SECONDS_FROM_1900_to_1970 +
!             (unsigned) tb.time;
!         /* find usec in tt */
!         ttusec = tt.seconds*onemillion + ONE_MILLION_OVER_TWO_TO_THE_32*tt.fraction;
!         nowusec = ttnow.seconds*onemillion + tb.millitm*onethousand;
! #else
!         struct timeval tv;
!         struct timezone tz;
! 
!         gettimeofday(&tv, &tz); /* find now */
!         /* First get the seconds right */
!         ttnow.seconds = (unsigned) SECONDS_FROM_1900_to_1970 +
!             (unsigned) tv.tv_sec -
!             (unsigned) 60 * tz.tz_minuteswest +
!             (unsigned) (tz.tz_dsttime ? 3600 : 0);
!         /* find usec in tt */
!         ttusec = tt.seconds*onemillion + ONE_MILLION_OVER_TWO_TO_THE_32*tt.fraction;
!         nowusec = ttnow.seconds*onemillion + tv.tv_usec;
! #endif /* ifdef MSW */
!         /* subtract now from tt to get delta time */
!         /* if (ttusec < nowusec) return 0.0; */
!         /*negative delays are all right */
!         delta = ttusec - nowusec;
!         return (float)(delta*0.001f);
!     }
  }
  /* end of unpackOSC.c */





More information about the Pd-cvs mailing list