Hi

I'm trying to create a simple ruby script, which forks mplayer and
afterwards it stays in a while loop which blocks on gets (this is to
get keyboard input). I start this script from a terminal (linux). When
i start it, it forks mplayer and the focus is on mplayer now. If i
press some keys on my keyboard these are send to mplayer.

Is there a solution to get focus on the terminal/script again (without
user interaction) after i started mplayer? Or another solution to get
keyboard commands into my script?

For some more information i included my program. The client is the one
i'm talking about. The server sends the data via netcat to the client.
It is the beginning of something you might call a pvr (personal video
recorder).

Thanks in advance,

By the way this is my first ruby program (used to program c++/c#)


== pvr_client.rb ==
#!/usr/bin/ruby -w

require 'soap/rpc/driver'

class UI
    def initialize
	@driver = SOAP::RPC::Driver.new('http://localhost:8888/',
'urn:mySoapServer')
        @driver.add_method('startstream', 'toip');
        fork do
            exec('nc -l -p 5000 | mplayer -')
        end
        @driver.startstream('hoi')
    end

    def getInput
        while( command = gets ) do
            puts command
        end
    end
end

ui = UI.new
ui.getInput

== pvr_server.rb ==
#!/usr/bin/ruby -w
require 'soap/rpc/standaloneServer'

class MyServer < SOAP::RPC::StandaloneServer
    def initialize(*args)
        super
        add_method(self, 'startstream', 'toip');
    end

    def startstream(toip)
        fork do
            puts 'start streaming'
            exec('cat piet.mpg | nc localhost 5000')
        end
    end
end

server = MyServer.new('CoolServer', 'urn:mySoapServer', 'localhost',
8888)
trap('INT') { server.shutdown }
server.start