[PD-cvs] externals/grill/dyn/src main.cpp,1.11,1.12

Thomas Grill xovo at users.sourceforge.net
Sat Aug 21 06:17:03 CEST 2004


Update of /cvsroot/pure-data/externals/grill/dyn/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6020/src

Modified Files:
	main.cpp 
Log Message:
 ""

Index: main.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/dyn/src/main.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** main.cpp	21 Jun 2004 14:06:53 -0000	1.11
--- main.cpp	21 Aug 2004 04:17:01 -0000	1.12
***************
*** 167,170 ****
--- 167,173 ----
  	FLEXT_CALLBACK_V(m_send)
  	FLEXT_CALLBACK_B(m_vis)
+ 
+     static const t_symbol *sym_dot,*sym_dynsin,*sym_dynsout,*sym_dynin,*sym_dynout,*sym_dyncanvas;
+     static const t_symbol *sym_vis,*sym_loadbang,*sym_dsp;
  };
  
***************
*** 179,204 ****
  const t_symbol *dyn::k_text = NULL;
  
  
  void dyn::setup(t_classid c)
  {
  	post("");
! 	post("dyn~ %s - dynamic object management, (C)2003 Thomas Grill",DYN_VERSION);
  	post("");
  
  	// set up proxy class for inbound messages
!     pxin_class = class_new(gensym("dyn_in"),(t_newmethod)pxin_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL);
  	add_anything(pxin_class,proxyin::px_method); 
  
  	// set up proxy class for inbound signals
! 	pxins_class = class_new(gensym("dyn_in~"),(t_newmethod)pxins_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL);
      add_dsp(pxins_class,proxyin::dsp);
      CLASS_MAINSIGNALIN(pxins_class, proxyin, defsig);
  
  	// set up proxy class for outbound messages
! 	pxout_class = class_new(gensym("dyn_out"),(t_newmethod)pxout_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL);
  	add_anything(pxout_class,proxyout::px_method); 
  
  	// set up proxy class for outbound signals
! 	pxouts_class = class_new(gensym("dyn_out~"),(t_newmethod)pxouts_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL);
  	add_dsp(pxouts_class,proxyout::dsp);
      CLASS_MAINSIGNALIN(pxouts_class, proxyout, defsig);
--- 182,226 ----
  const t_symbol *dyn::k_text = NULL;
  
+ const t_symbol *dyn::sym_dot = NULL;
+ const t_symbol *dyn::sym_dynsin = NULL;
+ const t_symbol *dyn::sym_dynsout = NULL;
+ const t_symbol *dyn::sym_dynin = NULL;
+ const t_symbol *dyn::sym_dynout = NULL;
+ const t_symbol *dyn::sym_dyncanvas = NULL;
+ 
+ const t_symbol *dyn::sym_vis = NULL;
+ const t_symbol *dyn::sym_loadbang = NULL;
+ const t_symbol *dyn::sym_dsp = NULL;
+ 
  
  void dyn::setup(t_classid c)
  {
  	post("");
! 	post("dyn~ %s - dynamic object management, (C)2003-2004 Thomas Grill",DYN_VERSION);
  	post("");
  
+     sym_dynsin = MakeSymbol("dyn_in~");
+     sym_dynsout = MakeSymbol("dyn_out~");
+     sym_dynin = MakeSymbol("dyn_in");
+     sym_dynout = MakeSymbol("dyn_out");
+ 
+     sym_dot = MakeSymbol(".");
+     sym_dyncanvas = MakeSymbol(" dyn~-canvas ");
+ 
  	// set up proxy class for inbound messages
!     pxin_class = class_new(const_cast<t_symbol *>(sym_dynin),(t_newmethod)pxin_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL);
  	add_anything(pxin_class,proxyin::px_method); 
  
  	// set up proxy class for inbound signals
! 	pxins_class = class_new(const_cast<t_symbol *>(sym_dynsin),(t_newmethod)pxins_new,(t_method)proxy::px_exit,sizeof(proxyin),0, A_NULL);
      add_dsp(pxins_class,proxyin::dsp);
      CLASS_MAINSIGNALIN(pxins_class, proxyin, defsig);
  
  	// set up proxy class for outbound messages
! 	pxout_class = class_new(const_cast<t_symbol *>(sym_dynout),(t_newmethod)pxout_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL);
  	add_anything(pxout_class,proxyout::px_method); 
  
  	// set up proxy class for outbound signals
! 	pxouts_class = class_new(const_cast<t_symbol *>(sym_dynsout),(t_newmethod)pxouts_new,(t_method)proxy::px_exit,sizeof(proxyout),0, A_NULL);
  	add_dsp(pxouts_class,proxyout::dsp);
      CLASS_MAINSIGNALIN(pxouts_class, proxyout, defsig);
***************
*** 220,223 ****
--- 242,249 ----
      k_msg = MakeSymbol("msg"); 
      k_text = MakeSymbol("text"); 
+ 
+     sym_vis = MakeSymbol("vis");
+     sym_loadbang = MakeSymbol("loadbang");
+     sym_dsp = MakeSymbol("dsp");
  }
  
***************
*** 280,284 ****
  	SetInt(arg[2],700);	// xwidth 
  	SetInt(arg[3],520);	// xwidth 
! 	SetString(arg[4]," dyn~-canvas ");	// canvas name
  	SetInt(arg[5],0);	// visible
  
--- 306,310 ----
  	SetInt(arg[2],700);	// xwidth 
  	SetInt(arg[3],520);	// xwidth 
! 	SetSymbol(arg[4],sym_dyncanvas);	// canvas name
  	SetInt(arg[5],0);	// visible
  
***************
*** 296,302 ****
          SetInt(lst[0],i*100);
          SetInt(lst[1],10);
!         SetString(lst[2],".");
!         SetString(lst[3],"");
!         SetString(lst[4],sig?"dyn_in~":"dyn_in");
  
          try {
--- 322,328 ----
          SetInt(lst[0],i*100);
          SetInt(lst[1],10);
!         SetSymbol(lst[2],sym_dot);
!         SetSymbol(lst[3],sym__);
!         SetSymbol(lst[4],sig?sym_dynsin:sym_dynin);
  
          try {
***************
*** 318,324 ****
          SetInt(lst[0],i*100);
          SetInt(lst[1],500);
!         SetString(lst[2],".");
!         SetString(lst[3],"");
!         SetString(lst[4],sig?"dyn_out~":"dyn_out");
  
          try {
--- 344,350 ----
          SetInt(lst[0],i*100);
          SetInt(lst[1],500);
!         SetSymbol(lst[2],sym_dot);
!         SetSymbol(lst[3],sym__);
!         SetSymbol(lst[4],sig?sym_dynsout:sym_dynout);
  
          try {
***************
*** 361,365 ****
  t_glist *dyn::FindCanvas(const t_symbol *n)
  {
!     if(n == MakeSymbol(".")) 
          return canvas;
      else {
--- 387,391 ----
  t_glist *dyn::FindCanvas(const t_symbol *n)
  {
!     if(n == sym_dot) 
          return canvas;
      else {
***************
*** 386,391 ****
  static t_gobj *GetLast(t_glist *gl)
  {
!     t_gobj *go;
!     for (go = gl->gl_list; go->g_next; go = go->g_next);
      return go;
  }
--- 412,419 ----
  static t_gobj *GetLast(t_glist *gl)
  {
!     t_gobj *go = gl->gl_list;
!     if(go)
!         while(go->g_next) 
!             go = go->g_next;
      return go;
  }
***************
*** 423,427 ****
  
  	if(argv) {
! 		if(add && (!name || name == MakeSymbol(".") || Find(name))) 
  			err = "Object name is already present";
          else if(!canv || !(glist = FindCanvas(canv)))
--- 451,455 ----
  
  	if(argv) {
! 		if(add && (!name || name == sym_dot || Find(name))) 
  			err = "Object name is already present";
          else if(!canv || !(glist = FindCanvas(canv)))
***************
*** 431,452 ****
  			canvas_setcurrent(glist); 
  
!             pd_typedmess((t_pd *)glist,(t_symbol *)kind,argc,(t_atom *)argv);
  
              if(kind == k_obj) {
                  t_object *o = (t_object *)pd_newest();
-                 newest = o?&o->te_g:NULL;
  
!                 if(!newest) {
                      // PD creates a text object when the intended object could not be created
                      t_gobj *trash = GetLast(glist);
  
!                     // TODO: Test for it....
! 
!                     // Delete it!
!                     Delete(trash);
                  }
              }
-             else 
-                 newest = GetLast(glist);
  
  			// look for latest created object
--- 459,483 ----
  			canvas_setcurrent(glist); 
  
!             t_gobj *last = GetLast(glist);
!             pd_typedmess((t_pd *)glist,(t_symbol *)kind,argc,argv);
!             newest = GetLast(glist);
  
              if(kind == k_obj) {
                  t_object *o = (t_object *)pd_newest();
  
!                 if(!o) {
                      // PD creates a text object when the intended object could not be created
                      t_gobj *trash = GetLast(glist);
  
!                     // Test for newly created object....
!                     if(trash && last != trash) {
!                         // Delete it!
!                         glist_delete(glist,trash);
!                     }
!                     newest = NULL;
                  }
+                 else
+                     newest = &o->te_g;
              }
  
  			// look for latest created object
***************
*** 458,465 ****
  				if(pd_class(&newest->g_pd) == canvas_class) {
  					// hide the sub-canvas
! 					pd_vmess((t_pd *)newest,gensym("vis"),"i",0);
  
                      // loadbang the abstraction
! 					pd_vmess((t_pd *)newest,gensym("loadbang"),"");
                  }
  
--- 489,496 ----
  				if(pd_class(&newest->g_pd) == canvas_class) {
  					// hide the sub-canvas
! 					pd_vmess((t_pd *)newest,const_cast<t_symbol *>(sym_vis),"i",0);
  
                      // loadbang the abstraction
! 					pd_vmess((t_pd *)newest,const_cast<t_symbol *>(sym_loadbang),"");
                  }
  
***************
*** 728,732 ****
  {
  	// add sub canvas to dsp list (no signal vector to borrow from .. set it to NULL)
!     mess1((t_pd *)canvas, gensym("dsp"),NULL);
  
  	flext_dsp::m_dsp(n,insigs,outsigs);
--- 759,763 ----
  {
  	// add sub canvas to dsp list (no signal vector to borrow from .. set it to NULL)
!     mess1((t_pd *)canvas,const_cast<t_symbol *>(sym_dsp),NULL);
  
  	flext_dsp::m_dsp(n,insigs,outsigs);





More information about the Pd-cvs mailing list