From: Christian Bauer <cbauer@st...> - 2001-03-01 20:20:07
A while ago, someone on the mailing list asked about a possibility to
"remotely control" xine. Inspired by this, I hacked up a little CORBA
interface, based on ORBit, which I've now checked into the CVS.
The "Xine" object just defines three methods: play(), stop() and pause(),
but additional methods (audio/spu selection, fullscreen toggle etc.) can be
added easily. There's a little "xine-remote" program in the "corba"
directory that provides a sample for how to remotely control a running xine
instance via CORBA.
The implementation doesn't use any name service yet, so the user has to
specify the IOR string which is printed by xine upon startup to
"xine-remote" (I acknowledge that this is very ugly and should change soon).
The CORBA server is running in a separate thread (because I didn't have the
time to figure out how to integrate the ORB and X11 event loops). To avoid
race conditions with the GUI I've added some locking to the functions in
xine.c ((UN)LOCK_XINE). One problem is that there's little to no interaction
with the xine GUI. The server thread just calls xine_play(), xine_pause()
etc. but the GUI doesn't get notified what's going on. A little more
interaction between the xine core and the GUI might be desirable.
Another idea is to make the CORBA interface more complete and have the GUI
use it, too. This might also provide a nice way to implement GUI plugins,
but it would make ORBit a requirement for xine, then.
/ Coding on PowerPC and proud of it