update to new toxcore master (very close to releasing 0.2.19 now)

This commit is contained in:
Green Sky 2024-03-08 10:50:03 +01:00
parent fa4298d790
commit 49ab40a1ba
No known key found for this signature in database
7 changed files with 37 additions and 16 deletions

View File

@ -511,15 +511,15 @@ Tox_Err_Group_Topic_Set ToxDefaultImpl::toxGroupSetTopic(uint32_t group_number,
std::optional<std::string> ToxDefaultImpl::toxGroupGetTopic(uint32_t group_number) { std::optional<std::string> ToxDefaultImpl::toxGroupGetTopic(uint32_t group_number) {
std::string topic; std::string topic;
Tox_Err_Group_State_Queries err = TOX_ERR_GROUP_STATE_QUERIES_OK; Tox_Err_Group_State_Query err = TOX_ERR_GROUP_STATE_QUERY_OK;
const auto size = tox_group_get_topic_size(_tox, group_number, &err); const auto size = tox_group_get_topic_size(_tox, group_number, &err);
if (err != TOX_ERR_GROUP_STATE_QUERIES_OK) { if (err != TOX_ERR_GROUP_STATE_QUERY_OK) {
return std::nullopt; return std::nullopt;
} }
topic.resize(size); topic.resize(size);
tox_group_get_topic(_tox, group_number, reinterpret_cast<uint8_t*>(topic.data()), &err); tox_group_get_topic(_tox, group_number, reinterpret_cast<uint8_t*>(topic.data()), &err);
if (err == TOX_ERR_GROUP_STATE_QUERIES_OK) { if (err == TOX_ERR_GROUP_STATE_QUERY_OK) {
return topic; return topic;
} else { } else {
return std::nullopt; return std::nullopt;
@ -529,16 +529,16 @@ std::optional<std::string> ToxDefaultImpl::toxGroupGetTopic(uint32_t group_numbe
std::optional<std::string> ToxDefaultImpl::toxGroupGetName(uint32_t group_number) { std::optional<std::string> ToxDefaultImpl::toxGroupGetName(uint32_t group_number) {
std::string name; std::string name;
Tox_Err_Group_State_Queries err = TOX_ERR_GROUP_STATE_QUERIES_OK; Tox_Err_Group_State_Query err = TOX_ERR_GROUP_STATE_QUERY_OK;
const auto size = tox_group_get_name_size(_tox, group_number, &err); const auto size = tox_group_get_name_size(_tox, group_number, &err);
if (err != TOX_ERR_GROUP_STATE_QUERIES_OK) { if (err != TOX_ERR_GROUP_STATE_QUERY_OK) {
return std::nullopt; return std::nullopt;
} }
name.resize(size); name.resize(size);
tox_group_get_name(_tox, group_number, reinterpret_cast<uint8_t*>(name.data()), &err); tox_group_get_name(_tox, group_number, reinterpret_cast<uint8_t*>(name.data()), &err);
if (err == TOX_ERR_GROUP_STATE_QUERIES_OK) { if (err == TOX_ERR_GROUP_STATE_QUERY_OK) {
return name; return name;
} else { } else {
return std::nullopt; return std::nullopt;
@ -549,9 +549,9 @@ std::optional<std::vector<uint8_t>> ToxDefaultImpl::toxGroupGetChatId(uint32_t g
std::vector<uint8_t> chat_id{}; std::vector<uint8_t> chat_id{};
chat_id.resize(TOX_GROUP_CHAT_ID_SIZE); chat_id.resize(TOX_GROUP_CHAT_ID_SIZE);
Tox_Err_Group_State_Queries err = TOX_ERR_GROUP_STATE_QUERIES_OK; Tox_Err_Group_State_Query err = TOX_ERR_GROUP_STATE_QUERY_OK;
tox_group_get_chat_id(_tox, group_number, chat_id.data(), &err); tox_group_get_chat_id(_tox, group_number, chat_id.data(), &err);
if (err == TOX_ERR_GROUP_STATE_QUERIES_OK) { if (err == TOX_ERR_GROUP_STATE_QUERY_OK) {
return chat_id; return chat_id;
} else { } else {
return std::nullopt; return std::nullopt;
@ -588,10 +588,14 @@ std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Message> ToxDefaultImpl::
} }
} }
Tox_Err_Group_Send_Private_Message ToxDefaultImpl::toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) { std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Private_Message> ToxDefaultImpl::toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) {
Tox_Err_Group_Send_Private_Message err = TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK; Tox_Err_Group_Send_Private_Message err = TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK;
tox_group_send_private_message(_tox, group_number, peer_id, type, reinterpret_cast<const uint8_t*>(message.data()), message.size(), &err); uint32_t message_id = tox_group_send_private_message(_tox, group_number, peer_id, type, reinterpret_cast<const uint8_t*>(message.data()), message.size(), &err);
return err; if (err == TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_OK) {
return {message_id, err};
} else {
return {std::nullopt, err};
}
} }
Tox_Err_Group_Send_Custom_Packet ToxDefaultImpl::toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) { Tox_Err_Group_Send_Custom_Packet ToxDefaultImpl::toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) {

View File

@ -113,7 +113,7 @@ struct ToxDefaultImpl : public ToxI {
//virtual std::string toxGroupGetPassword(uint32_t group_number, Tox_Err_Group_State_Queries *error) = 0; //virtual std::string toxGroupGetPassword(uint32_t group_number, Tox_Err_Group_State_Queries *error) = 0;
std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Message> toxGroupSendMessage(uint32_t group_number, Tox_Message_Type type, std::string_view message) override; std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Message> toxGroupSendMessage(uint32_t group_number, Tox_Message_Type type, std::string_view message) override;
Tox_Err_Group_Send_Private_Message toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) override; std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Private_Message> toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) override;
Tox_Err_Group_Send_Custom_Packet toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) override; Tox_Err_Group_Send_Custom_Packet toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) override;
Tox_Err_Group_Send_Custom_Private_Packet toxGroupSendCustomPrivatePacket(uint32_t group_number, uint32_t peer_id, bool lossless, const std::vector<uint8_t>& data) override; Tox_Err_Group_Send_Custom_Private_Packet toxGroupSendCustomPrivatePacket(uint32_t group_number, uint32_t peer_id, bool lossless, const std::vector<uint8_t>& data) override;

View File

@ -57,12 +57,14 @@ struct ToxEventI {
VIRT_EVENT(Tox_Event_Group_Join_Fail) VIRT_EVENT(Tox_Event_Group_Join_Fail)
VIRT_EVENT(Tox_Event_Group_Moderation) VIRT_EVENT(Tox_Event_Group_Moderation)
VIRT_EVENT(Tox_Event_Dht_Get_Nodes_Response);
#undef VIRT_EVENT #undef VIRT_EVENT
}; };
// defines the interface where to subscribe // defines the interface where to subscribe
struct ToxEventProviderI { struct ToxEventProviderI {
static constexpr const char* version {"1"}; static constexpr const char* version {"2"};
virtual ~ToxEventProviderI(void) {} virtual ~ToxEventProviderI(void) {}
// TODO: unsub // TODO: unsub

View File

@ -221,6 +221,15 @@ bool ToxEventLogger::onToxEvent(const Tox_Event_Group_Moderation* e) {
return false; return false;
} }
bool ToxEventLogger::onToxEvent(const Tox_Event_Dht_Get_Nodes_Response* e) {
_out << "TOX_EVENT: " << tox_event_to_string(TOX_EVENT_DHT_GET_NODES_RESPONSE)
//<< " pub:" << tox_event_dht_get_nodes_response_get_public_key(e)
//<< " ip:" << tox_event_dht_get_nodes_response_get_ip(e)
//<< " prt:" << tox_event_dht_get_nodes_response_get_port(e)
<< "\n";
return false;
}
void ToxEventLogger::subscribeAll(ToxEventProviderI& tep) { void ToxEventLogger::subscribeAll(ToxEventProviderI& tep) {
// TODO: loop + max event // TODO: loop + max event
tep.subscribe(this, TOX_EVENT_SELF_CONNECTION_STATUS); tep.subscribe(this, TOX_EVENT_SELF_CONNECTION_STATUS);
@ -272,5 +281,8 @@ void ToxEventLogger::subscribeAll(ToxEventProviderI& tep) {
tep.subscribe(this, TOX_EVENT_GROUP_SELF_JOIN); tep.subscribe(this, TOX_EVENT_GROUP_SELF_JOIN);
tep.subscribe(this, TOX_EVENT_GROUP_JOIN_FAIL); tep.subscribe(this, TOX_EVENT_GROUP_JOIN_FAIL);
tep.subscribe(this, TOX_EVENT_GROUP_MODERATION); tep.subscribe(this, TOX_EVENT_GROUP_MODERATION);
// too spammy
//tep.subscribe(this, TOX_EVENT_DHT_GET_NODES_RESPONSE);
} }

View File

@ -56,6 +56,8 @@ struct ToxEventLogger : public ToxEventI {
OVER_EVENT(Tox_Event_Group_Join_Fail) OVER_EVENT(Tox_Event_Group_Join_Fail)
OVER_EVENT(Tox_Event_Group_Moderation) OVER_EVENT(Tox_Event_Group_Moderation)
OVER_EVENT(Tox_Event_Dht_Get_Nodes_Response)
#undef OVER_EVENT #undef OVER_EVENT
void subscribeAll(ToxEventProviderI& tep); void subscribeAll(ToxEventProviderI& tep);

View File

@ -63,6 +63,7 @@ void ToxEventProviderBase::dispatchEvents(const Tox_Events* events) {
HANDLE_EVENT(GROUP_SELF_JOIN, group_self_join); HANDLE_EVENT(GROUP_SELF_JOIN, group_self_join);
HANDLE_EVENT(GROUP_JOIN_FAIL, group_join_fail); HANDLE_EVENT(GROUP_JOIN_FAIL, group_join_fail);
HANDLE_EVENT(GROUP_MODERATION, group_moderation); HANDLE_EVENT(GROUP_MODERATION, group_moderation);
HANDLE_EVENT(DHT_GET_NODES_RESPONSE, dht_get_nodes_response);
#undef HANDLE_EVENT #undef HANDLE_EVENT
default: default:

View File

@ -14,7 +14,7 @@
// defines the full interface for tox // defines the full interface for tox
// HACK: raw // HACK: raw
struct ToxI_raw { struct ToxI_raw {
static constexpr const char* version {"6"}; static constexpr const char* version {"7"};
virtual ~ToxI_raw(void) {} virtual ~ToxI_raw(void) {}
@ -159,7 +159,7 @@ struct ToxI_raw {
// returns message_id // returns message_id
virtual std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Message> toxGroupSendMessage(uint32_t group_number, Tox_Message_Type type, std::string_view message) = 0; virtual std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Message> toxGroupSendMessage(uint32_t group_number, Tox_Message_Type type, std::string_view message) = 0;
virtual Tox_Err_Group_Send_Private_Message toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) = 0; virtual std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Private_Message> toxGroupSendPrivateMessage(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, std::string_view message) = 0;
virtual Tox_Err_Group_Send_Custom_Packet toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) = 0; virtual Tox_Err_Group_Send_Custom_Packet toxGroupSendCustomPacket(uint32_t group_number, bool lossless, const std::vector<uint8_t>& data) = 0;
virtual Tox_Err_Group_Send_Custom_Private_Packet toxGroupSendCustomPrivatePacket(uint32_t group_number, uint32_t peer_id, bool lossless, const std::vector<uint8_t>& data) = 0; virtual Tox_Err_Group_Send_Custom_Private_Packet toxGroupSendCustomPrivatePacket(uint32_t group_number, uint32_t peer_id, bool lossless, const std::vector<uint8_t>& data) = 0;
@ -229,7 +229,7 @@ struct ToxI : public ToxI_raw {
return toxGroupSendMessage(group_number, type, message); return toxGroupSendMessage(group_number, type, message);
} }
Tox_Err_Group_Send_Private_Message toxGroupSendPrivateMessage_str(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, const std::string& message) { std::tuple<std::optional<uint32_t>, Tox_Err_Group_Send_Private_Message> toxGroupSendPrivateMessage_str(uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, const std::string& message) {
return toxGroupSendPrivateMessage(group_number, peer_id, type, message); return toxGroupSendPrivateMessage(group_number, peer_id, type, message);
} }