8 @dbus = DBus::SessionBus.instance
9 @service = @dbus.service(name)
11 @main = @service.object('/vym')
13 @main.default_iface = "org.insilmaril.vym.main.adaptor"
15 # Use metaprogramming to create methods for commands in vym
16 # Getting commands for mainwindow via DBUS
17 puts "Vym::initialize Retrieving commands via dbus..." if $debug
18 s = @main.listCommands
19 @vym_commands = s[0].split ","
20 @vym_commands.each do |c|
21 puts "Creating vym command: #{c}" if $debug
22 self.class.send(:define_method, c) do |*pars|
26 puts " * Calling vym: \"#{com}\":" if $debug
27 ret = @main.execute( com )
39 com = "vym.#{c} (#{a.join(',')});"
40 puts " ** Calling vym: \"#{com}\":" if $debug
41 ret = @main.execute( com )
44 #FIXME-2 err = m.errorLevel[0]
46 puts " Returned: #{ret[0]}" if ret[0] != ""
47 # puts " Error: #{err}" if err > 0
51 end # Creating vym commands
59 return @main.currentMapID[0]
63 #puts "def map: @service.object(\"/vymmodel_#{n}\")"
64 map = @service.object("/vymmodel_#{n}")
66 map.default_iface = "org.insilmaril.vym.model.adaptor"
68 if mapCount() > 0 && n >= 0
69 return VymMap.new(map, n )
71 raise "Error: Map #{n} not accessible in #{@instance}!"
77 @main[@main.default_iface].methods.each do |k,v|
85 def initialize(map, n )
88 # Getting commands for model via DBUS
92 puts "VymMap::initialize Retrieving commands via dbus..." if $debug
93 @model_commands = s[0].split ","
94 @model_commands.each do |c|
95 #puts "Creating map command: #{c}" if $debug
96 self.class.send(:define_method, c) do |*pars|
99 com = "vym.currentMap().#{c}();"
100 puts " * Calling model: \"#{com}\":" if $debug
101 ret = @map.execute( com )
103 # Build string with parameters
113 # com = "vym.clearConsole(); print( vym.currentMap().#{c} (#{a.join(',')}));"
114 com = " vym.currentMap().#{c} (#{a.join(',')});"
115 puts " ** Calling model: \"#{com}\":" if $debug
116 ret = @map.execute( com )
117 puts "Done calling" if $debug
120 #FIXME-2 err = m.errorLevel[0]
122 puts " Returned: #{ret[0]}" if ret[0] != ""
123 #puts " Error: #{err}" if err > 0
133 @dbus = DBus::SessionBus.instance
137 list = @dbus.proxy.ListNames[0].find_all{|item| item =~/org\.insilmaril\.vym/ }
141 puts "Running vym instances:\n #{running.join "\n "}"
150 for i in (0...list.length)
151 vym_service = @dbus.service(list.at(i))
153 vym_main_obj = vym_service.object("/vym");
155 vym_main_obj.introspect
157 vym_main_obj.default_iface = "org.insilmaril.vym.main.adaptor"
159 if vym_main_obj.getInstanceName[0] == name
160 puts "VymManager: Found instance named '#{name}': #{list.at(i)}" if $debug
161 return Vym.new list.at(i)
165 raise "Could not find instance named \"test\""