Mercurial > pidgin
comparison libpurple/protocols/msn/notification.c @ 20570:5913725cbcd6
Use an independant status type for 'current media' stuff, instead of using
status attributes. This includes changes in both xmpp and msn.
Also, in MSN, CurrentMedia is sent with PSM if you turn on the status and
set the attributes on the account.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Thu, 20 Sep 2007 16:30:17 +0000 |
parents | 723b5a2f91ce |
children | 5f829728a1a5 |
comparison
equal
deleted
inserted
replaced
20569:7393ee28c819 | 20570:5913725cbcd6 |
---|---|
1623 MsnSession *session; | 1623 MsnSession *session; |
1624 PurpleAccount *account; | 1624 PurpleAccount *account; |
1625 PurpleConnection *gc; | 1625 PurpleConnection *gc; |
1626 MsnUser *user; | 1626 MsnUser *user; |
1627 const char *passport; | 1627 const char *passport; |
1628 char *psm_str, *currentmedia_str, *str; | 1628 char *psm_str, *str; |
1629 | 1629 CurrentMedia media = {NULL, NULL, NULL}; |
1630 /*get the payload content*/ | |
1631 // purple_debug_info("MSNP14","UBX {%s} payload{%s}\n",cmd->params[0], cmd->payload); | |
1632 | 1630 |
1633 session = cmdproc->session; | 1631 session = cmdproc->session; |
1634 account = session->account; | 1632 account = session->account; |
1635 gc = purple_account_get_connection(account); | 1633 gc = purple_account_get_connection(account); |
1636 | 1634 |
1637 passport = cmd->params[0]; | 1635 passport = cmd->params[0]; |
1638 user = msn_userlist_find_user(session->userlist, passport); | 1636 user = msn_userlist_find_user(session->userlist, passport); |
1639 | 1637 |
1640 psm_str = msn_get_psm(cmd->payload,len); | 1638 psm_str = msn_get_psm(cmd->payload,len); |
1641 currentmedia_str = msn_parse_currentmedia( | 1639 msn_user_set_statusline(user, psm_str); |
1642 str = msn_get_currentmedia(cmd->payload, len)); | 1640 g_free(psm_str); |
1641 | |
1642 str = msn_get_currentmedia(cmd->payload, len); | |
1643 if (msn_parse_currentmedia(str, &media)) | |
1644 msn_user_set_currentmedia(user, &media); | |
1645 else | |
1646 msn_user_set_currentmedia(user, NULL); | |
1643 g_free(str); | 1647 g_free(str); |
1644 | 1648 |
1645 msn_user_set_statusline(user, psm_str); | |
1646 msn_user_set_currentmedia(user, currentmedia_str); | |
1647 msn_user_update(user); | 1649 msn_user_update(user); |
1648 | |
1649 g_free(psm_str); | |
1650 g_free(currentmedia_str); | |
1651 } | 1650 } |
1652 | 1651 |
1653 static void | 1652 static void |
1654 ubx_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | 1653 ubx_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
1655 { | 1654 { |