[PD] re-Tcl_LinkVar
carmen
ix at replic.net
Thu Aug 25 21:08:04 CEST 2005
On Thu, Aug 25, 2005 at 06:42:54PM +0200, nico wrote:
> hi, how are you...
>
> >btw, if you want to run Tk, there would be a further difficulty
> >of having to start a separate thread for the Tcl event loop.
> i've made a starkit wich run pd with nogui and interact with pd using
> [netsend] [netreceive] from pd parts and socket & socket -server from
> tcl part
> but,
> tk does not update correctly data it receives via socket (i believe
> it's because parsing proc invoke too many work)
my pd GUI works like this, at first my tries didnt work (was blocking the entire tk event loop). but eventually a combination of mathieu's emails and some tutorial circa tcl 7.3 worked..
you can get the code from
cvs -d :pserver:anonymous at cvs.sf.net:cvsroot/pure-data co -r devel_0_39 pd/src/pd*tk*
heres the relevant server bits:
variable pd_send
if {[catch {set pd_send [socket localhost 4400]}]} {set pd_send -1} {puts "connected $pd_send"}
catch {
set pd_receive [socket -server ::pd::receive_conn 4401]
}
proc receive_conn {s addr port} {
fileevent $s readable [list ::pd::receive $s]
fconfigure $s -buffering line -blocking 0
puts "connection from $addr"
}
proc receive {s} {
set l [gets $s]
if {[eof $s]} {
close $s
} else {
if {[catch {eval $l}]} {puts "error in: $l"}
}
}
proc send {msg} {
variable pd_send
if {$pd_send ne -1} {
# puts "sending: $msg"
puts $pd_send [concat $msg \;]
flush $pd_send
}
}
>
> so, i had i idea:
> i will make an external to link tcl variable with pd variable, without
> using network.
> is it a bad idea?
if you get an in-process interpreter thread running as an external, please post!, id love to try..
carmen
More information about the Pd-list
mailing list