summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2010-10-22 13:31:57 -0400
committerLouis-Francis Ratté-Boulianne <louis-francis.ratte-boulianne@collabora.co.uk>2010-11-24 16:14:59 -0500
commit67091b55189b0ab14db4462bfd816c8adcf3552e (patch)
treeeaf5997accf48e97b22d3c1836a8fcddef625735
parente75a98e8c12b1fa8a7a7aebcb21588724b6e4354 (diff)
Add default implementation of Conference interface
The connection managers needs to properly populate: * self._conference_channels * self._conference_initial_channels * self._conference_initial_invitees * self._conference_invitation_message * self._conference_original_channels
-rw-r--r--src/server/channel.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/channel.py b/src/server/channel.py
index 7a9d3d0..96ebb15 100644
--- a/src/server/channel.py
+++ b/src/server/channel.py
@@ -27,6 +27,7 @@ from telepathy.constants import (CONNECTION_HANDLE_TYPE_NONE,
from telepathy.errors import InvalidArgument
from telepathy.interfaces import (CHANNEL_INTERFACE,
+ CHANNEL_INTERFACE_CONFERENCE,
CHANNEL_INTERFACE_DTMF,
CHANNEL_INTERFACE_GROUP,
CHANNEL_INTERFACE_HOLD,
@@ -303,6 +304,50 @@ class ChannelTypeText(Channel, _ChannelTypeTextIface):
from telepathy._generated.Channel_Interface_Chat_State \
import ChannelInterfaceChatState
+from telepathy._generated.Channel_Interface_Conference \
+ import ChannelInterfaceConference as _ChannelInterfaceConference
+
+class ChannelInterfaceConference(_ChannelInterfaceConference, DBusProperties):
+
+ def __init__(self):
+ _ChannelInterfaceConference.__init__(self)
+ DBusProperties.__init__(self)
+
+ self._conference_channels = set()
+ self._conference_initial_channels = set()
+ self._conference_initial_invitees = set()
+ self._conference_invitation_message = ""
+ self._conference_original_channels = {}
+
+ # D-Bus properties for conference interface
+ self._implement_property_get(CHANNEL_INTERFACE_CONFERENCE, {
+ 'Channels':
+ lambda: dbus.Array(self._conference_channels, signature='o'),
+ 'InitialChannels':
+ lambda: dbus.Array(self._conference_initial_channels,
+ signature='o'),
+ 'InitialInviteeHandles':
+ lambda: dbus.Array(
+ [h.get_id() for h in self._conference_initial_invitees],
+ signature='u'),
+ 'InitialInviteeIDs':
+ lambda: dbus.Array(
+ [h.get_name() for h in self._conference_initial_invitees],
+ signature='s'),
+ 'InvitationMessage':
+ lambda: dbus.String(self._conference_invitation_message),
+ 'OriginalChannels':
+ lambda: dbus.Dictionary(self._conference_original_channels,
+ signature='uo')
+ })
+
+ # Immutable conference properties
+ self._add_immutables({
+ 'InitialChannels': CHANNEL_INTERFACE_CONFERENCE,
+ 'InitialInviteeIDs': CHANNEL_INTERFACE_CONFERENCE,
+ 'InitialInviteeHandles': CHANNEL_INTERFACE_CONFERENCE,
+ 'InvitationMessage': CHANNEL_INTERFACE_CONFERENCE
+ })
from telepathy._generated.Channel_Interface_DTMF import ChannelInterfaceDTMF