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