static void handle_friend_message( Tox *tox, uint32_t friend_number, TOX_MESSAGE_TYPE type, const uint8_t *message, size_t length, void *user_data) { TOX_ERR_FRIEND_SEND_MESSAGE err_send; eprintf ("<%d> %s\n", friend_number, message); if (*message != ':') { return; } tox_self_set_typing(tox, friend_number, true, NULL); char *cmd = r_str_ndup (message, length); char *res = r_core_cmd_str (core, cmd + 1); if (res && *res) { const int MAXK = 1280; int bak = 0; int k = 0; char *r = res; while (1) { if (strlen (r) > MAXK) { k = MAXK; bak = r[k]; r[k] = 0; char *nl = r_str_rchr (r, NULL, '\n'); if (nl) { r[k] = bak; bak = *nl; *nl = 0; k = nl - r; } } else { bak = 0; } tox_friend_send_message (tox, friend_number, type, r, strlen (r), &err_send); // tox_friend_send_message (tox, friend_number, type, message, length, &err_send); if (err_send != TOX_ERR_FRIEND_SEND_MESSAGE_OK) { fprintf(stderr, "unable to send message back to friend %d: %d\n", friend_number, err_send); } if (bak) { r[k] = bak; r += k; } else { break; } } } else { eprintf ("Invalid command?\n"); } free (res); free (cmd); tox_self_set_typing(tox, friend_number, false, NULL); }
void Core::sendTyping(uint32_t friendId, bool typing) { bool ret = tox_self_set_typing(tox, friendId, typing, nullptr); if (!ret) emit failedToSetTyping(typing); }
void Core::sendTyping(uint32_t friendId, bool typing) { if (!tox_self_set_typing(tox, friendId, typing, nullptr)) { emit failedToSetTyping(typing); } }