void pn_update_status (MsnSession *session) { MsnCmdProc *cmdproc; struct pn_contact *user; const gchar *state_text; int client_id; int caps; g_return_if_fail (session); if (!session->logged_in) return; user = msn_session_get_contact (session); cmdproc = session->notification->cmdproc; state_text = util_type_to_str (util_status_from_session (session)); caps = PN_CLIENT_CAP_BASE; #if defined(PECAN_CVR) caps |= PN_CLIENT_CAP_INK_GIF; #if defined(PECAN_LIBSIREN) caps |= PN_CLIENT_CAP_VOICE_CLIP; #endif #if defined(PECAN_LIBMSPACK) caps |= PN_CLIENT_CAP_WINKS; #endif #endif client_id = caps | (PN_CLIENT_VER_7_5 << 24); #if defined(PECAN_CVR) { struct pn_msnobj *obj; obj = pn_contact_get_object (user); if (obj) { gchar *msnobj_str; msnobj_str = pn_msnobj_to_string (obj); msn_cmdproc_send (cmdproc, "CHG", "%s %d %s", state_text, client_id, purple_url_encode (msnobj_str)); g_free (msnobj_str); } else { msn_cmdproc_send (cmdproc, "CHG", "%s %d", state_text, client_id); } } #else msn_cmdproc_send (cmdproc, "CHG", "%s %d", state_text, client_id); #endif /* defined(PECAN_CVR) */ }
void pn_update_status (MsnSession *session) { MsnCmdProc *cmdproc; struct pn_contact *user; const gchar *state_text; g_return_if_fail (session); if (!session->logged_in) return; user = msn_session_get_contact (session); cmdproc = session->notification->cmdproc; state_text = util_type_to_str (util_status_from_session (session)); #if defined(PECAN_CVR) { struct pn_msnobj *obj; obj = pn_contact_get_object (user); if (obj) { gchar *msnobj_str; msnobj_str = pn_msnobj_to_string (obj); msn_cmdproc_send (cmdproc, "CHG", "%s %ld %s", state_text, session->client_id, purple_url_encode (msnobj_str)); g_free (msnobj_str); } else { msn_cmdproc_send (cmdproc, "CHG", "%s %ld", state_text, session->client_id); } } #else msn_cmdproc_send (cmdproc, "CHG", "%s %ld", state_text, session->client_id); #endif /* defined(PECAN_CVR) */ pn_send_login_uux (session); }