[badger ChannelHandler (PEP-8 age, try to make StreamedMedia channels work) dafydd.harries@collabora.co.uk**20060531232719] { hunk ./cohoba/telepathy/ChannelHandler.py 5 -from cohoba.telepathy.Constants import CONNECTION_HANDLE_TYPE_LIST, CONNECTION_HANDLE_TYPE_CONTACT, CONNECTION_HANDLE_TYPE_NONE +from cohoba.telepathy.Constants import ( + CONNECTION_HANDLE_TYPE_LIST, CONNECTION_HANDLE_TYPE_CONTACT, + CONNECTION_HANDLE_TYPE_NONE) hunk ./cohoba/telepathy/ChannelHandler.py 11 +CT_CONTACT_LIST = "org.freedesktop.Telepathy.Channel.Type.ContactList" +CT_STREAMED_MEDIA = "org.freedesktop.Telepathy.Channel.Type.StreamedMedia" +CT_TEXT = "org.freedesktop.Telepathy.Channel.Type.Text" + hunk ./cohoba/telepathy/ChannelHandler.py 18 -^I$ + hunk ./cohoba/telepathy/ChannelHandler.py 30 - #get_proxy_provider().create_proxy("org.freedesktop.Telepathy.VoipEngine", "/org/freedesktop/Telepathy/VoipEngine") - #self.voip_engine_iface = get_proxy_provider().get_iface("/org/freedesktop/Telepathy/VoipEngine", "org.freedesktop.Telepathy.ChannelHandler") + #get_proxy_provider().create_proxy( + # "org.freedesktop.Telepathy.VoipEngine", + # "/org/freedesktop/Telepathy/VoipEngine") + #self.voip_engine_iface = get_proxy_provider().get_iface( + # "/org/freedesktop/Telepathy/VoipEngine", + # "org.freedesktop.Telepathy.ChannelHandler") hunk ./cohoba/telepathy/ChannelHandler.py 40 -^I^I^I$ + + def request_channel(self, conn_path, type, handle_type, handle, + suppress_handler, **args): + + if 'reply_handler' not in args: + args['reply_handler'] = lambda *args: None + + if 'error_handler' not in args: + args['error_handler'] = global_error_handler + + conn_iface = get_proxy_provider().get_iface(conn_path, + 'org.freedesktop.Telepathy.Connection') + return conn_iface.RequestChannel(type, handle_type, handle, + suppress_handler, **args) + hunk ./cohoba/telepathy/ChannelHandler.py 57 - get_conversation_window_manager().show_existing(contact.conn_path, contact.handle) + get_conversation_window_manager().show_existing(contact.conn_path, + contact.handle) hunk ./cohoba/telepathy/ChannelHandler.py 60 - conn_iface = get_proxy_provider().get_iface(contact.conn_path, 'org.freedesktop.Telepathy.Connection') - conn_iface.RequestChannel("org.freedesktop.Telepathy.Channel.Type.Text", CONNECTION_HANDLE_TYPE_CONTACT, contact.handle, False, - reply_handler=lambda *args: None, error_handler=global_error_handler) -^I$ - def start_media(self, contact): - #conn_iface = get_proxy_provider().get_iface(contact.conn_path, 'org.freedesktop.Telepathy.Connection') - #conn_iface.RequestChannel("org.freedesktop.Telepathy.Channel.Type.StreamedMedia", CONNECTION_HANDLE_TYPE_CONTACT, contact.handle, False, - # reply_handler=lambda *args: None, error_handler=global_error_handler) - conn_iface = get_proxy_provider().get_iface(contact.conn_path, 'org.freedesktop.Telepathy.Connection') - obj = conn_iface.RequestChannel("org.freedesktop.Telepathy.Channel.Type.StreamedMedia", CONNECTION_HANDLE_TYPE_CONTACT, contact.handle, True) -^I$ - window = get_conversation_window_manager().show_existing(contact.handle) - media = TelepathyGroup(contact.conn_path, obj, 0) + self.request_channel( + contact.conn_path, CT_TEXT, CONNECTION_HANDLE_TYPE_CONTACT, + contact.handle, False) + + def _media_badger(self, channel, contact): + print channel + window = get_conversation_window_manager().show_existing( + contact.conn_path, contact.handle) + print (contact.conn_path, channel) + media = TelepathyGroup(contact.conn_path, channel, 0) hunk ./cohoba/telepathy/ChannelHandler.py 71 -^I^I^I$ -^I^I^I^I$ + + def start_media(self, contact): + #conn_iface = get_proxy_provider().get_iface(contact.conn_path, + # 'org.freedesktop.Telepathy.Connection') + #conn_iface.RequestChannel( + # "org.freedesktop.Telepathy.Channel.Type.StreamedMedia", + # CONNECTION_HANDLE_TYPE_CONTACT, contact.handle, False, + # reply_handler=lambda *args: None, error_handler=global_error_handler) + print self, 'start_media!' + obj = self.request_channel( + contact.conn_path, CT_STREAMED_MEDIA, + CONNECTION_HANDLE_TYPE_CONTACT, contact.handle, True, + reply_handler=lambda channel: self._media_badger(channel, contact)) + + hunk ./cohoba/telepathy/ChannelHandler.py 88 -^I^I$ + hunk ./cohoba/telepathy/ChannelHandler.py 92 -^I^I$ + hunk ./cohoba/telepathy/ChannelHandler.py 96 -^I^I^I$ + hunk ./cohoba/telepathy/ChannelHandler.py 98 - account.conn_iface.connect_to_signal('NewChannel', lambda *args: self.on_new_channel(account, *args)) - account.conn_iface.ListChannels(reply_handler=lambda *args: self.on_list_channels(account, *args), error_handler=global_error_handler) + account.conn_iface.connect_to_signal('NewChannel', + lambda *args: self.on_new_channel(account, *args)) + account.conn_iface.ListChannels(reply_handler= + lambda *args: self.on_list_channels(account, *args), + error_handler=global_error_handler) hunk ./cohoba/telepathy/ChannelHandler.py 108 -^I^I^I$ - def on_new_channel(self, account, chan_obj, chan_type, handle_type, handle, suppress_handler=False): - print 'New Channel: ', chan_obj, chan_type, handle_type, handle, suppress_handler + + def on_new_channel(self, account, chan_obj, chan_type, handle_type, + handle, suppress_handler=False): + print ('New Channel: ', chan_obj, chan_type, handle_type, handle, + suppress_handler) + hunk ./cohoba/telepathy/ChannelHandler.py 115 - print '** Handler suppressed:', chan_obj, chan_type, handle_type, handle, suppress_handler - return -^I^I^I^I^I^I^I$ + print ('** Handler suppressed:', chan_obj, chan_type, handle_type, + handle, suppress_handler) + #return + hunk ./cohoba/telepathy/ChannelHandler.py 120 -^I^I$ - name = None + hunk ./cohoba/telepathy/ChannelHandler.py 123 -^I^I^I$ - if chan_type == 'org.freedesktop.Telepathy.Channel.Type.ContactList'and handle_type == CONNECTION_HANDLE_TYPE_LIST and name == "subscribe": - get_contact_list().add_group(account.conn_obj_path, chan_obj, handle) + else: + name = None + + if (chan_type == CT_CONTACT_LIST and + handle_type == CONNECTION_HANDLE_TYPE_LIST and + name == "subscribe"): + get_contact_list().add_group(account.conn_obj_path, chan_obj, + handle) hunk ./cohoba/telepathy/ChannelHandler.py 132 -^I^I^I$ - elif chan_type == 'org.freedesktop.Telepathy.Channel.Type.Text' and handle_type == CONNECTION_HANDLE_TYPE_CONTACT: - get_conversation_window_manager().show(account.conn_obj_path, chan_obj, handle) + + elif (chan_type == CT_TEXT and + handle_type == CONNECTION_HANDLE_TYPE_CONTACT): + get_conversation_window_manager().show( + account.conn_obj_path, chan_obj, handle) hunk ./cohoba/telepathy/ChannelHandler.py 138 -^I^I$ - elif chan_type == "org.freedesktop.Telepathy.Channel.Type.StreamedMedia": - #window = get_conversation_window_manager().show_existing(handle) - #media = TelepathyGroup(account.conn_obj_path, chan_obj, handle) - #window.start_media(media) -^I^I$ - #self.voip_engine_iface.HandleChannel( - # get_proxy_provider().get_service(account.conn_obj_path), account.conn_obj_path, - # chan_type, chan_obj, - # handle_type, handle, - # reply_handler=lambda: None, error_handler=global_error_handler) -^I^I^I$ - #handled = True - pass -^I^I^I^I^I $ + + elif chan_type == CT_STREAMED_MEDIA: + window = get_conversation_window_manager().show_existing( + account.conn_obj_path, handle) + print (account.conn_obj_path, chan_obj, handle) + media = TelepathyGroup(account.conn_obj_path, chan_obj, handle) + window.start_media(media) + + self.voip_engine_iface.HandleChannel( + get_proxy_provider().get_service(account.conn_obj_path), + account.conn_obj_path, chan_type, chan_obj, handle_type, + handle, reply_handler=lambda: None, + error_handler=global_error_handler) + + handled = True + hunk ./cohoba/telepathy/ChannelHandler.py 155 - print '** New Channel Not handled', chan_obj, chan_type, handle_type, handle, suppress_handler + print ('** New Channel Not handled', chan_obj, chan_type, + handle_type, handle, suppress_handler) }