31 #include <toxext/toxext.h>
32 #include <tox_extension_messages.h>
36 auto toxExtPtr = toxext_init(core);
42 return std::unique_ptr<CoreExt>(
new CoreExt(std::move(
toxExt)));
46 : toxExt(std::move(toxExt_))
47 , toxExtMessages(nullptr, nullptr)
50 tox_extension_messages_register(
56 TOX_EXTENSION_MESSAGES_DEFAULT_MAX_RECEIVING_MESSAGE_SIZE),
57 tox_extension_messages_free);
63 toxext_iterate(
toxExt.get());
68 if (is_toxext_packet(data, length)) {
70 toxext_handle_lossless_custom_packet(
toxExt.get(), friendId, data, length);
75 ToxExtPacketList* packetList,
76 ToxExtensionMessages* toxExtMessages,
78 std::mutex* toxext_mutex,
80 : toxext_mutex(toxext_mutex)
81 , toxExtMessages(toxExtMessages)
82 , packetList(packetList)
90 return std::unique_ptr<Packet>(
new Packet(
91 toxext_packet_list_create(
toxExt.get(), friendId),
102 qWarning() <<
"Invalid use of CoreExt::Packet";
108 int size =
message.toUtf8().size();
109 enum Tox_Extension_Messages_Error err;
110 auto maxSize =
static_cast<int>(tox_extension_messages_get_max_sending_size(
115 if (size > maxSize) {
117 qCritical() <<
"addExtendedMessage called with message of size:" << size
118 <<
"when max is:" << maxSize <<
". Ignoring.";
123 const auto receipt = tox_extension_messages_append(
131 if (err != TOX_EXTENSION_MESSAGES_SUCCESS) {
132 qWarning() <<
"Error sending extension message";
142 auto ret = toxext_send(packetList);
143 if (ret != TOXEXT_SUCCESS) {
144 qWarning() <<
"Failed to send packet";
149 return ret == TOXEXT_SUCCESS;
154 return TOX_EXTENSION_MESSAGES_DEFAULT_MAX_RECEIVING_MESSAGE_SIZE;
188 auto coreExt =
static_cast<CoreExt*
>(userData);