[Telepathy] MC5 and my GSoC project for Banshee
simon.mcvittie at collabora.co.uk
Mon Jun 22 03:07:08 PDT 2009
On Sun, 21 Jun 2009 at 22:14:18 -0600, Neil Loknath wrote:
> So, what disadvantages are there to sticking with the Requests and
> ContactCapabilities interfaces instead of using the new MC5 things?
The problem is that you won't interact correctly with other clients:
* SetSelfCapabilities, as you noticed, needs to be handled by one process (MC)
to work properly
* If you don't tell MC 5 that you're willing to handle a certain type of tube,
it will decide the tube can't be handled, and close it as undispatchable
* If another client could handle your tube (perhaps Banshee, RB and Amarok will
eventually all support StreamTubes with service "daap"?) then Banshee will
try to use an incoming tube that RB has already been given by MC, and they'll
fight over it
The solution to all these is to have some central process dispatch the
* The current hack is that Empathy is that central process - have a look at
Arnaud's work on VNC tubes. The tube handler (Vinagre) registers itself with
Empathy, Empathy is the channel handler as far as MC 4 is concerned, and
Empathy passes the tube to Vinagre.
* When Empathy is ported to MC 5, initially it will tell MC 5 that it handles
every channel, then do dispatching internally; in particular, it'll continue
to provide the current "EmpathyTubeHandler" hack, and Vinagre will work
* When Empathy-on-MC5 is stable, Vinagre can be ported to use MC 5 directly,
as a real ChannelDispatcher client.
* When a reasonable number of tube handlers are real ChannelDispatcher clients,
Empathy will stop providing the EmpathyTubeHandler hack and pretending to be
a channel dispatcher, and will be "just another client".
I'd suggest following the same process for Banshee as for Vinagre - depending
on Empathy in the short term shouldn't be a big problem.
I realise this isn't an ideally smooth transition, but we're hoping to move
everything over to the AccountManager/ChannelDispatcher as fast as possible
(in time for GNOME 2.28, in Empathy's case).
More information about the telepathy