~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Open Mash Cross Reference
mash/tcl/archive/record_session.tcl

Component: ~ [ mash ] ~ [ apps ] ~ [ gsm ] ~ [ lib ] ~ [ otcl ] ~ [ srm ] ~ [ tcl8.3 ] ~ [ tclcl ] ~ [ tk8.3 ] ~ [ tutorials ] ~

  1 # record_session.tcl --
  2 #
  3 #       FIXME: This file needs a description here.
  4 #
  5 # Copyright (c) 1996-2002 The Regents of the University of California.
  6 # All rights reserved.
  7 #
  8 # Redistribution and use in source and binary forms, with or without
  9 # modification, are permitted provided that the following conditions are met:
 10 #
 11 # A. Redistributions of source code must retain the above copyright notice,
 12 #    this list of conditions and the following disclaimer.
 13 # B. Redistributions in binary form must reproduce the above copyright notice,
 14 #    this list of conditions and the following disclaimer in the documentation
 15 #    and/or other materials provided with the distribution.
 16 # C. Neither the names of the copyright holders nor the names of its
 17 #    contributors may be used to endorse or promote products derived from this
 18 #    software without specific prior written permission.
 19 #
 20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
 21 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 22 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 23 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
 24 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 25 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 26 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 27 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 28 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 30 
 31 
 32 # Some ad-hoc code I wrote so that recording could be started from sdr.
 33 # Can go away soon.
 34 
 35 set sdp ""
 36 while { [gets stdin line] > 0 } {
 37         if { $sdp=="" && [string index $line 0]!="v" } {
 38                 # bug in sdr; the first line isn't always v=
 39                 # ignore all lines until we get a v=
 40                 continue
 41         }
 42         append sdp "$line\n"
 43 }
 44 
 45 exec recorder -sdp $sdp &
 46 exit
 47 
 48 
 49 
 50 # none of the following code will be executed
 51 
 52 
 53 set output [open "|recorder -sdp &" w]
 54 
 55 while { [gets stdin line] > 0 } {
 56         puts $output $line
 57 }
 58 
 59 close $output
 60 exit
 61 
 62 #  Ad hoc glue to allow recording to be started from SDR
 63 
 64 
 65 set data ""
 66 set x 0
 67 
 68 set filename [lindex $argv 0].hdr
 69 set fileid [open $filename "w"]
 70 
 71 
 72 puts $fileid "START_SDP"
 73 puts $fileid "\n"
 74 
 75 while {[gets stdin data]>0} {
 76         puts $fileid $data
 77         set i [string index $data 0]
 78         if {[string compare $i "m"]==0} {
 79                 incr x
 80         }
 81         set input($i,$x) $data
 82 }
 83 
 84 puts $fileid "END_SDP"
 85 puts $fileid "\n"
 86 close $fileid
 87 
 88 set aaddr 0
 89 set vaddr 0
 90 
 91 
 92 for {set j 1} {$j < [expr $x + 1]} {incr j} {
 93         set media [string range $input(m,$j) 2 [expr [string wordend $input(m,$j) 4] -1]]
 94         if {[string compare $media "audio"] == 0 } {
 95                 set port [string range $input(m,$j) 8 [string wordend $input(m,$j) 8]]
 96                 set add [string range $input(c,$j) 9 [string length $input(c,$j)]]
 97                 set add1 [string range $add 0 [expr [string first "/" $add] -1]]
 98                 set aaddr $add1/$port
 99 
100         }
101         if {[string compare $media "video"] == 0 } {
102                 set port [string range $input(m,$j) 8 [string wordend $input(m,$j) 8]]
103                 set add [string range $input(c,$j) 9 [string length $input(c,$j)]]
104                 set add1 [string range $add 0 [expr [string first "/" $add] -1]]
105                 set vaddr $add1/$port
106 
107         }
108 
109 }
110 
111 
112 exec recorder $aaddr $vaddr $filename &
113 
114 exit
115 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.