Re: [PD] pd command-line options . ( -guicmd , -guiport )

2007-08-06 Thread Mathieu Bouchard

On Mon, 6 Aug 2007, errordeveloper wrote:


I would like to find out more on how exactly the undocumented options
'-guicmd' and '-guiport'  might be used?


Using X11's client-server possibilities isn't that much more low-level 
than Pd's client-server. If your connection is too thin, then try 
compressing your X11 using ssh -C -X forwarding. If that is still too 
slow, then -guicmd -guiport might be worth a try.


To save a lot of bandwidth and of roundtrips, the protocol would need to 
be much more high-level and the client/server halves would need to be much 
more decoupled... but I wrote a lot about that in the past already.


 _ _ __ ___ _  _ _ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] pd command-line options . ( -guicmd , -guiport )

2007-08-06 Thread Martin Peach
errordeveloper wrote:
 hello pd-list.

 I would like to find out more on how exactly the undocumented options
 '-guicmd' and '-guiport'  might be used?

 when pd starts up it usualy listens to port 5401 and the netstat gives 

 %netstat|grep 5401
 tcp0  0 localhost:5401  localhost:52381
 ESTABLISHED 
 tcp0  0 localhost:52381 localhost:5401
 ESTABLISHED

 does it mean that 5401 if where 'pd' sits and 5381 is where  'pdgui'
 comes from?  so the could be on different host or there any
 restrictions? i have got pd compiled only one machine , so could not
 test this yet ..
   
 From my notes that are a few years old now, this is how pd starts up 
the gui interface:
 sys_startgui(sys_guidir-s_name): in s_inter.c sets up some signal 
handlers, opens a TCP socket (sys_guisock)
   on port 5400 (FIRSTPORTNUM) and then forks.
   The child starts the gui process:
   Under unix, the environment variables TCL_LIBRARY 
and TX_LIBRARY are declared
   and the pd-gui program is called with the port 
number as argument:
   /bin/sh sh -c 
TCL_LIBRARY=LIBDIRPATH/tcl/library TK_LIBRARY=LIBDIRPATH/tk/library 
GUIDIRPATH/pd-gui 5400
   where LIBDIRPATH = sys_libdir-s_name, usually 
/lib/pd, and GUIDIRPATH = guidir, usually /lib/pd/bin
   On Windows and MacOSX, the Wish shell is spawned 
and fed the pd.tk script.
   The child doesn't return.
   The parent thread sets a higher priority, then 
forks again to start a watchdog process.
   Finally the parent thread calls
   socketreceiver_new(0, 0, 0, 0);
   sys_addpollfn(sys_guisock, 
(t_fdpollfn)socketreceiver_read, sys_socketreceiver);
   sys_gui(pdtk_watchdog\n);
   sys_get_audio_apis(buf);
   sys_vgui(pdtk_pd_startup {%s} %s\n, 
pd_version, buf): pdtk_pd_startup is in pd.tk. It calls pd
   with the pd command and the argument init.
   The class pd has glob_initfromgui() as the 
handler for the init message.


 also another option - '-guicmd'  - what about this one?

   
 From the help text:
-guicmd \cmd...\ -- start alternatve GUI program (e.g., remote via 
ssh)\n,
The relevant call is in sys_startgui in s_inter.c:
execl(/bin/sh, sh, -c, sys_guicmd, (char*)0);
..which defaults to calling Wish, the TCL shell.
This bit isn't used for MSW versions though. (Seems to be because 
Windows TCL doesn't have a callback mechanism so pd has to keep polling 
the gui.)
Martin


___
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list