| 1659 msim_incoming_bm_record_cv(session, msg); |
1659 msim_incoming_bm_record_cv(session, msg); |
| 1660 |
1660 |
| 1661 switch (bm) { |
1661 switch (bm) { |
| 1662 case MSIM_BM_STATUS: |
1662 case MSIM_BM_STATUS: |
| 1663 return msim_incoming_status(session, msg); |
1663 return msim_incoming_status(session, msg); |
| 1664 case MSIM_BM_INSTANT_ACTION_OR_IM: |
1664 case MSIM_BM_ACTION_OR_IM_DELAYABLE: |
| 1665 case MSIM_BM_DELAYABLE_ACTION_OR_IM: |
1665 case MSIM_BM_ACTION_OR_IM_INSTANT: |
| 1666 return msim_incoming_action_or_im(session, msg); |
1666 return msim_incoming_action_or_im(session, msg); |
| 1667 case MSIM_BM_MEDIA: |
1667 case MSIM_BM_MEDIA: |
| 1668 return msim_incoming_media(session, msg); |
1668 return msim_incoming_media(session, msg); |
| 1669 case MSIM_BM_UNOFFICIAL_CLIENT: |
1669 case MSIM_BM_UNOFFICIAL_CLIENT: |
| 1670 return msim_incoming_unofficial_client(session, msg); |
1670 return msim_incoming_unofficial_client(session, msg); |
| 2285 |
2285 |
| 2286 g_return_val_if_fail(MSIM_SESSION_VALID(session), -1); |
2286 g_return_val_if_fail(MSIM_SESSION_VALID(session), -1); |
| 2287 |
2287 |
| 2288 message_msim = html_to_msim_markup(session, message); |
2288 message_msim = html_to_msim_markup(session, message); |
| 2289 |
2289 |
| 2290 if (msim_send_bm(session, who, message_msim, MSIM_BM_DELAYABLE_ACTION_OR_IM)) { |
2290 if (msim_send_bm(session, who, message_msim, MSIM_BM_ACTION_OR_IM_DELAYABLE)) { |
| 2291 /* Return 1 to have Purple show this IM as being sent, 0 to not. I always |
2291 /* Return 1 to have Purple show this IM as being sent, 0 to not. I always |
| 2292 * return 1 even if the message could not be sent, since I don't know if |
2292 * return 1 even if the message could not be sent, since I don't know if |
| 2293 * it has failed yet--because the IM is only sent after the userid is |
2293 * it has failed yet--because the IM is only sent after the userid is |
| 2294 * retrieved from the server (which happens after this function returns). |
2294 * retrieved from the server (which happens after this function returns). |
| 2295 * If an error does occur, it should be logged to the IM window. |
2295 * If an error does occur, it should be logged to the IM window. |
| 2338 typing_str = "%stoptyping%"; |
2338 typing_str = "%stoptyping%"; |
| 2339 break; |
2339 break; |
| 2340 } |
2340 } |
| 2341 |
2341 |
| 2342 purple_debug_info("msim", "msim_send_typing(%s): %d (%s)\n", name, state, typing_str); |
2342 purple_debug_info("msim", "msim_send_typing(%s): %d (%s)\n", name, state, typing_str); |
| 2343 msim_send_bm(session, name, typing_str, MSIM_BM_INSTANT_ACTION_OR_IM); |
2343 msim_send_bm(session, name, typing_str, MSIM_BM_ACTION_OR_IM_INSTANT); |
| 2344 return 0; |
2344 return 0; |
| 2345 } |
2345 } |
| 2346 |
2346 |
| 2347 /** |
2347 /** |
| 2348 * Callback for msim_get_info(), for when user info is received. |
2348 * Callback for msim_get_info(), for when user info is received. |