diff options
Diffstat (limited to 'ds9/library/shm.tcl')
-rw-r--r-- | ds9/library/shm.tcl | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/ds9/library/shm.tcl b/ds9/library/shm.tcl new file mode 100644 index 0000000..c75c0de --- /dev/null +++ b/ds9/library/shm.tcl @@ -0,0 +1,251 @@ +# Copyright (C) 1999-2016 +# Smithsonian Astrophysical Observatory, Cambridge, MA, USA +# For conditions of distribution and use, see copyright notice in "copyright" + +package provide DS9 1.0 + +proc ProcessShmCmd {varname iname ml} { + upvar $varname var + upvar $iname i + + global loadParam + global current + global ds9 + + StartLoad + set done 0 + while {!$done} { + + # defaults + set loadParam(load,type) shared + set loadParam(file,type) fits + set loadParam(file,mode) {} + + # mask not supported + set loadParam(load,layer) {} + + set nn [lindex $var [expr $i+4]] + if {$nn == {} || [string range $nn 0 0] == "-"} { + set def 1 + } else { + set def 0 + } + + switch -- [lindex $var $i] { + key - + shmid { + if {$ml} { + MultiLoad + } + set loadParam(shared,idtype) [lindex $var $i] + set loadParam(shared,id) [lindex $var [expr $i+1]] + set loadParam(file,name) [lindex $var [expr $i+2]] + incr i 2 + } + + fits { + if {$ml} { + MultiLoad + } + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + sfits { + if {$ml} { + MultiLoad + } + set loadParam(load,type) sshared + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,hdr) [lindex $var [expr $i+2]] + set loadParam(shared,id) [lindex $var [expr $i+3]] + set loadParam(file,name) [lindex $var [expr $i+4]] + incr i 4 + } + + mosaicimage { + if {$ml} { + MultiLoad + } + if {$def} { + set loadParam(file,mode) {mosaic image iraf} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } else { + set loadParam(file,mode) \ + [list mosaic image [lindex $var [expr $i+1]]] + set loadParam(shared,idtype) [lindex $var [expr $i+2]] + set loadParam(shared,id) [lindex $var [expr $i+3]] + set loadParam(file,name) [lindex $var [expr $i+4]] + incr i 4 + } + } + mosaic { + if {$def} { + set loadParam(file,mode) {mosaic iraf} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } else { + set loadParam(file,mode) \ + [list mosaic [lindex $var [expr $i+1]]] + set loadParam(shared,idtype) [lindex $var [expr $i+2]] + set loadParam(shared,id) [lindex $var [expr $i+3]] + set loadParam(file,name) [lindex $var [expr $i+4]] + incr i 4 + } + } + smosaic { + set loadParam(load,type) sshared + set loadParam(file,mode) \ + [list mosaic [lindex $var [expr $i+1]]] + set loadParam(shared,idtype) [lindex $var [expr $i+2]] + set loadParam(shared,hdr) [lindex $var [expr $i+3]] + set loadParam(shared,id) [lindex $var [expr $i+4]] + set loadParam(file,name) [lindex $var [expr $i+5]] + incr i 5 + } + + mosaicimageiraf { + # backward compatibility + if {$ml} { + MultiLoad + } + set loadParam(file,mode) {mosaic image iraf} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + mosaiciraf { + # backward compatibility + set loadParam(file,mode) {mosaic iraf} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + mosaicimagewcs { + # backward compatibility + if {$ml} { + MultiLoad + } + set loadParam(file,mode) {mosaic image wcs} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + mosaicwcs { + # backward compatibility + set loadParam(file,mode) {mosaic wcs} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + mosaicimagewfpc2 { + # backward compatibility + if {$ml} { + MultiLoad + } + set loadParam(file,mode) {mosaic image wfpc2} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + + rgbcube { + if {$ml} { + CreateRGBFrame + } + set loadParam(file,mode) {rgb cube} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + srgbcube { + if {$ml} { + CreateRGBFrame + } + set loadParam(load,type) sshared + set loadParam(file,mode) {rgb cube} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,hdr) [lindex $var [expr $i+2]] + set loadParam(shared,id) [lindex $var [expr $i+3]] + set loadParam(file,name) [lindex $var [expr $i+4]] + incr i 4 + } + rgbimage { + if {$ml} { + CreateRGBFrame + } + set loadParam(file,mode) {rgb image} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + rgbarray { + if {$ml} { + CreateRGBFrame + } + set loadParam(file,type) array + set loadParam(file,mode) {rgb cube} + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + array { + if {$ml} { + MultiLoad + } + set loadParam(file,type) array + set loadParam(shared,idtype) [lindex $var [expr $i+1]] + set loadParam(shared,id) [lindex $var [expr $i+2]] + set loadParam(file,name) [lindex $var [expr $i+3]] + incr i 3 + } + + default { + if {$ml} { + MultiLoad + } + set loadParam(shared,idtype) key + set loadParam(shared,id) [lindex $var $i] + set loadParam(file,name) [lindex $var [expr $i+1]] + incr i 1 + } + } + + ProcessLoad + + # more to come? + incr i + if {([lindex $var $i] == "-shm") || + ([lindex $var $i] == "shm")} { + set done 0 + incr i + } else { + set done 1 + incr i -1 + } + } + FinishLoad +} + +proc ProcessSendShmCmd {proc id param} { + global current + + if {$current(frame) != {}} { + $proc $id "[$current(frame) get fits file name full]\n" + } +} + |