changeset c51a530a87d5 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=c51a530a87d5 description: e NEC to handle jingle-connected events
diffstat:
src/common/connection_handlers_events.py | 14 ++++++++++++-- src/common/jingle.py | 2 -- src/common/jingle_session.py | 10 +++++----- src/gui_interface.py | 22 ++++++++++------------ 4 files changed, 27 insertions(+), 21 deletions(-)
diffs (123 lines):
diff -r f1eb2e6704f3 -r c51a530a87d5 src/common/connection_handlers_events.py --- a/src/common/connection_handlers_events.py Wed Oct 27 11:39:45 2010 +0200 +++ b/src/common/connection_handlers_events.py Wed Oct 27 19:37:14 2010 +0200 @@ -1114,8 +1114,18 @@ name = 'anonymous-auth' base_network_events = []
-class JingleReceivedEvent(nec.NetworkIncomingEvent): - name = 'jingle-received' +class JingleRequestReceivedEvent(nec.NetworkIncomingEvent): + name = 'jingle-request-received' + base_network_events = [] + + def generate(self): + self.fjid = self.jingle_session.peerjid + self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid) + self.sid = self.jingle_session.sid + return True + +class JingleConnectedReceivedEvent(nec.NetworkIncomingEvent): + name = 'jingle-connected-received' base_network_events = []
def generate(self): diff -r f1eb2e6704f3 -r c51a530a87d5 src/common/jingle.py --- a/src/common/jingle.py Wed Oct 27 11:39:45 2010 +0200 +++ b/src/common/jingle.py Wed Oct 27 19:37:14 2010 +0200 @@ -145,8 +145,6 @@ else: return None elif media: - if media not in ('audio', 'video'): - return None for session in self._sessions.values(): if session.peerjid == jid and session.get_content(media): return session diff -r f1eb2e6704f3 -r c51a530a87d5 src/common/jingle_session.py --- a/src/common/jingle_session.py Wed Oct 27 11:39:45 2010 +0200 +++ b/src/common/jingle_session.py Wed Oct 27 19:37:14 2010 +0200 @@ -30,7 +30,7 @@ import xmpp from jingle_transport import get_jingle_transport from jingle_content import get_jingle_content, JingleContentSetupException -from common.connection_handlers_events import JingleReceivedEvent +from common.connection_handlers_events import *
# FIXME: Move it to JingleSession.States? class JingleStates(object): @@ -408,7 +408,7 @@ self.__content_reject(content) self.contents[(content.creator, content.name)].destroy()
- gajim.nec.push_incoming_event(JingleReceivedEvent(None, + gajim.nec.push_incoming_event(JingleRequestReceivedEvent(None, conn=self.connection, jingle_session=self, contents=contents))
def __on_session_initiate(self, stanza, jingle, error, action): @@ -454,7 +454,7 @@ self.state = JingleStates.pending
# Send event about starting a session - gajim.nec.push_incoming_event(JingleReceivedEvent(None, + gajim.nec.push_incoming_event(JingleRequestReceivedEvent(None, conn=self.connection, jingle_session=self, contents=contents))
def __broadcast(self, stanza, jingle, error, action): @@ -675,5 +675,5 @@ (self.peerjid, self.sid, content.media, 'removed'))
def content_negotiated(self, media): - self.connection.dispatch('JINGLE_CONNECTED', (self.peerjid, self.sid, - media)) + gajim.nec.push_incoming_event(JingleConnectedReceivedEvent(None, + conn=self.connection, jingle_session=self, media=media)) diff -r f1eb2e6704f3 -r c51a530a87d5 src/gui_interface.py --- a/src/gui_interface.py Wed Oct 27 11:39:45 2010 +0200 +++ b/src/gui_interface.py Wed Oct 27 19:37:14 2010 +0200 @@ -1543,19 +1543,17 @@ notify.popup(event_type, obj.fjid, account, 'jingle-incoming', path_to_image=path, title=event_type, text=txt)
- def handle_event_jingle_connected(self, account, data): + def handle_event_jingle_connected(self, obj): # ('JINGLE_CONNECTED', account, (peerjid, sid, media)) - peerjid, sid, media = data - if media in ('audio', 'video'): - jid = gajim.get_jid_without_resource(peerjid) - resource = gajim.get_resource_from_jid(peerjid) - ctrl = (self.msg_win_mgr.get_control(peerjid, account) - or self.msg_win_mgr.get_control(jid, account)) + if obj.media in ('audio', 'video'): + account = obj.conn.name + ctrl = (self.msg_win_mgr.get_control(obj.fjid, account) + or self.msg_win_mgr.get_control(obj.jid, account)) if ctrl: - if media == 'audio': - ctrl.set_audio_state('connected', sid) + if obj.media == 'audio': + ctrl.set_audio_state('connected', obj.sid) else: - ctrl.set_video_state('connected', sid) + ctrl.set_video_state('connected', obj.sid)
def handle_event_jingle_disconnected(self, account, data): # ('JINGLE_DISCONNECTED', account, (peerjid, sid, reason)) @@ -1892,7 +1890,6 @@ 'INSECURE_SSL_CONNECTION': \ [self.handle_event_insecure_ssl_connection], 'INSECURE_PASSWORD': [self.handle_event_insecure_password], - 'JINGLE_CONNECTED': [self.handle_event_jingle_connected], 'JINGLE_DISCONNECTED': [self.handle_event_jingle_disconnected], 'JINGLE_ERROR': [self.handle_event_jingle_error], 'PEP_RECEIVED': [self.handle_event_pep_received], @@ -1905,7 +1902,8 @@ 'gmail-notify': [self.handle_event_gmail_notify], 'http-auth-received': [self.handle_event_http_auth], 'iq-error-received': [self.handle_event_iq_error], - 'jingle-received': [self.handle_event_jingle_incoming], + 'jingle-connected-received': [self.handle_event_jingle_connected], + 'jingle-request-received': [self.handle_event_jingle_incoming], 'last-result-received': [self.handle_event_last_status_time], 'muc-admin-received': [self.handle_event_gc_affiliation], 'muc-owner-received': [self.handle_event_gc_config],