[telepathy-butterfly/master] Added management of members for media channels (Accept/Reject...)
Louis-Francis Ratté-Boulianne
louis-francis.ratte-boulianne at collabora.co.uk
Thu Sep 10 06:48:10 PDT 2009
---
butterfly/channel/media.py | 44 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/butterfly/channel/media.py b/butterfly/channel/media.py
index 72296d0..00df280 100644
--- a/butterfly/channel/media.py
+++ b/butterfly/channel/media.py
@@ -55,7 +55,9 @@ class ButterflyMediaChannel(
self._session_handler = ButterflySessionHandler(self._conn, self, call)
self.NewSessionHandler(self._session_handler, self._session_handler.type)
- self.GroupFlagsChanged(telepathy.CHANNEL_GROUP_FLAG_CAN_ADD, 0)
+ self.GroupFlagsChanged(telepathy.CHANNEL_GROUP_FLAG_CAN_REMOVE, 0)
+ self.GroupFlagsChanged(telepathy.CHANNEL_GROUP_FLAG_MESSAGE_REMOVE, 0)
+ self.GroupFlagsChanged(telepathy.CHANNEL_GROUP_FLAG_MESSAGE_REJECT, 0)
self.__add_initial_participants()
def Close(self):
@@ -96,6 +98,33 @@ class ButterflyMediaChannel(
if not self._session_handler.HasStreams():
self.Close()
+ def GetSelfHandle(self):
+ return self._conn.GetSelfHandle()
+
+ def GetLocalPendingMembersWithInfo(self):
+ info = []
+ for member in self._local_pending:
+ info.append((member, self._handle, 0, ''))
+ return info
+
+ def AddMembers(self, handles, message):
+ print "Add members", handles, message
+ for handle in handles:
+ print handle, self.GetSelfHandle()
+ if handle == int(self.GetSelfHandle()):
+ print "That's me"
+ if self.GetSelfHandle() in self._local_pending:
+ print "Is local pending"
+ self._call.accept()
+ else:
+ print "Not me", self.GetSelfHandle()
+
+ def RemoveMembers(self, handles, message):
+ print "Remove members", handles, message
+
+ def RemoveMembersWithReason(self, handles, message, reason):
+ print "Remove members", handles, message, reason
+
#papyon.event.call.CallEventInterface
def on_call_incoming(self):
self._call.accept()
@@ -142,5 +171,16 @@ class ButterflyMediaChannel(
@async
def __add_initial_participants(self):
- self.MembersChanged('', [self._handle], [], [], [],
+ added = []
+ local_pending = []
+ remote_pending = []
+
+ if False:
+ remote_pending.append(self._handle)
+ added.append(self._conn.GetSelfHandle())
+ else:
+ local_pending.append(self._conn.GetSelfHandle())
+ added.append(self._handle)
+
+ self.MembersChanged('', added, [], local_pending, remote_pending,
0, telepathy.CHANNEL_GROUP_CHANGE_REASON_NONE)
--
1.5.6.5
More information about the telepathy-commits
mailing list