diff options
author | N.N. <matju@users.sourceforge.net> | 2008-04-28 18:10:15 +0000 |
---|---|---|
committer | N.N. <matju@users.sourceforge.net> | 2008-04-28 18:10:15 +0000 |
commit | 91c0003b158e5f0ed9d0677fb136ae8bb6f86ec5 (patch) | |
tree | d413a48086819f6a2620cd27d030861d122d4f3f /externals/gridflow/extra | |
parent | 98dfdfa2fc1c92ba69e33fd77ed3392034297c1f (diff) |
this is an old gridflow, and there's already a svn repository at http://gridflow.ca/svn/trunk
svn path=/trunk/; revision=9739
Diffstat (limited to 'externals/gridflow/extra')
-rw-r--r-- | externals/gridflow/extra/gf.valgrind2 | 42 | ||||
-rw-r--r-- | externals/gridflow/extra/jmax_format.rb | 167 | ||||
-rw-r--r-- | externals/gridflow/extra/puredata_format.rb | 129 | ||||
-rw-r--r-- | externals/gridflow/extra/ruby.valgrind | 82 | ||||
-rw-r--r-- | externals/gridflow/extra/server_1_grid.rb | 26 | ||||
-rw-r--r-- | externals/gridflow/extra/server_1_ppm.rb | 20 | ||||
-rw-r--r-- | externals/gridflow/extra/server_2.rb | 65 | ||||
-rw-r--r-- | externals/gridflow/extra/smpte.rb | 23 |
8 files changed, 0 insertions, 554 deletions
diff --git a/externals/gridflow/extra/gf.valgrind2 b/externals/gridflow/extra/gf.valgrind2 deleted file mode 100644 index d823b34b..00000000 --- a/externals/gridflow/extra/gf.valgrind2 +++ /dev/null @@ -1,42 +0,0 @@ -{ - hello1 - Memcheck:Cond - fun:mark_locations_array -} -{ - hello2 - Memcheck:Cond - fun:gc_mark -} -{ - hello3 - Memcheck:Value4 - fun:gc_mark -} -{ - hello4 - Memcheck:Cond - fun:gc_mark_children -} -{ - hello5 - Memcheck:Value4 - fun:gc_mark_children -} -{ - hello6 - Memcheck:Cond - fun:_dl_relocate_object_internal -} -{ - hello7 - Memcheck:Value4 - fun:st_lookup - fun:rb_mark_generic_ivar -} -{ - hello8 - Memcheck:Cond - fun:st_lookup - fun:rb_mark_generic_ivar -} diff --git a/externals/gridflow/extra/jmax_format.rb b/externals/gridflow/extra/jmax_format.rb deleted file mode 100644 index 8fba0a73..00000000 --- a/externals/gridflow/extra/jmax_format.rb +++ /dev/null @@ -1,167 +0,0 @@ -=begin - $Id: jmax_format.rb,v 1.2 2006-03-15 04:40:47 matju Exp $ - - GridFlow - Copyright (c) 2001,2002,2003 by Mathieu Bouchard - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - See file ../COPYING for further informations on licensing terms. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -=end - - -class JMaxFileHandler - Size = [4,1,2,4] - Packer = ["N","c","n","N"] - OpTable = [ - [0, :return], - [1, :push, :int], - [2, :push, :float], - [3, :push, :symbol], - [5, :set, :int], - [6, :set, :float], - [7, :set, :symbol], - [9, :pop_args, :int], - [10, :push_obj, :int], - [11, :mv_obj, :int], - [12, :pop_objs, :int], - [13, :make_obj, :int], - [14, :put_prop, :symbol], - [16, :obj_mess, :int, :symbol, :int], - [18, :push_obj_table, :int], - [19, :pop_obj_table], - [20, :connect], - [21, :make_top_obj, :int], - ] - OpTableById = {} - OpTableByName = {} - OpTable.each {|entry| - id,name,arg = entry - OpTableById[id] = entry - OpTableByName[name] = entry - } -end - -class JObject - attr_reader :properties - attr_accessor :parent_patcher - attr_reader :init_messages - attr_reader :connections - def self.[](*args) new(*args) end - def initialize(*args) - @args = args - @properties = {} - @init_messages = [] - end - def send_in(inlet,*args) - @init_messages << [inlet,*args] - end - def connect(inlet,target,outlet) - end - def subobjects - @subobjects={} if not defined? @subobjects - @subobjects - end -end - -class JMaxFileReader < JMaxFileHandler - def initialize(f,factory=JObject) - @f = f - @symbols = [] - @estack = [] - @ostack = [] - @tstack = [] - @factory = factory - end - def parse - magic, code_size, n_symbols = @f.read(12).unpack("a4NN") - case magic - when "bMax"; #ok - when "bMa2"; raise "bMa2 format (jMax 4) is not supported yet" - else raise "not a jMax file" - end - @code = @f.read code_size - @symbols = @f.read.split(/\0/).map {|x| x.intern } - @index = 0 - while @index < @code.size - read_opcode - end - raise "@estack.size!=0" if @estack.size!=0 - raise "@ostack.size!=1" if @ostack.size!=1 - raise "@tstack.size!=0" if @tstack.size!=0 - @ostack[0] - end - def read_opcode - #puts "#{@index} of #{@code.size}" - op = @code[@index]; @index+=1 - op1,op2 = op&0x3f,op>>6 - entry = OpTableById[op1] - if not entry - puts "skipping unknown opcode #{op1},#{op2}" - return - end - args = [] - (entry.length-2).times {|i| - args << (case entry[2+i] - when :int - n=Size[op2]; v=@code[@index,n].unpack(Packer[op2])[0] - x = if v[8*n-1]!=0 then ~(~v&((1<<(8*n-1))-1)) else v end - #STDERR.puts "WARNING: #{v} -> #{x}" if x<0 - x - when :float - n=4; @code[@index,4].unpack("g")[0] - when :symbol - n=Size[op2]; @symbols[@code[@index,n].unpack(Packer[op2])[0]] - when nil - end) - @index+=n - } - #text = sprintf "%05d: %2d,%1d: %s", @index, op1, op2, entry[1] - #text << "(" << args.map{|x|x.inspect}.join(",") << ")" - #puts text - send entry[1], *args - end - def push x; @estack << x end - def set x - if @estack.size>0 then @estack[-1]=x else @estack << x end - end - def put_prop x; @ostack[-1].properties[x] = @estack[-1] end - def make_obj x - patcher = @ostack[-1] if @ostack.size>0 - baby = @factory[*(@estack[-x,x].reverse)] - @ostack << baby - @ostack[-1].parent_patcher = patcher - patcher.subobjects[baby]=true if patcher - end - alias :make_top_obj :make_obj - def pop_args x; @estack[-x,x]=[] end - def push_obj_table x; @tstack<<[] end - def mv_obj x; @tstack[-1][x]=@ostack[-1] end - def pop_objs x; @ostack[-x,x]=[] end - def obj_mess i,s,n - o = @ostack[-1] - m = @estack[-n,n].reverse - if i<0 then o.send s,*m else o.send_in i,s,*m end - end - def push_obj x; @ostack<<@tstack[-1][x] end - def connect; @ostack[-1].connect @estack[-1],@ostack[-2],@estack[-2] end - def pop_obj_table; @tstack.pop end - def return; end -end - -if $0 == __FILE__ - jff = JMaxFileReader.new File.open("samples/fire.jmax") - jff.parse -end diff --git a/externals/gridflow/extra/puredata_format.rb b/externals/gridflow/extra/puredata_format.rb deleted file mode 100644 index eaf32962..00000000 --- a/externals/gridflow/extra/puredata_format.rb +++ /dev/null @@ -1,129 +0,0 @@ -=begin - $Id: puredata_format.rb,v 1.2 2006-03-15 04:40:47 matju Exp $ - - GridFlow - Copyright (c) 2001,2002,2003 by Mathieu Bouchard - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - See file ../COPYING for further informations on licensing terms. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -=end - -class PureDataFileWriter - def initialize filename - @f = File.open filename, "w" - end - def close; @f.close end - def write_patcher o - pr = o.properties - @f.puts "#N canvas #{pr[:wx]} #{pr[:wy]} #{pr[:ww]} #{pr[:wh]} 10;" - ol = o.subobjects.keys - x=0 - ol.find_all {|a| a.classname=="inlet"}.sort {|a,b| a.argv[0] <=> b.argv[0] }.each {|a| - if x>a.properties[:x] - a.properties[:x]=x+16 - STDERR.puts "warning: moving inlet #{a.argv[0]} to the right" - end - x=a.properties[:x] - } - x=0 - ol.find_all {|a| a.classname=="outlet"}.sort {|a,b| a.argv[0] <=> b.argv[0] }.each {|a| - if x>a.properties[:x] - a.properties[:x]=x+16 - STDERR.puts "warning: moving outlet #{a.argv[0]} to the right" - end - x=a.properties[:x] - } - ol.each {|so| write_object so } - ol.each_with_index {|so,i| - next if not so.instance_eval{defined? @outlets} - so.outlets.each_with_index {|conns,outlet| - next if not conns - conns.each {|target,inlet| - @f.puts "#X connect #{i} #{outlet} #{ol.index target} #{inlet};" - } - } - } - end - - def list_to_s l - l.map {|x| - if Array===x then "( " + list_to_s(x) + " )" else escape(x.to_s) end - }.join " " - end - - # what am i supposed to do? - def escape x; x.gsub(/[;,]/) {|x| " \\#{x}" }.gsub(/\n/) {"\\\n"} end - def escape2 x; x.gsub(/[,]/) {|x| " \\#{x} " }.gsub(/[;\$\"]/) {|x| "\\#{x}" }.gsub(/\n/) {"\\\n"} end - - def write_object o - pr = o.properties - #classname = o.class.instance_eval{@foreign_name} - classname = o.classname - if classname=="jpatcher" - #@f.print "#N canvas 0 0 " - write_patcher o - end - - case classname - when "display"; classname="print" - when "list"; classname="listmake" - end - - t = case classname - when "jcomment"; "text" - when "messbox"; "msg" - when "jpatcher"; "restore" - when "intbox"; "floatatom" - else "obj" - end - @f.print "#X #{t} #{pr[:x]} #{pr[:y]} " - - case classname - when "button" - @f.print "bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1" - when "jcomment" - @f.print escape2(pr[:comment].to_s) - when "messbox" - av=o.argv[0] - i=0 - dollar="$".intern - while i<av.length - if av[i]==dollar then av[i,2]=("\\$"+av[i+1].to_s).intern else i+=1 end - end - @f.print(list_to_s(av)) - when "slider" - #doradio = pr[:maxValue]-pr[:minValue]<=10 - doradio = false - #p doradio - name = case pr[:orientation] - when 1; if doradio then "hradio" else "hsl" end - when 2,nil; if doradio then "vradio" else "vsl" end - else raise "bogus slider orientation?" end - @f.print "#{name} "+ - "#{pr[:w]} #{pr[:h]} #{pr[:minValue]} #{pr[:maxValue]} 0 0 "+ - "empty empty empty -2 -6 0 8 -262144 -1 -1 0 1" - when "intbox" - @f.print "5 0 0 0 - - -;" - when "inlet"; @f.print "inlet" - when "outlet"; @f.print "outlet" - when "jpatcher" - @f.print("pd ",list_to_s(o.argv)) - else - @f.print(classname," ",list_to_s(o.argv)) - end - @f.puts ";" - end -end diff --git a/externals/gridflow/extra/ruby.valgrind b/externals/gridflow/extra/ruby.valgrind deleted file mode 100644 index 64603378..00000000 --- a/externals/gridflow/extra/ruby.valgrind +++ /dev/null @@ -1,82 +0,0 @@ -# From: Tanaka Akira <akr@m17n.org> -# matz@ruby-lang.org (Yukihiro Matsumoto) writes: -# -#> Some reports from valgrind is due to Ruby's conservative GC, which -#> touch all C stack region. -# -#I use following suppression file to suppress such reports. - -{ - memcpy/rb_thread_save_context(Value1) - Addr1 - fun:memcpy - fun:rb_thread_save_context -} - -{ - memcpy/rb_thread_restore_context(Value1) - Addr1 - fun:memcpy - fun:rb_thread_restore_context -} - -{ - strchr/_dl_catch_error(Cond) - Cond - fun:strchr - obj:/lib/libc-2.2.5.so - fun:_dl_catch_error -} - -{ - mark_locations_array(Cond) - Cond - fun:mark_locations_array -} - -{ - mark_locations_array(Value4) - Value4 - fun:mark_locations_array -} - -{ - mark_locations_array(Value4) - Addr4 - fun:mark_locations_array -} - -{ - rb_gc_mark(Cond) - Cond - fun:rb_gc_mark -} - -{ - rb_gc_mark(Value4) - Value4 - fun:rb_gc_mark -} - -{ - rb_gc_mark_children(Value4) - Value4 - fun:rb_gc_mark_children -} - -{ - rb_gc_mark_children(Cond) - Cond - fun:rb_gc_mark_children -} - -#-- -#Tanaka Akira - - -# additional attempt by matju: -{ - libc - Cond - obj:/lib/libc-2.2.5.so -} diff --git a/externals/gridflow/extra/server_1_grid.rb b/externals/gridflow/extra/server_1_grid.rb deleted file mode 100644 index fcc847f2..00000000 --- a/externals/gridflow/extra/server_1_grid.rb +++ /dev/null @@ -1,26 +0,0 @@ -# $Id: server_1_grid.rb,v 1.2 2006-03-15 04:40:47 matju Exp $ - -require "socket" -require "smpte" # in this folder - -picture = "\x7fGRID \000\003" -picture << [240,320,3].pack("N*") -make_smpte(picture) {|*rgb| rgb.pack "N*" } - -# File.open("blah.grid","w") {|f| f.write picture } - -serv = TCPServer.new 4242 -loop { - puts "waiting for connection (port 4242)" - sock = serv.accept - puts "incoming connection" - begin - loop { - sock.write picture - puts "wrote one picture" - } - rescue Errno::EPIPE # Broken Pipe - puts "connection closed (by client)" - # it's ok, go back to waiting. - end -} diff --git a/externals/gridflow/extra/server_1_ppm.rb b/externals/gridflow/extra/server_1_ppm.rb deleted file mode 100644 index 5f2ec52e..00000000 --- a/externals/gridflow/extra/server_1_ppm.rb +++ /dev/null @@ -1,20 +0,0 @@ -# $Id: server_1_ppm.rb,v 1.2 2006-03-15 04:40:47 matju Exp $ - -require "socket" - -picture = File.open("../images/teapot.ppm") {|x| x.read } - -serv = TCPServer.new 4242 -loop { - puts "waiting for connection (port 4242)" - sock = serv.accept - begin - loop { - sock.write picture - puts "wrote one picture" - } - rescue Errno::EPIPE # Broken Pipe - puts "connection closed (by client)" - # it's ok, go back to waiting. - end -} diff --git a/externals/gridflow/extra/server_2.rb b/externals/gridflow/extra/server_2.rb deleted file mode 100644 index 4807d502..00000000 --- a/externals/gridflow/extra/server_2.rb +++ /dev/null @@ -1,65 +0,0 @@ -# a server program to connect 2 or more clients together. -# by Mathieu Bouchard - -require "fcntl" -require "socket" - -class IO - def nonblock=flag - bit = Fcntl::O_NONBLOCK - fcntl(Fcntl::F_SETFL, (fcntl(Fcntl::F_GETFL) & ~bit) | - if flag then bit else 0 end) - end - # does not work with any ruby version, due to a bug. see below. - def read_at_most n - s="" - k=1<<(Math.log(n)/Math.log(2)).to_i - while k>0 - unless k+s.length>n - puts "trying #{k}" - (s << read(k)) rescue Errno::EWOULDBLOCK - end - k>>=1 - end - s - end - # this one works but is slow. - def bugfree_read_at_most n - s="" - (s << (read 1) while s.length<n) rescue Errno::EWOULDBLOCK - s - end -end - -serv = TCPServer.new 4242 -socks = [serv] - -loop { - puts "waiting for connection (port 4242)" - begin - loop { - puts "waiting" - ready,blah,crap = IO.select socks, [], socks, 1 - (ready||[]).each {|s| - if s==serv then - sock = serv.accept - sock.nonblock=true - socks << sock - puts "incoming connection (total: #{socks.length-1})" - else - other = socks.find_all{|x|not TCPServer===x} - [s] - stuff = s.bugfree_read_at_most 1024 - p stuff - (s.close; socks.delete s) if not stuff or stuff.length==0 - other.each {|x| - p x - x.write stuff - } - end - } - } - rescue Errno::EPIPE # Broken Pipe - puts "connection closed (by client)" - # it's ok, go back to waiting. - end -} diff --git a/externals/gridflow/extra/smpte.rb b/externals/gridflow/extra/smpte.rb deleted file mode 100644 index 6b568de2..00000000 --- a/externals/gridflow/extra/smpte.rb +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2001 by Mathieu Bouchard -# $Id: smpte.rb,v 1.2 2006-03-15 04:40:47 matju Exp $ - -# The standard SMPTE color test pattern. -# AS SEEN ON TV !!! (but this is a cheap plastic imitation) - -def make_smpte(picture="") - row_1 = "" - row_2 = "" - row_3 = "" - row_3_c = [[0,63,105],[255,255,255],[64,0,119]] - (0...320).each {|x| - n_barre_1 = 7 - x*7/320 - n_barre_2 = if n_barre_1&1==0 then 0 else 8 - n_barre_1 end - row_1 << yield (*([1,2,0].map{|c| 255 * ((n_barre_1 >> c)&1) })) - row_2 << yield (*([1,2,0].map{|c| 255 * ((n_barre_2 >> c)&1) })) - row_3 << yield (*(row_3_c[x/57] || [0,0,0])) - } - 160.times { picture << row_1 } - 20 .times { picture << row_2 } - 60 .times { picture << row_3 } - picture -end |