[PD-cvs] pd/src s_loader.c, 1.4.4.5.2.10.2.3, 1.4.4.5.2.10.2.4 s_inter.c, 1.5.4.10.2.25.2.16, 1.5.4.10.2.25.2.17

Mathieu Bouchard matju at users.sourceforge.net
Thu Jun 28 07:54:00 CEST 2007


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

Modified Files:
      Tag: desiredata
	s_loader.c s_inter.c 
Log Message:
cleanup


Index: s_inter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
retrieving revision 1.5.4.10.2.25.2.16
retrieving revision 1.5.4.10.2.25.2.17
diff -C2 -d -r1.5.4.10.2.25.2.16 -r1.5.4.10.2.25.2.17
*** s_inter.c	28 Jun 2007 05:23:32 -0000	1.5.4.10.2.25.2.16
--- s_inter.c	28 Jun 2007 05:53:58 -0000	1.5.4.10.2.25.2.17
***************
*** 180,185 ****
  #define _WIN32_WINNT 0x0400
  	double end = sys_getrealtime() + (double)microsec * 1e-6;
! 	do
! {
  #ifdef MSW
  		SwitchToThread();
--- 180,184 ----
  #define _WIN32_WINNT 0x0400
  	double end = sys_getrealtime() + (double)microsec * 1e-6;
! 	do {
  #ifdef MSW
  		SwitchToThread();
***************
*** 256,261 ****
  #endif
  
! void sys_set_priority(int higher) 
! {
  #if (_POSIX_PRIORITY_SCHEDULING - 0) >=  200112L
      struct sched_param par;
--- 255,259 ----
  #endif
  
! void sys_set_priority(int higher) {
  #if (_POSIX_PRIORITY_SCHEDULING - 0) >=  200112L
      struct sched_param par;
***************
*** 299,312 ****
  #endif
  
! void sys_set_priority(int higher)
! {
  #if (_POSIX_PRIORITY_SCHEDULING - 0) >=  200112L
      struct sched_param par;
          /* Bearing the table found in 'man realtime' in mind, I found it a */
          /* good idea to use 192 as the priority setting for Pd. Any thoughts? */
!     if (higher)
!                 par.sched_priority = 250;       /* priority for watchdog */
!     else
!                 par.sched_priority = 192;       /* priority for pd (DSP) */
      if (sched_setscheduler(0, SCHED_FIFO, &par) != -1)
          fprintf(stderr, "priority %d scheduling enabled.\n", par.sched_priority);
--- 297,307 ----
  #endif
  
! void sys_set_priority(int higher) {
  #if (_POSIX_PRIORITY_SCHEDULING - 0) >=  200112L
      struct sched_param par;
          /* Bearing the table found in 'man realtime' in mind, I found it a */
          /* good idea to use 192 as the priority setting for Pd. Any thoughts? */
!     if (higher) par.sched_priority = 250;       /* priority for watchdog */
!     else        par.sched_priority = 192;       /* priority for pd (DSP) */
      if (sched_setscheduler(0, SCHED_FIFO, &par) != -1)
          fprintf(stderr, "priority %d scheduling enabled.\n", par.sched_priority);
***************
*** 314,319 ****
  
  #if (_POSIX_MEMLOCK - 0) >=  200112L
!     if (mlockall(MCL_FUTURE) != -1) 
!         fprintf(stderr, "memory locking enabled.\n");
  #endif
  }
--- 309,313 ----
  
  #if (_POSIX_MEMLOCK - 0) >=  200112L
!     if (mlockall(MCL_FUTURE) != -1) fprintf(stderr, "memory locking enabled.\n");
  #endif
  }
***************
*** 323,335 ****
  /* ------------------ receiving incoming messages over sockets ------------- */
  
! void sys_sockerror(char *s)
! {
  #ifdef _WIN32
      int err = WSAGetLastError();
      if (err == 10054) return;
!     else if (err == 10044)
!     {
!         fprintf(stderr,
!             "Warning: you might not have TCP/IP \"networking\" turned on\n");
          fprintf(stderr, "which is needed for Pd to talk to its GUI layer.\n");
      }
--- 317,326 ----
  /* ------------------ receiving incoming messages over sockets ------------- */
  
! void sys_sockerror(char *s) {
  #ifdef _WIN32
      int err = WSAGetLastError();
      if (err == 10054) return;
!     else if (err == 10044) {
!         fprintf(stderr, "Warning: you might not have TCP/IP \"networking\" turned on\n");
          fprintf(stderr, "which is needed for Pd to talk to its GUI layer.\n");
      }
***************
*** 340,345 ****
  }
  
! void sys_addpollfn(int fd, t_fdpollfn fn, void *ptr)
! {
      int nfd = sys_nfdpoll;
      int size = nfd * sizeof(t_fdpoll);
--- 331,335 ----
  }
  
! void sys_addpollfn(int fd, t_fdpollfn fn, void *ptr) {
      int nfd = sys_nfdpoll;
      int size = nfd * sizeof(t_fdpoll);
***************
*** 355,369 ****
  }
  
! void sys_rmpollfn(int fd)
! {
      int nfd = sys_nfdpoll;
      int i, size = nfd * sizeof(t_fdpoll);
      t_fdpoll *fp;
!     for (i = nfd, fp = sys_fdpoll; i--; fp++)
!     {
!         if (fp->fdp_fd == fd)
!         {
!             while (i--)
!             {
                  fp[0] = fp[1];
                  fp++;
--- 345,355 ----
  }
  
! void sys_rmpollfn(int fd) {
      int nfd = sys_nfdpoll;
      int i, size = nfd * sizeof(t_fdpoll);
      t_fdpoll *fp;
!     for (i = nfd, fp = sys_fdpoll; i--; fp++) {
!         if (fp->fdp_fd == fd) {
!             while (i--) {
                  fp[0] = fp[1];
                  fp++;
***************
*** 379,384 ****
  
  t_socketreceiver *socketreceiver_new(t_pd *owner, int fd, t_socketnotifier notifier,
!     t_socketreceivefn socketreceivefn, int udp)
! {
      t_socketreceiver *x = (t_socketreceiver *)getbytes(sizeof(*x));
      x->inhead = x->intail = 0;
--- 365,369 ----
  
  t_socketreceiver *socketreceiver_new(t_pd *owner, int fd, t_socketnotifier notifier,
! t_socketreceivefn socketreceivefn, int udp) {
      t_socketreceiver *x = (t_socketreceiver *)getbytes(sizeof(*x));
      x->inhead = x->intail = 0;
***************
*** 470,475 ****
  }
  
! void sys_closesocket(int fd)
! {
  #ifdef UNISTD
      close(fd);
--- 455,459 ----
  }
  
! void sys_closesocket(int fd) {
  #ifdef UNISTD
      close(fd);
***************
*** 559,564 ****
  
  #ifdef __linux__
! void glob_watchdog(t_pd *dummy)
! {
  #ifndef WATCHDOGTHREAD
      if (write(sys_watchfd, "\n", 1) < 1) {
--- 543,547 ----
  
  #ifdef __linux__
! void glob_watchdog(t_pd *dummy) {
  #ifndef WATCHDOGTHREAD
      if (write(sys_watchfd, "\n", 1) < 1) {

Index: s_loader.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
retrieving revision 1.4.4.5.2.10.2.3
retrieving revision 1.4.4.5.2.10.2.4
diff -C2 -d -r1.4.4.5.2.10.2.3 -r1.4.4.5.2.10.2.4
*** s_loader.c	28 Jun 2007 05:23:32 -0000	1.4.4.5.2.10.2.3
--- s_loader.c	28 Jun 2007 05:53:58 -0000	1.4.4.5.2.10.2.4
***************
*** 22,26 ****
  #include <stdio.h>
  
! typedef void (*t_xxx)(void);
  
  /* naming convention for externs.  The names are kept distinct for those
--- 22,26 ----
  #include <stdio.h>
  
! typedef void (*t_xxx)();
  
  /* naming convention for externs.  The names are kept distinct for those
***************
*** 54,62 ****
  
      /* maintain list of loaded modules to avoid repeating loads */
! typedef struct _loadedlist
! {
!     struct _loadedlist *ll_next;
      t_symbol *ll_name;
! } t_loadlist;
  
  static t_loadlist *sys_loaded;
--- 54,61 ----
  
      /* maintain list of loaded modules to avoid repeating loads */
! struct t_loadlist {
!     t_loadlist *ll_next;
      t_symbol *ll_name;
! };
  
  static t_loadlist *sys_loaded;
***************
*** 88,116 ****
      HINSTANCE ntdll;
  #endif
!     if ((classname = strrchr(objectname, '/')))
!         classname++;
      else classname = objectname;
!     if (sys_onloadlist(objectname))
!     {
          post("%s: already loaded", objectname);
          return 1;
      }
!     for (i = 0, nameptr = classname; i < MAXPDSTRING-7 && *nameptr; nameptr++)
!     {
          char c = *nameptr;
!         if ((c>='0' && c<='9') || (c>='A' && c<='Z')||
!            (c>='a' && c<='z' )|| c == '_')
!         {
              symname[i] = c;
              i++;
          }
!             /* trailing tilde becomes "_tilde" */
!         else if (c == '~' && nameptr[1] == 0)
!         {
              strcpy(symname+i, "_tilde");
              i += strlen(symname+i);
!         }
!         else /* anything you can't put in a C symbol is sprintf'ed in hex */
!         {
              sprintf(symname+i, "0x%02x", c);
              i += strlen(symname+i);
--- 87,107 ----
      HINSTANCE ntdll;
  #endif
!     if ((classname = strrchr(objectname, '/'))) classname++;
      else classname = objectname;
!     if (sys_onloadlist(objectname)) {
          post("%s: already loaded", objectname);
          return 1;
      }
!     for (i = 0, nameptr = classname; i < MAXPDSTRING-7 && *nameptr; nameptr++) {
          char c = *nameptr;
!         if ((c>='0' && c<='9') || (c>='A' && c<='Z') || (c>='a' && c<='z' )|| c == '_') {
              symname[i] = c;
              i++;
          }
!         /* trailing tilde becomes "_tilde" */
!         else if (c == '~' && nameptr[1] == 0) {
              strcpy(symname+i, "_tilde");
              i += strlen(symname+i);
!         } else { /* anything you can't put in a C symbol is sprintf'ed in hex */
              sprintf(symname+i, "0x%02x", c);
              i += strlen(symname+i);
***************
*** 119,141 ****
      }
      symname[i] = 0;
!     if (hexmunge)
!     {
          memmove(symname+6, symname, strlen(symname+1));
          strncpy(symname, "setup_", 6);
      }
      else strcat(symname, "_setup");
-     
  #if 0
      fprintf(stderr, "lib: %s\n", classname);
  #endif
!         /* try looking in the path for (objectname).(sys_dllextent) ... */
!     if ((fd = canvas_open(canvas, objectname, sys_dllextent,
!         dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0)
!             goto gotone;
!         /* same, with the more generic sys_dllextent2 */
!     if ((fd = canvas_open(canvas, objectname, sys_dllextent2,
!         dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0)
!             goto gotone;
!         /* next try (objectname)/(classname).(sys_dllextent) ... */
      strncpy(filename, objectname, MAXPDSTRING);
      filename[MAXPDSTRING-2] = 0;
--- 110,126 ----
      }
      symname[i] = 0;
!     if (hexmunge) {
          memmove(symname+6, symname, strlen(symname+1));
          strncpy(symname, "setup_", 6);
      }
      else strcat(symname, "_setup");
  #if 0
      fprintf(stderr, "lib: %s\n", classname);
  #endif
!     /* try looking in the path for (objectname).(sys_dllextent) ... */
!     if ((fd = canvas_open(canvas, objectname, sys_dllextent , dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) goto gotone;
!     /* same, with the more generic sys_dllextent2 */
!     if ((fd = canvas_open(canvas, objectname, sys_dllextent2, dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) goto gotone;
!     /* next try (objectname)/(classname).(sys_dllextent) ... */
      strncpy(filename, objectname, MAXPDSTRING);
      filename[MAXPDSTRING-2] = 0;
***************
*** 143,152 ****
      strncat(filename, classname, MAXPDSTRING-strlen(filename));
      filename[MAXPDSTRING-1] = 0;
!     if ((fd = canvas_open(canvas, filename, sys_dllextent,
!         dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0)
!             goto gotone;
!     if ((fd = canvas_open(canvas, filename, sys_dllextent2,
!         dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0)
!             goto gotone;
      return 0;
  gotone:
--- 128,133 ----
      strncat(filename, classname, MAXPDSTRING-strlen(filename));
      filename[MAXPDSTRING-1] = 0;
!     if ((fd = canvas_open(canvas, filename, sys_dllextent , dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) goto gotone;
!     if ((fd = canvas_open(canvas, filename, sys_dllextent2, dirbuf, &nameptr, MAXPDSTRING, 1)) >= 0) goto gotone;
      return 0;
  gotone:
***************
*** 154,158 ****
      class_set_extern_dir(gensym(dirbuf));
  
!         /* rebuild the absolute pathname */
      strncpy(filename, dirbuf, MAXPDSTRING);
      filename[MAXPDSTRING-2] = 0;
--- 135,139 ----
      class_set_extern_dir(gensym(dirbuf));
  
!     /* rebuild the absolute pathname */
      strncpy(filename, dirbuf, MAXPDSTRING);
      filename[MAXPDSTRING-2] = 0;
***************
*** 163,168 ****
  #ifdef DL_OPEN
      dlobj = dlopen(filename, RTLD_NOW | RTLD_GLOBAL);
!     if (!dlobj)
!     {
          post("%s: %s", filename, dlerror());
          class_set_extern_dir(&s_);
--- 144,148 ----
  #ifdef DL_OPEN
      dlobj = dlopen(filename, RTLD_NOW | RTLD_GLOBAL);
!     if (!dlobj) {
          post("%s: %s", filename, dlerror());
          class_set_extern_dir(&s_);
***************
*** 174,193 ****
      sys_bashfilename(filename, filename);
      ntdll = LoadLibrary(filename);
!     if (!ntdll)
!     {
          post("%s: couldn't load", filename);
          class_set_extern_dir(&s_);
          return 0;
      }
!     makeout = (t_xxx)GetProcAddress(ntdll, symname);  
  #endif
! 
!     if (!makeout)
!     {
          post("load_object: Symbol \"%s\" not found", symname);
          class_set_extern_dir(&s_);
          return 0;
      }
!     (*makeout)();
      class_set_extern_dir(&s_);
      sys_putonloadlist(objectname);
--- 154,170 ----
      sys_bashfilename(filename, filename);
      ntdll = LoadLibrary(filename);
!     if (!ntdll) {
          post("%s: couldn't load", filename);
          class_set_extern_dir(&s_);
          return 0;
      }
!     makeout = (t_xxx)GetProcAddress(ntdll, symname);
  #endif
!     if (!makeout) {
          post("load_object: Symbol \"%s\" not found", symname);
          class_set_extern_dir(&s_);
          return 0;
      }
!     makeout();
      class_set_extern_dir(&s_);
      sys_putonloadlist(objectname);
***************
*** 196,205 ****
  
  /* callback type definition */
! typedef int (*loader_t)(t_canvas *canvas, char *classname);
  
  /* linked list of loaders */
! typedef struct loader_queue {
      loader_t loader;
!     struct loader_queue *next;
  } loader_queue_t;
  
--- 173,183 ----
  
  /* callback type definition */
! typedef int (*t_loader)(t_canvas *canvas, char *classname);
! typedef t_loader loader_t;
  
  /* linked list of loaders */
! typedef struct t_loader_queue {
      loader_t loader;
!     t_loader_queue *next;
  } loader_queue_t;
  
***************
*** 207,219 ****
  
  /* register class loader function */
! void sys_register_loader(loader_t loader)
! {
      loader_queue_t *q = &loaders;
!     while (1)
!     {
!         if (q->next) 
!             q = q->next;
!         else
!         {
              q->next = (loader_queue_t *)getbytes(sizeof(loader_queue_t));
              q->next->loader = loader;
--- 185,193 ----
  
  /* register class loader function */
! void sys_register_loader(loader_t loader) {
      loader_queue_t *q = &loaders;
!     while (1) {
!         if (q->next) q = q->next;
!         else {
              q->next = (loader_queue_t *)getbytes(sizeof(loader_queue_t));
              q->next->loader = loader;
***************
*** 221,236 ****
              break;
          }
!     }   
  }
  
! int sys_load_lib(t_canvas *canvas, char *classname)
! {
      int dspstate = canvas_suspend_dsp();
      int ok = 0;
      loader_queue_t *q;
!     for(q = &loaders; q; q = q->next)
!         if (ok = q->loader(canvas, classname)) break;
      canvas_resume_dsp(dspstate);
      return ok;
  }
- 
--- 195,207 ----
              break;
          }
!     }
  }
  
! int sys_load_lib(t_canvas *canvas, char *classname) {
      int dspstate = canvas_suspend_dsp();
      int ok = 0;
      loader_queue_t *q;
!     for(q = &loaders; q; q = q->next) if ((ok = q->loader(canvas, classname))) break;
      canvas_resume_dsp(dspstate);
      return ok;
  }





More information about the Pd-cvs mailing list