GNOME Bugzilla – Bug 135960
transform gnomemeeting core into a reusable component
Last modified: 2006-01-17 19:43:52 UTC
I suggest to the gnomemeeting team to split the UI and the core of gnomemeeting for the 2.x branch. It could produce something like gecko for web browsing... or scintilla for code editors. It would allow other software like gaim to integrate the component and gine them the possibility to create a full instant messenger program.
There will certainly not be a split between the core and the UI, but a reusable component (either bonobo or D-BUS) is foreseen. Notice you can already use gnomemeeting -c as a way to call users from external programs, but gaim doesn't implement it.
Ok, but I still think that it would be good for the display core to be completly independant from the user interface. A bonobo componet allows application to invoke methods from others, but if in gnomemeeting it's not possible to hide the UI, other applications which wants to integrate it can only run a separate instance of gnomemeeting and comunicate with it. I propose to create two different projects: - The first one would be a minimal graphical representation of the component. (Able to write images to a buffer and send/receive sound/text/video). This component would be provided with an API. - The second one would be the real gnomemeeting program which use the previous API to integrate the components. Like this, we can have a complete reusable object for a lots of applications and integrate the gnomemeeting power everwhere, like gecko or scintilla. I'm not sure if you agree with that, but since we are on the 2.0 road, it's a good time to think about this design question.
What you just described is exactly what a bonobo component is. We have 2 possible approaches for integration: - Create an object reusable by other programs, ie a bonobo component that could be embedded inside other programs like evolution. That object would be reused by GnomeMeeting itself. - Use a protocol that other programs can use to pass commands to GnomeMeeting, that's more like DBUS. We have to discuss that on the devel mailing list, that is foreseen for 2.00, but we do not know yet how to do things. Here are facts and open questions : - A Bonobo component is only reusable inside GNOME programs - The DBUS approach works with KDE and GNOME and is a freedesktop standard - Would it be that useful to be able to embed the video in other programs? What would it bring compared to a good interaction with those other programs? Intuitively, I would prefer the Bonobo approach, but other GNOME developers seem to not be convinced by Bonobo for that kind of thing and are all moving to DBUS.
I thins that coulb be good to embed gnomemeeting in Instant messaging programs like kopete, gaim or amsn. The new tendance with IM programs is to include all in one. So if gaim or kopete developers wants to include it in their app, it requires something like a bonobo component. But that's true that it also requires to have some gnome depedencies. Is not it already working with these dependencies in the current version ? The thing that I would like to be possible is something like that : http://the.bestel.free.fr/conf.png (This is a fake screenshot that I did with gimp) Do you think something like this is possible with the DBUS approach ? Thanks.
I'm not sure DBUS permits it. If DBUS permits it, then I will clearly choose DBUS. However, you have to be aware that : - Kopete and AMSN developers will clearly not accept embedding GNOME code, which is bad => Using Bonobo might not be good. - GAIM developers don't want to use GNOME code either, they want to stay GTK only, which is bad too. In all cases, we have to chose the approach that will be easy to be implemented in other software. I agree your screenshot is nice, but it has other problems like for example, interaction with the windows world won't work, only with linux as ICQ, MSN, ... are all using a different and proprietary protocol.
I just read some doc and yes DBUS permits embedding in GTK and QT applications. So all applications adopting DBUS could reuse a GNOMEMEETING component. I have to think more about it, but that is clearly on my TODO list.
There is a DBUS component perfectly usable in GM 2.00, released at http://www.ekiga.org (BETA1). It will evolve. I will mark this bug as FIXED because there is a DBUS component, even though it is not a real separation of the core and of the UI (which I won't do anyway).