Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2510
Modified Files: Tag: devel_0_39 desire.tk Log Message: reimporting .pdrc editor
Index: desire.tk =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v retrieving revision 1.1.2.153 retrieving revision 1.1.2.154 diff -C2 -d -r1.1.2.153 -r1.1.2.154 *** desire.tk 15 Apr 2006 20:10:30 -0000 1.1.2.153 --- desire.tk 15 Apr 2006 22:34:24 -0000 1.1.2.154 *************** *** 261,264 **** --- 261,265 ---- proc say_category {text} {}
+ set cmdline(rcfilename) ~/.pdrc set cmdline(console) 1000 set cmdline(icons) icons *************** *** 3451,3454 **** --- 3452,3634 ---- }
+ ############ .pdrc editor + + # this proc might be obsolete + proc cancel_apply_ok {self procprefix} { + frame .$self.buttonsep -height 2 -borderwidth 1 -relief sunken + frame .$self.buttonframe + foreach {a b} {cancel "Cancel" apply "Apply" ok "OK"} { + button .$self.buttonframe.$a -text $b -command "${procprefix}_$a .$self" + pack .$self.buttonframe.$a -side left -expand 1 + } + pack .$self.buttonframe -side bottom -fill x -pady 2m + pack .$self.buttonsep -side bottom -fill x + } + + set pdrc_options { + section "" "Audio DSP" + int -r "sample rate" + devlist -soundindev|-audioindev "audio in devices" + devlist -soundoutdev|-audiooutdev "audio out devices" + alias -sounddev|-audiodev {list -soundindev %1 -soundoutdev %1} + devlist -inchannels "audio input channels (by device, like "2" or "16,8")" + devlist -outchannels "number of audio out channels (same)" + alias -channels {list -inchannels %1 -outchannels %1} + int -audiobuf|-soundbuf "specify size of audio buffer in msec" + int -blocksize "specify audio I/O block size in sample frames" + int -sleepgrain "specify number of milliseconds to sleep when idle" + void -nodac "suppress audio output" + void -noadc "suppress audio input" + alias -noaudio|-nosound {list -nodac -noadc} + radio {"" -alsa -jack -mmio -portaudio|-pa|-asio -oss} { + "Sound API: " + "default" + "use ALSA audio API" + "use JACK audio API" + "use MMIO audio API (default for Windows)" + "use ASIO audio driver (via Portaudio)" + "use OSS audio API" + } + void -32bit "allow 32 bit OSS audio (for RME Hammerfall)" + + section "" "MIDI" + void -nomidiin "suppress MIDI input" + void -nomidiout "suppress MIDI output" + alias -nomidi {list -nomidiin -nomidiout} + devlist -midiindev "midi in device list; e.g., "1,3" for first and third" + devlist -midioutdev "midi out device list, same format" + alias -mididev {list -midindev %1 -midioutdev %1} + + section "" "Externals" + folders -path "add to file search path" + folders -helppath "add to help file search path" + files -lib "load object library(s)" + + section "" "Gooey" + void -nogui "suppress starting the GUI (caution)" + string -guicmd "substitute another GUI program (e.g., rsh)" + int -console "console scrollback lines (0 = disable console)" + folder -look "folder containing buttonbar icons" + void -statusbar "enable statusbar" + int -font "specify default font size in points" + + section "" "Other" + files -open "open file(s) on startup" + void -verbose "extra printout on startup and when searching for files" + int -d "debug level" + void -noloadbang "disable the effect of [loadbang]" + string -send "send a message at startup (after patches are loaded)" + void -listdev "list audio and MIDI devices upon startup" + void -rt|-realtime "use real-time priority (needs root privilege)" + } + + proc pdrc_editor_ok {self} {pdrc_editor_apply $self; pdrc_editor_cancel $self} + proc pdrc_editor_cancel {self} {destroy $self} + proc pdrc_editor_apply {self} { + set self [string trimleft $self .] + pdrc_write $self + } + + proc notebook_select {self i} { + global _ + catch { + .$self.bar.$_($self:section) configure -relief raised + place forget .$self.main.$_($self:section) + } + set _($self:section) $i + place .$self.main.$_($self:section) -x 0 -y 0 + .$self.bar.$_($self:section) configure -relief sunken + } + + proc pdrc_read {self} { + global pdrc_options pdrc_options_h _ cmdline + set fd [open $cmdline(rcfilename) r] + set contents [split [string map {"\n" " "} [read $fd]] " "] + close $fd + foreach {type name desc} $pdrc_options { + set _($self:$name) "" + foreach subname [split $name |] { + set pdrc_options_h($subname) [list $type $name $desc] + } + } + set i 0 + while {$i < [llength $contents]} { + set op [lindex $contents $i] + puts "op=$op" + if {[string length $op]==0} {break} + if {![info exists pdrc_options_h($op)]} { + error "unknown option: $op" + } + foreach {type name desc} $pdrc_options_h($op) {} + switch $type { + folders {incr i; lappend _($self:$name) [lindex $contents $i]} + files {incr i; lappend _($self:$name) [lindex $contents $i]} + void {set _($self:$name) 1} + default {incr i; set _($self:$name) [lindex $contents $i]} + } + incr i + } + } + + proc pdrc_write {self} { + global pdrc_options pdrc_options_h _ cmdline + set fd [open $cmdline(rcfilename) w] + foreach {type name desc} $pdrc_options { + set v $_($self:$name) + set op [lindex [split $name |] 0] + switch $type { + folders {foreach x $v {puts $fd "$op $x"}} + files {foreach x $v {puts $fd "$op $x"}} + void {if {[string length $v]} {if {$v} {puts $fd $op}}} + default {if {[string length $v]} {puts $fd "$op $v"}} + } + } + close $fd + } + + proc pdrc_editor_new {} { + global _ pdrc_options + set self pdrc + pdrc_read $self + toplevel .$self + frame .$self.1 + frame .$self.1.bar + frame .$self.1.buttonsep -height 2 -borderwidth 1 -relief sunken + frame .$self.1.main -borderwidth 1 -relief raised -width 600 -height 350 + set section 0 + foreach {type name desc} $pdrc_options { + switch $type { void { set type toggle }} + switch $type { + section { + incr section + frame .$self.1.main.$section + button .$self.1.bar.$section -text $desc \ + -command [list notebook_select $self.1 $section] + pack .$self.1.bar.$section -side left + } + alias {} + radio { + properties_dialog $self .$self.1.main.$section pdrc_editor_ok \ + [list [lindex $name 0] "$desc" choice {}] + } + default { + properties_dialog $self .$self.1.main.$section pdrc_editor_ok \ + [list $name "$name: $desc" $type {}] + } + } + } + cancel_apply_ok $self pdrc_editor + notebook_select $self.1 1 + pack .$self.1.bar -fill x + pack .$self.1.buttonsep + pack .$self.1.main -fill both -expand yes + pack .$self.1 + return $self + } + + def client pdrc_editor {} {pdrc_editor_new} + + ############ other stuff ######### + #c proc updatesel {_ sel} { #c variable ""