Compare commits
	
		
			9 Commits
		
	
	
		
			a3d1935
			...
			719400068a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 719400068a | |||
| aaf8c6adc1 | |||
| dc081ae2aa | |||
| 3cf3097094 | |||
| e801626232 | |||
| a5093c4aa3 | |||
| c311bb5c95 | |||
| 887705969f | |||
| 316871523d | 
							
								
								
									
										2
									
								
								external/solanaceae_tox
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								external/solanaceae_tox
									
									
									
									
										vendored
									
									
								
							 Submodule external/solanaceae_tox updated: 4bd7235a73...ce81ef7cf7
									
								
							
							
								
								
									
										2
									
								
								external/solanaceae_toxcore
									
									
									
									
										vendored
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								external/solanaceae_toxcore
									
									
									
									
										vendored
									
									
								
							 Submodule external/solanaceae_toxcore updated: 49ab40a1ba...cf3679018b
									
								
							| @@ -284,7 +284,7 @@ static void group_private_message_handler(const Tox_Event_Group_Private_Message | ||||
|  | ||||
|     const uint32_t groupnumber = tox_event_group_private_message_get_group_number(event); | ||||
|     const uint32_t peer_id = tox_event_group_private_message_get_peer_id(event); | ||||
|     const Tox_Message_Type type = tox_event_group_private_message_get_type(event); | ||||
|     const Tox_Message_Type type = tox_event_group_private_message_get_message_type(event); | ||||
|     const uint8_t *message = tox_event_group_private_message_get_message(event); | ||||
|     const size_t length = tox_event_group_private_message_get_message_length(event); | ||||
|     const Tox_Group_Message_Id pseudo_msg_id = tox_event_group_private_message_get_message_id(event); | ||||
|   | ||||
| @@ -686,7 +686,7 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeByteRange{"name", "name_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"name", "name_length", "name_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
| @@ -702,7 +702,7 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeByteRange{"topic", "topic_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"topic", "topic_length", "topic_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
| @@ -737,7 +737,7 @@ int main(int argc, char** argv) { | ||||
|             "Group_Password", | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeByteRange{"password", "password_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"password", "password_length", "password_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
| @@ -745,8 +745,8 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeTrivial{"Tox_Message_Type", "type"}, | ||||
|                 EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeTrivial{"Tox_Message_Type", "message_type"}, | ||||
|                 EventTypeByteRange{"message", "message_length", "message_length"}, | ||||
|                 EventTypeTrivial{"uint32_t", "message_id"}, | ||||
|             } | ||||
|         }, | ||||
| @@ -755,8 +755,8 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeTrivial{"Tox_Message_Type", "type"}, | ||||
|                 EventTypeByteRange{"message", "message_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeTrivial{"Tox_Message_Type", "message_type"}, | ||||
|                 EventTypeByteRange{"message", "message_length", "message_length"}, | ||||
|                 EventTypeTrivial{"uint32_t", "message_id"}, | ||||
|             } | ||||
|         }, | ||||
| @@ -765,7 +765,7 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"data", "data_length", "data_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
| @@ -773,15 +773,15 @@ int main(int argc, char** argv) { | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeByteRange{"data", "data_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"data", "data_length", "data_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             "Group_Invite", | ||||
|             { | ||||
|                 EventTypeTrivial{"uint32_t", "friend_number"}, | ||||
|                 EventTypeByteRange{"invite_data", "invite_data_length", "length"}, // the latter two are ideally the same | ||||
|                 EventTypeByteRange{"group_name", "group_name_length", "group_name_length"}, // they are :) | ||||
|                 EventTypeByteRange{"invite_data", "invite_data_length", "invite_data_length"}, | ||||
|                 EventTypeByteRange{"group_name", "group_name_length", "group_name_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
| @@ -797,8 +797,8 @@ int main(int argc, char** argv) { | ||||
|                 EventTypeTrivial{"uint32_t", "group_number"}, | ||||
|                 EventTypeTrivial{"uint32_t", "peer_id"}, | ||||
|                 EventTypeTrivial{"Tox_Group_Exit_Type", "exit_type"}, | ||||
|                 EventTypeByteRange{"name", "name_length", "name_length"}, // they are :) | ||||
|                 EventTypeByteRange{"part_message", "part_message_length", "part_message_length"}, // they are :) | ||||
|                 EventTypeByteRange{"name", "name_length", "name_length"}, | ||||
|                 EventTypeByteRange{"part_message", "part_message_length", "part_message_length"}, | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|   | ||||
| @@ -14,6 +14,7 @@ sh_test( | ||||
|     args = ["$(locations %s)" % f for f in CIMPLE_FILES] + [ | ||||
|         "-Wno-boolean-return", | ||||
|         "-Wno-callback-names", | ||||
|         "-Wno-enum-from-int", | ||||
|         "+RTS", | ||||
|         "-N4", | ||||
|         "-RTS", | ||||
|   | ||||
							
								
								
									
										12
									
								
								external/toxcore/c-toxcore/toxcore/Messenger.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								external/toxcore/c-toxcore/toxcore/Messenger.c
									
									
									
									
										vendored
									
									
								
							| @@ -775,31 +775,31 @@ int m_set_statusmessage(Messenger *m, const uint8_t *status, uint16_t length) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool userstatus_from_int(uint8_t status, Userstatus *out) | ||||
| static bool userstatus_from_int(uint8_t status, Userstatus *out_enum) | ||||
| { | ||||
|     switch (status) { | ||||
|         case USERSTATUS_NONE: { | ||||
|             *out = USERSTATUS_NONE; | ||||
|             *out_enum = USERSTATUS_NONE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case USERSTATUS_AWAY: { | ||||
|             *out = USERSTATUS_AWAY; | ||||
|             *out_enum = USERSTATUS_AWAY; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case USERSTATUS_BUSY: { | ||||
|             *out = USERSTATUS_BUSY; | ||||
|             *out_enum = USERSTATUS_BUSY; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case USERSTATUS_INVALID: { | ||||
|             *out = USERSTATUS_INVALID; | ||||
|             *out_enum = USERSTATUS_INVALID; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = USERSTATUS_INVALID; | ||||
|             *out_enum = USERSTATUS_INVALID; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -220,7 +220,7 @@ static Tox_Event_Group_Custom_Packet *tox_event_group_custom_packet_alloc(void * | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_custom_packet( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data, size_t length, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data, size_t data_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Custom_Packet *group_custom_packet = tox_event_group_custom_packet_alloc(user_data); | ||||
| @@ -231,5 +231,5 @@ void tox_events_handle_group_custom_packet( | ||||
|  | ||||
|     tox_event_group_custom_packet_set_group_number(group_custom_packet, group_number); | ||||
|     tox_event_group_custom_packet_set_peer_id(group_custom_packet, peer_id); | ||||
|     tox_event_group_custom_packet_set_data(group_custom_packet, data, length); | ||||
|     tox_event_group_custom_packet_set_data(group_custom_packet, data, data_length); | ||||
| } | ||||
|   | ||||
| @@ -220,7 +220,7 @@ static Tox_Event_Group_Custom_Private_Packet *tox_event_group_custom_private_pac | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_custom_private_packet( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data, size_t length, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *data, size_t data_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Custom_Private_Packet *group_custom_private_packet = tox_event_group_custom_private_packet_alloc(user_data); | ||||
| @@ -231,5 +231,5 @@ void tox_events_handle_group_custom_private_packet( | ||||
|  | ||||
|     tox_event_group_custom_private_packet_set_group_number(group_custom_private_packet, group_number); | ||||
|     tox_event_group_custom_private_packet_set_peer_id(group_custom_private_packet, peer_id); | ||||
|     tox_event_group_custom_private_packet_set_data(group_custom_private_packet, data, length); | ||||
|     tox_event_group_custom_private_packet_set_data(group_custom_private_packet, data, data_length); | ||||
| } | ||||
|   | ||||
| @@ -248,7 +248,7 @@ static Tox_Event_Group_Invite *tox_event_group_invite_alloc(void *user_data) | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_invite( | ||||
|     Tox *tox, uint32_t friend_number, const uint8_t *invite_data, size_t length, const uint8_t *group_name, size_t group_name_length, | ||||
|     Tox *tox, uint32_t friend_number, const uint8_t *invite_data, size_t invite_data_length, const uint8_t *group_name, size_t group_name_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Invite *group_invite = tox_event_group_invite_alloc(user_data); | ||||
| @@ -258,6 +258,6 @@ void tox_events_handle_group_invite( | ||||
|     } | ||||
|  | ||||
|     tox_event_group_invite_set_friend_number(group_invite, friend_number); | ||||
|     tox_event_group_invite_set_invite_data(group_invite, invite_data, length); | ||||
|     tox_event_group_invite_set_invite_data(group_invite, invite_data, invite_data_length); | ||||
|     tox_event_group_invite_set_group_name(group_invite, group_name, group_name_length); | ||||
| } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| struct Tox_Event_Group_Message { | ||||
|     uint32_t group_number; | ||||
|     uint32_t peer_id; | ||||
|     Tox_Message_Type type; | ||||
|     Tox_Message_Type message_type; | ||||
|     uint8_t *message; | ||||
|     uint32_t message_length; | ||||
|     uint32_t message_id; | ||||
| @@ -60,16 +60,16 @@ uint32_t tox_event_group_message_get_peer_id(const Tox_Event_Group_Message *grou | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static void tox_event_group_message_set_type(Tox_Event_Group_Message *group_message, | ||||
|         Tox_Message_Type type) | ||||
| static void tox_event_group_message_set_message_type(Tox_Event_Group_Message *group_message, | ||||
|         Tox_Message_Type message_type) | ||||
| { | ||||
|     assert(group_message != nullptr); | ||||
|     group_message->type = type; | ||||
|     group_message->message_type = message_type; | ||||
| } | ||||
| Tox_Message_Type tox_event_group_message_get_type(const Tox_Event_Group_Message *group_message) | ||||
| Tox_Message_Type tox_event_group_message_get_message_type(const Tox_Event_Group_Message *group_message) | ||||
| { | ||||
|     assert(group_message != nullptr); | ||||
|     return group_message->type; | ||||
|     return group_message->message_type; | ||||
| } | ||||
|  | ||||
| non_null(1) nullable(2) | ||||
| @@ -143,7 +143,7 @@ bool tox_event_group_message_pack( | ||||
|     return bin_pack_array(bp, 5) | ||||
|            && bin_pack_u32(bp, event->group_number) | ||||
|            && bin_pack_u32(bp, event->peer_id) | ||||
|            && tox_message_type_pack(event->type, bp) | ||||
|            && tox_message_type_pack(event->message_type, bp) | ||||
|            && bin_pack_bin(bp, event->message, event->message_length) | ||||
|            && bin_pack_u32(bp, event->message_id); | ||||
| } | ||||
| @@ -159,7 +159,7 @@ static bool tox_event_group_message_unpack_into( | ||||
|  | ||||
|     return bin_unpack_u32(bu, &event->group_number) | ||||
|            && bin_unpack_u32(bu, &event->peer_id) | ||||
|            && tox_message_type_unpack(&event->type, bu) | ||||
|            && tox_message_type_unpack(&event->message_type, bu) | ||||
|            && bin_unpack_bin(bu, &event->message, &event->message_length) | ||||
|            && bin_unpack_u32(bu, &event->message_id); | ||||
| } | ||||
| @@ -254,7 +254,7 @@ static Tox_Event_Group_Message *tox_event_group_message_alloc(void *user_data) | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_message( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, const uint8_t *message, size_t length, uint32_t message_id, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type message_type, const uint8_t *message, size_t message_length, uint32_t message_id, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Message *group_message = tox_event_group_message_alloc(user_data); | ||||
| @@ -265,7 +265,7 @@ void tox_events_handle_group_message( | ||||
|  | ||||
|     tox_event_group_message_set_group_number(group_message, group_number); | ||||
|     tox_event_group_message_set_peer_id(group_message, peer_id); | ||||
|     tox_event_group_message_set_type(group_message, type); | ||||
|     tox_event_group_message_set_message(group_message, message, length); | ||||
|     tox_event_group_message_set_message_type(group_message, message_type); | ||||
|     tox_event_group_message_set_message(group_message, message, message_length); | ||||
|     tox_event_group_message_set_message_id(group_message, message_id); | ||||
| } | ||||
|   | ||||
| @@ -204,7 +204,7 @@ static Tox_Event_Group_Password *tox_event_group_password_alloc(void *user_data) | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_password( | ||||
|     Tox *tox, uint32_t group_number, const uint8_t *password, size_t length, | ||||
|     Tox *tox, uint32_t group_number, const uint8_t *password, size_t password_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Password *group_password = tox_event_group_password_alloc(user_data); | ||||
| @@ -214,5 +214,5 @@ void tox_events_handle_group_password( | ||||
|     } | ||||
|  | ||||
|     tox_event_group_password_set_group_number(group_password, group_number); | ||||
|     tox_event_group_password_set_password(group_password, password, length); | ||||
|     tox_event_group_password_set_password(group_password, password, password_length); | ||||
| } | ||||
|   | ||||
| @@ -220,7 +220,7 @@ static Tox_Event_Group_Peer_Name *tox_event_group_peer_name_alloc(void *user_dat | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_peer_name( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *name, size_t length, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *name, size_t name_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Peer_Name *group_peer_name = tox_event_group_peer_name_alloc(user_data); | ||||
| @@ -231,5 +231,5 @@ void tox_events_handle_group_peer_name( | ||||
|  | ||||
|     tox_event_group_peer_name_set_group_number(group_peer_name, group_number); | ||||
|     tox_event_group_peer_name_set_peer_id(group_peer_name, peer_id); | ||||
|     tox_event_group_peer_name_set_name(group_peer_name, name, length); | ||||
|     tox_event_group_peer_name_set_name(group_peer_name, name, name_length); | ||||
| } | ||||
|   | ||||
| @@ -27,7 +27,7 @@ | ||||
| struct Tox_Event_Group_Private_Message { | ||||
|     uint32_t group_number; | ||||
|     uint32_t peer_id; | ||||
|     Tox_Message_Type type; | ||||
|     Tox_Message_Type message_type; | ||||
|     uint8_t *message; | ||||
|     uint32_t message_length; | ||||
|     uint32_t message_id; | ||||
| @@ -60,16 +60,16 @@ uint32_t tox_event_group_private_message_get_peer_id(const Tox_Event_Group_Priva | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static void tox_event_group_private_message_set_type(Tox_Event_Group_Private_Message *group_private_message, | ||||
|         Tox_Message_Type type) | ||||
| static void tox_event_group_private_message_set_message_type(Tox_Event_Group_Private_Message *group_private_message, | ||||
|         Tox_Message_Type message_type) | ||||
| { | ||||
|     assert(group_private_message != nullptr); | ||||
|     group_private_message->type = type; | ||||
|     group_private_message->message_type = message_type; | ||||
| } | ||||
| Tox_Message_Type tox_event_group_private_message_get_type(const Tox_Event_Group_Private_Message *group_private_message) | ||||
| Tox_Message_Type tox_event_group_private_message_get_message_type(const Tox_Event_Group_Private_Message *group_private_message) | ||||
| { | ||||
|     assert(group_private_message != nullptr); | ||||
|     return group_private_message->type; | ||||
|     return group_private_message->message_type; | ||||
| } | ||||
|  | ||||
| non_null(1) nullable(2) | ||||
| @@ -143,7 +143,7 @@ bool tox_event_group_private_message_pack( | ||||
|     return bin_pack_array(bp, 5) | ||||
|            && bin_pack_u32(bp, event->group_number) | ||||
|            && bin_pack_u32(bp, event->peer_id) | ||||
|            && tox_message_type_pack(event->type, bp) | ||||
|            && tox_message_type_pack(event->message_type, bp) | ||||
|            && bin_pack_bin(bp, event->message, event->message_length) | ||||
|            && bin_pack_u32(bp, event->message_id); | ||||
| } | ||||
| @@ -159,7 +159,7 @@ static bool tox_event_group_private_message_unpack_into( | ||||
|  | ||||
|     return bin_unpack_u32(bu, &event->group_number) | ||||
|            && bin_unpack_u32(bu, &event->peer_id) | ||||
|            && tox_message_type_unpack(&event->type, bu) | ||||
|            && tox_message_type_unpack(&event->message_type, bu) | ||||
|            && bin_unpack_bin(bu, &event->message, &event->message_length) | ||||
|            && bin_unpack_u32(bu, &event->message_id); | ||||
| } | ||||
| @@ -254,7 +254,7 @@ static Tox_Event_Group_Private_Message *tox_event_group_private_message_alloc(vo | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_private_message( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type type, const uint8_t *message, size_t length, uint32_t message_id, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, Tox_Message_Type message_type, const uint8_t *message, size_t message_length, uint32_t message_id, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Private_Message *group_private_message = tox_event_group_private_message_alloc(user_data); | ||||
| @@ -265,7 +265,7 @@ void tox_events_handle_group_private_message( | ||||
|  | ||||
|     tox_event_group_private_message_set_group_number(group_private_message, group_number); | ||||
|     tox_event_group_private_message_set_peer_id(group_private_message, peer_id); | ||||
|     tox_event_group_private_message_set_type(group_private_message, type); | ||||
|     tox_event_group_private_message_set_message(group_private_message, message, length); | ||||
|     tox_event_group_private_message_set_message_type(group_private_message, message_type); | ||||
|     tox_event_group_private_message_set_message(group_private_message, message, message_length); | ||||
|     tox_event_group_private_message_set_message_id(group_private_message, message_id); | ||||
| } | ||||
|   | ||||
| @@ -220,7 +220,7 @@ static Tox_Event_Group_Topic *tox_event_group_topic_alloc(void *user_data) | ||||
|  *****************************************************/ | ||||
|  | ||||
| void tox_events_handle_group_topic( | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *topic, size_t length, | ||||
|     Tox *tox, uint32_t group_number, uint32_t peer_id, const uint8_t *topic, size_t topic_length, | ||||
|     void *user_data) | ||||
| { | ||||
|     Tox_Event_Group_Topic *group_topic = tox_event_group_topic_alloc(user_data); | ||||
| @@ -231,5 +231,5 @@ void tox_events_handle_group_topic( | ||||
|  | ||||
|     tox_event_group_topic_set_group_number(group_topic, group_number); | ||||
|     tox_event_group_topic_set_peer_id(group_topic, peer_id); | ||||
|     tox_event_group_topic_set_topic(group_topic, topic, length); | ||||
|     tox_event_group_topic_set_topic(group_topic, topic, topic_length); | ||||
| } | ||||
|   | ||||
							
								
								
									
										18
									
								
								external/toxcore/c-toxcore/toxcore/group_pack.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								external/toxcore/c-toxcore/toxcore/group_pack.c
									
									
									
									
										vendored
									
									
								
							| @@ -26,46 +26,46 @@ | ||||
| #include "network.h" | ||||
| #include "util.h" | ||||
|  | ||||
| bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *out) | ||||
| bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case GI_PUBLIC: { | ||||
|             *out = GI_PUBLIC; | ||||
|             *out_enum = GI_PUBLIC; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case GI_PRIVATE: { | ||||
|             *out = GI_PRIVATE; | ||||
|             *out_enum = GI_PRIVATE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = GI_PUBLIC; | ||||
|             *out_enum = GI_PUBLIC; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out) | ||||
| bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case GV_ALL: { | ||||
|             *out = GV_ALL; | ||||
|             *out_enum = GV_ALL; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case GV_MODS: { | ||||
|             *out = GV_MODS; | ||||
|             *out_enum = GV_MODS; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case GV_FOUNDER: { | ||||
|             *out = GV_FOUNDER; | ||||
|             *out_enum = GV_FOUNDER; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = GV_ALL; | ||||
|             *out_enum = GV_ALL; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -34,8 +34,8 @@ non_null() | ||||
| bool gc_load_unpack_group(GC_Chat *chat, Bin_Unpack *bu); | ||||
|  | ||||
| non_null() | ||||
| bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *out); | ||||
| bool group_privacy_state_from_int(uint8_t value, Group_Privacy_State *out_enum); | ||||
| non_null() | ||||
| bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out); | ||||
| bool group_voice_state_from_int(uint8_t value, Group_Voice_State *out_enum); | ||||
|  | ||||
| #endif /* C_TOXCORE_TOXCORE_GROUP_PACK_H */ | ||||
|   | ||||
							
								
								
									
										8
									
								
								external/toxcore/c-toxcore/toxcore/tox.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								external/toxcore/c-toxcore/toxcore/tox.c
									
									
									
									
										vendored
									
									
								
							| @@ -3932,7 +3932,7 @@ bool tox_group_get_password(const Tox *tox, uint32_t group_number, uint8_t *pass | ||||
| } | ||||
|  | ||||
| Tox_Group_Message_Id tox_group_send_message( | ||||
|     const Tox *tox, uint32_t group_number, Tox_Message_Type type, const uint8_t *message, | ||||
|     const Tox *tox, uint32_t group_number, Tox_Message_Type message_type, const uint8_t *message, | ||||
|     size_t length, Tox_Err_Group_Send_Message *error) | ||||
| { | ||||
|     assert(tox != nullptr); | ||||
| @@ -3953,7 +3953,7 @@ Tox_Group_Message_Id tox_group_send_message( | ||||
|     } | ||||
|  | ||||
|     uint32_t message_id = 0; | ||||
|     const int ret = gc_send_message(chat, message, length, type, &message_id); | ||||
|     const int ret = gc_send_message(chat, message, length, message_type, &message_id); | ||||
|     tox_unlock(tox); | ||||
|  | ||||
|     switch (ret) { | ||||
| @@ -3995,7 +3995,7 @@ Tox_Group_Message_Id tox_group_send_message( | ||||
| } | ||||
|  | ||||
| Tox_Group_Message_Id tox_group_send_private_message(const Tox *tox, uint32_t group_number, uint32_t peer_id, | ||||
|         Tox_Message_Type type, const uint8_t *message, size_t length, Tox_Err_Group_Send_Private_Message *error) | ||||
|         Tox_Message_Type message_type, const uint8_t *message, size_t length, Tox_Err_Group_Send_Private_Message *error) | ||||
| { | ||||
|     assert(tox != nullptr); | ||||
|  | ||||
| @@ -4015,7 +4015,7 @@ Tox_Group_Message_Id tox_group_send_private_message(const Tox *tox, uint32_t gro | ||||
|     } | ||||
|  | ||||
|     uint32_t message_id = 0; | ||||
|     const int ret = gc_send_private_message(chat, gc_peer_id_from_int(peer_id), type, message, length, &message_id); | ||||
|     const int ret = gc_send_private_message(chat, gc_peer_id_from_int(peer_id), message_type, message, length, &message_id); | ||||
|     tox_unlock(tox); | ||||
|  | ||||
|     switch (ret) { | ||||
|   | ||||
							
								
								
									
										57
									
								
								external/toxcore/c-toxcore/toxcore/tox.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										57
									
								
								external/toxcore/c-toxcore/toxcore/tox.h
									
									
									
									
										vendored
									
									
								
							| @@ -4094,11 +4094,11 @@ bool tox_group_peer_get_public_key( | ||||
|  * @param group_number The group number of the group the name change is intended for. | ||||
|  * @param peer_id The ID of the peer who has changed their name. | ||||
|  * @param name The name data. | ||||
|  * @param length The length of the name. | ||||
|  * @param name_length The length of the name. | ||||
|  */ | ||||
| typedef void tox_group_peer_name_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, | ||||
|     const uint8_t name[], size_t length, void *user_data); | ||||
|     const uint8_t name[], size_t name_length, void *user_data); | ||||
|  | ||||
| /** | ||||
|  * Set the callback for the `group_peer_name` event. Pass NULL to unset. | ||||
| @@ -4235,11 +4235,11 @@ bool tox_group_get_topic( | ||||
|  * @param peer_id The ID of the peer who changed the topic. If the peer who set the topic | ||||
|  *   is not present in our peer list this value will be set to 0. | ||||
|  * @param topic The topic data. | ||||
|  * @param length The topic length. | ||||
|  * @param topic_length The topic length. | ||||
|  */ | ||||
| typedef void tox_group_topic_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, | ||||
|     const uint8_t topic[], size_t length, | ||||
|     const uint8_t topic[], size_t topic_length, | ||||
|     void *user_data); | ||||
|  | ||||
| /** | ||||
| @@ -4416,11 +4416,11 @@ bool tox_group_get_password( | ||||
| /** | ||||
|  * @param group_number The group number of the group for which the password has changed. | ||||
|  * @param password The new group password. | ||||
|  * @param length The length of the password. | ||||
|  * @param password_length The length of the password. | ||||
|  */ | ||||
| typedef void tox_group_password_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, | ||||
|     const uint8_t password[], size_t length, | ||||
|     const uint8_t password[], size_t password_length, | ||||
|     void *user_data); | ||||
|  | ||||
| /** | ||||
| @@ -4493,7 +4493,7 @@ const char *tox_err_group_send_message_to_string(Tox_Err_Group_Send_Message valu | ||||
|  * then reassemble the fragments. Messages may not be empty. | ||||
|  * | ||||
|  * @param group_number The group number of the group the message is intended for. | ||||
|  * @param type Message type (normal, action, ...). | ||||
|  * @param message_type Message type (normal, action, ...). | ||||
|  * @param message A non-NULL pointer to the first element of a byte array | ||||
|  *   containing the message text. | ||||
|  * @param length Length of the message to be sent. | ||||
| @@ -4502,7 +4502,7 @@ const char *tox_err_group_send_message_to_string(Tox_Err_Group_Send_Message valu | ||||
|  *   returned message ID value will be undefined. | ||||
|  */ | ||||
| Tox_Group_Message_Id tox_group_send_message( | ||||
|     const Tox *tox, Tox_Group_Number group_number, Tox_Message_Type type, | ||||
|     const Tox *tox, Tox_Group_Number group_number, Tox_Message_Type message_type, | ||||
|     const uint8_t message[], size_t length, | ||||
|     Tox_Err_Group_Send_Message *error); | ||||
|  | ||||
| @@ -4533,6 +4533,11 @@ typedef enum Tox_Err_Group_Send_Private_Message { | ||||
|      */ | ||||
|     TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_EMPTY, | ||||
|  | ||||
|     /** | ||||
|      * The message type is invalid. | ||||
|      */ | ||||
|     TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE, | ||||
|  | ||||
|     /** | ||||
|      * The caller does not have the required permissions to send group messages. | ||||
|      */ | ||||
| @@ -4548,11 +4553,6 @@ typedef enum Tox_Err_Group_Send_Private_Message { | ||||
|      */ | ||||
|     TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_DISCONNECTED, | ||||
|  | ||||
|     /** | ||||
|      * The message type is invalid. | ||||
|      */ | ||||
|     TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE, | ||||
|  | ||||
| } Tox_Err_Group_Send_Private_Message; | ||||
|  | ||||
| const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Private_Message value); | ||||
| @@ -4569,6 +4569,7 @@ const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Priv | ||||
|  * | ||||
|  * @param group_number The group number of the group the message is intended for. | ||||
|  * @param peer_id The ID of the peer the message is intended for. | ||||
|  * @param message_type The type of message (normal, action, ...). | ||||
|  * @param message A non-NULL pointer to the first element of a byte array | ||||
|  *   containing the message text. | ||||
|  * @param length Length of the message to be sent. | ||||
| @@ -4576,7 +4577,7 @@ const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Priv | ||||
|  * @return true on success. | ||||
|  */ | ||||
| Tox_Group_Message_Id tox_group_send_private_message( | ||||
|     const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type, | ||||
|     const Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type message_type, | ||||
|     const uint8_t message[], size_t length, | ||||
|     Tox_Err_Group_Send_Private_Message *error); | ||||
|  | ||||
| @@ -4729,14 +4730,14 @@ bool tox_group_send_custom_private_packet(const Tox *tox, Tox_Group_Number group | ||||
| /** | ||||
|  * @param group_number The group number of the group the message is intended for. | ||||
|  * @param peer_id The ID of the peer who sent the message. | ||||
|  * @param type The type of message (normal, action, ...). | ||||
|  * @param message_type The type of message (normal, action, ...). | ||||
|  * @param message The message data. | ||||
|  * @param message_length The length of the message. | ||||
|  * @param message_id A pseudo message id that clients can use to uniquely identify this group message. | ||||
|  * @param length The length of the message. | ||||
|  */ | ||||
| typedef void tox_group_message_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type, | ||||
|     const uint8_t message[], size_t length, Tox_Group_Message_Id message_id, void *user_data); | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type message_type, | ||||
|     const uint8_t message[], size_t message_length, Tox_Group_Message_Id message_id, void *user_data); | ||||
|  | ||||
| /** | ||||
|  * Set the callback for the `group_message` event. Pass NULL to unset. | ||||
| @@ -4748,12 +4749,14 @@ void tox_callback_group_message(Tox *tox, tox_group_message_cb *callback); | ||||
| /** | ||||
|  * @param group_number The group number of the group the private message is intended for. | ||||
|  * @param peer_id The ID of the peer who sent the private message. | ||||
|  * @param message_type The type of message (normal, action, ...). | ||||
|  * @param message The message data. | ||||
|  * @param length The length of the message. | ||||
|  * @param message_length The length of the message. | ||||
|  * @param message_id A pseudo message id that clients can use to uniquely identify this group message. | ||||
|  */ | ||||
| typedef void tox_group_private_message_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type type, | ||||
|     const uint8_t message[], size_t length, Tox_Group_Message_Id message_id, void *user_data); | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, Tox_Message_Type message_type, | ||||
|     const uint8_t message[], size_t message_length, Tox_Group_Message_Id message_id, void *user_data); | ||||
|  | ||||
| /** | ||||
|  * Set the callback for the `group_private_message` event. Pass NULL to unset. | ||||
| @@ -4766,11 +4769,11 @@ void tox_callback_group_private_message(Tox *tox, tox_group_private_message_cb * | ||||
|  * @param group_number The group number of the group the packet is intended for. | ||||
|  * @param peer_id The ID of the peer who sent the packet. | ||||
|  * @param data The packet data. | ||||
|  * @param length The length of the data. | ||||
|  * @param data_length The length of the data. | ||||
|  */ | ||||
| typedef void tox_group_custom_packet_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, | ||||
|     const uint8_t data[], size_t length, void *user_data); | ||||
|     const uint8_t data[], size_t data_length, void *user_data); | ||||
|  | ||||
| /** | ||||
|  * Set the callback for the `group_custom_packet` event. Pass NULL to unset. | ||||
| @@ -4783,11 +4786,11 @@ void tox_callback_group_custom_packet(Tox *tox, tox_group_custom_packet_cb *call | ||||
|  * @param group_number The group number of the group the packet is intended for. | ||||
|  * @param peer_id The ID of the peer who sent the packet. | ||||
|  * @param data The packet data. | ||||
|  * @param length The length of the data. | ||||
|  * @param data_length The length of the data. | ||||
|  */ | ||||
| typedef void tox_group_custom_private_packet_cb( | ||||
|     Tox *tox, Tox_Group_Number group_number, Tox_Group_Peer_Number peer_id, | ||||
|     const uint8_t data[], size_t length, void *user_data); | ||||
|     const uint8_t data[], size_t data_length, void *user_data); | ||||
|  | ||||
| /** | ||||
|  * Set the callback for the `group_custom_private_packet` event. Pass NULL to unset. | ||||
| @@ -4923,11 +4926,11 @@ Tox_Group_Number tox_group_invite_accept( | ||||
| /** | ||||
|  * @param friend_number The friend number of the contact who sent the invite. | ||||
|  * @param invite_data The invite data. | ||||
|  * @param length The length of invite_data. | ||||
|  * @param invite_data_length The length of invite_data. | ||||
|  */ | ||||
| typedef void tox_group_invite_cb( | ||||
|     Tox *tox, Tox_Friend_Number friend_number, | ||||
|     const uint8_t invite_data[], size_t length, | ||||
|     const uint8_t invite_data[], size_t invite_data_length, | ||||
|     const uint8_t group_name[], size_t group_name_length, | ||||
|     void *user_data); | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								external/toxcore/c-toxcore/toxcore/tox_api.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								external/toxcore/c-toxcore/toxcore/tox_api.c
									
									
									
									
										vendored
									
									
								
							| @@ -1340,6 +1340,9 @@ const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Priv | ||||
|         case TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_EMPTY: | ||||
|             return "TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_EMPTY"; | ||||
|  | ||||
|         case TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE: | ||||
|             return "TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE"; | ||||
|  | ||||
|         case TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_PERMISSIONS: | ||||
|             return "TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_PERMISSIONS"; | ||||
|  | ||||
| @@ -1348,9 +1351,6 @@ const char *tox_err_group_send_private_message_to_string(Tox_Err_Group_Send_Priv | ||||
|  | ||||
|         case TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_DISCONNECTED: | ||||
|             return "TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_DISCONNECTED"; | ||||
|  | ||||
|         case TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE: | ||||
|             return "TOX_ERR_GROUP_SEND_PRIVATE_MESSAGE_BAD_TYPE"; | ||||
|     } | ||||
|  | ||||
|     return "<invalid Tox_Err_Group_Send_Private_Message>"; | ||||
|   | ||||
							
								
								
									
										86
									
								
								external/toxcore/c-toxcore/toxcore/tox_event.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										86
									
								
								external/toxcore/c-toxcore/toxcore/tox_event.c
									
									
									
									
										vendored
									
									
								
							| @@ -725,216 +725,216 @@ bool tox_event_pack(const Tox_Event *event, Bin_Pack *bp) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_event_type_from_int(uint32_t value, Tox_Event_Type *out) | ||||
| static bool tox_event_type_from_int(uint32_t value, Tox_Event_Type *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_EVENT_SELF_CONNECTION_STATUS: { | ||||
|             *out = TOX_EVENT_SELF_CONNECTION_STATUS; | ||||
|             *out_enum = TOX_EVENT_SELF_CONNECTION_STATUS; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_REQUEST: { | ||||
|             *out = TOX_EVENT_FRIEND_REQUEST; | ||||
|             *out_enum = TOX_EVENT_FRIEND_REQUEST; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_CONNECTION_STATUS: { | ||||
|             *out = TOX_EVENT_FRIEND_CONNECTION_STATUS; | ||||
|             *out_enum = TOX_EVENT_FRIEND_CONNECTION_STATUS; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_LOSSY_PACKET: { | ||||
|             *out = TOX_EVENT_FRIEND_LOSSY_PACKET; | ||||
|             *out_enum = TOX_EVENT_FRIEND_LOSSY_PACKET; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_LOSSLESS_PACKET: { | ||||
|             *out = TOX_EVENT_FRIEND_LOSSLESS_PACKET; | ||||
|             *out_enum = TOX_EVENT_FRIEND_LOSSLESS_PACKET; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_NAME: { | ||||
|             *out = TOX_EVENT_FRIEND_NAME; | ||||
|             *out_enum = TOX_EVENT_FRIEND_NAME; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_STATUS: { | ||||
|             *out = TOX_EVENT_FRIEND_STATUS; | ||||
|             *out_enum = TOX_EVENT_FRIEND_STATUS; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_STATUS_MESSAGE: { | ||||
|             *out = TOX_EVENT_FRIEND_STATUS_MESSAGE; | ||||
|             *out_enum = TOX_EVENT_FRIEND_STATUS_MESSAGE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_MESSAGE: { | ||||
|             *out = TOX_EVENT_FRIEND_MESSAGE; | ||||
|             *out_enum = TOX_EVENT_FRIEND_MESSAGE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_READ_RECEIPT: { | ||||
|             *out = TOX_EVENT_FRIEND_READ_RECEIPT; | ||||
|             *out_enum = TOX_EVENT_FRIEND_READ_RECEIPT; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FRIEND_TYPING: { | ||||
|             *out = TOX_EVENT_FRIEND_TYPING; | ||||
|             *out_enum = TOX_EVENT_FRIEND_TYPING; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FILE_CHUNK_REQUEST: { | ||||
|             *out = TOX_EVENT_FILE_CHUNK_REQUEST; | ||||
|             *out_enum = TOX_EVENT_FILE_CHUNK_REQUEST; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FILE_RECV: { | ||||
|             *out = TOX_EVENT_FILE_RECV; | ||||
|             *out_enum = TOX_EVENT_FILE_RECV; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FILE_RECV_CHUNK: { | ||||
|             *out = TOX_EVENT_FILE_RECV_CHUNK; | ||||
|             *out_enum = TOX_EVENT_FILE_RECV_CHUNK; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_FILE_RECV_CONTROL: { | ||||
|             *out = TOX_EVENT_FILE_RECV_CONTROL; | ||||
|             *out_enum = TOX_EVENT_FILE_RECV_CONTROL; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_INVITE: { | ||||
|             *out = TOX_EVENT_CONFERENCE_INVITE; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_INVITE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_CONNECTED: { | ||||
|             *out = TOX_EVENT_CONFERENCE_CONNECTED; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_CONNECTED; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_PEER_LIST_CHANGED: { | ||||
|             *out = TOX_EVENT_CONFERENCE_PEER_LIST_CHANGED; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_PEER_LIST_CHANGED; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_PEER_NAME: { | ||||
|             *out = TOX_EVENT_CONFERENCE_PEER_NAME; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_PEER_NAME; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_TITLE: { | ||||
|             *out = TOX_EVENT_CONFERENCE_TITLE; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_TITLE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_CONFERENCE_MESSAGE: { | ||||
|             *out = TOX_EVENT_CONFERENCE_MESSAGE; | ||||
|             *out_enum = TOX_EVENT_CONFERENCE_MESSAGE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PEER_NAME: { | ||||
|             *out = TOX_EVENT_GROUP_PEER_NAME; | ||||
|             *out_enum = TOX_EVENT_GROUP_PEER_NAME; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PEER_STATUS: { | ||||
|             *out = TOX_EVENT_GROUP_PEER_STATUS; | ||||
|             *out_enum = TOX_EVENT_GROUP_PEER_STATUS; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_TOPIC: { | ||||
|             *out = TOX_EVENT_GROUP_TOPIC; | ||||
|             *out_enum = TOX_EVENT_GROUP_TOPIC; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PRIVACY_STATE: { | ||||
|             *out = TOX_EVENT_GROUP_PRIVACY_STATE; | ||||
|             *out_enum = TOX_EVENT_GROUP_PRIVACY_STATE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_VOICE_STATE: { | ||||
|             *out = TOX_EVENT_GROUP_VOICE_STATE; | ||||
|             *out_enum = TOX_EVENT_GROUP_VOICE_STATE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_TOPIC_LOCK: { | ||||
|             *out = TOX_EVENT_GROUP_TOPIC_LOCK; | ||||
|             *out_enum = TOX_EVENT_GROUP_TOPIC_LOCK; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PEER_LIMIT: { | ||||
|             *out = TOX_EVENT_GROUP_PEER_LIMIT; | ||||
|             *out_enum = TOX_EVENT_GROUP_PEER_LIMIT; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PASSWORD: { | ||||
|             *out = TOX_EVENT_GROUP_PASSWORD; | ||||
|             *out_enum = TOX_EVENT_GROUP_PASSWORD; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_MESSAGE: { | ||||
|             *out = TOX_EVENT_GROUP_MESSAGE; | ||||
|             *out_enum = TOX_EVENT_GROUP_MESSAGE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PRIVATE_MESSAGE: { | ||||
|             *out = TOX_EVENT_GROUP_PRIVATE_MESSAGE; | ||||
|             *out_enum = TOX_EVENT_GROUP_PRIVATE_MESSAGE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_CUSTOM_PACKET: { | ||||
|             *out = TOX_EVENT_GROUP_CUSTOM_PACKET; | ||||
|             *out_enum = TOX_EVENT_GROUP_CUSTOM_PACKET; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_CUSTOM_PRIVATE_PACKET: { | ||||
|             *out = TOX_EVENT_GROUP_CUSTOM_PRIVATE_PACKET; | ||||
|             *out_enum = TOX_EVENT_GROUP_CUSTOM_PRIVATE_PACKET; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_INVITE: { | ||||
|             *out = TOX_EVENT_GROUP_INVITE; | ||||
|             *out_enum = TOX_EVENT_GROUP_INVITE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PEER_JOIN: { | ||||
|             *out = TOX_EVENT_GROUP_PEER_JOIN; | ||||
|             *out_enum = TOX_EVENT_GROUP_PEER_JOIN; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_PEER_EXIT: { | ||||
|             *out = TOX_EVENT_GROUP_PEER_EXIT; | ||||
|             *out_enum = TOX_EVENT_GROUP_PEER_EXIT; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_SELF_JOIN: { | ||||
|             *out = TOX_EVENT_GROUP_SELF_JOIN; | ||||
|             *out_enum = TOX_EVENT_GROUP_SELF_JOIN; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_JOIN_FAIL: { | ||||
|             *out = TOX_EVENT_GROUP_JOIN_FAIL; | ||||
|             *out_enum = TOX_EVENT_GROUP_JOIN_FAIL; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_GROUP_MODERATION: { | ||||
|             *out = TOX_EVENT_GROUP_MODERATION; | ||||
|             *out_enum = TOX_EVENT_GROUP_MODERATION; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_DHT_GET_NODES_RESPONSE: { | ||||
|             *out = TOX_EVENT_DHT_GET_NODES_RESPONSE; | ||||
|             *out_enum = TOX_EVENT_DHT_GET_NODES_RESPONSE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_EVENT_INVALID: { | ||||
|             *out = TOX_EVENT_INVALID; | ||||
|             *out_enum = TOX_EVENT_INVALID; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_EVENT_INVALID; | ||||
|             *out_enum = TOX_EVENT_INVALID; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -248,7 +248,7 @@ uint32_t tox_event_group_message_get_group_number( | ||||
|     const Tox_Event_Group_Message *group_message); | ||||
| uint32_t tox_event_group_message_get_peer_id( | ||||
|     const Tox_Event_Group_Message *group_message); | ||||
| Tox_Message_Type tox_event_group_message_get_type( | ||||
| Tox_Message_Type tox_event_group_message_get_message_type( | ||||
|     const Tox_Event_Group_Message *group_message); | ||||
| const uint8_t *tox_event_group_message_get_message( | ||||
|     const Tox_Event_Group_Message *group_message); | ||||
| @@ -262,7 +262,7 @@ uint32_t tox_event_group_private_message_get_group_number( | ||||
|     const Tox_Event_Group_Private_Message *group_private_message); | ||||
| uint32_t tox_event_group_private_message_get_peer_id( | ||||
|     const Tox_Event_Group_Private_Message *group_private_message); | ||||
| Tox_Message_Type tox_event_group_private_message_get_type( | ||||
| Tox_Message_Type tox_event_group_private_message_get_message_type( | ||||
|     const Tox_Event_Group_Private_Message *group_private_message); | ||||
| const uint8_t *tox_event_group_private_message_get_message( | ||||
|     const Tox_Event_Group_Private_Message *group_private_message); | ||||
|   | ||||
							
								
								
									
										110
									
								
								external/toxcore/c-toxcore/toxcore/tox_unpack.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										110
									
								
								external/toxcore/c-toxcore/toxcore/tox_unpack.c
									
									
									
									
										vendored
									
									
								
							| @@ -11,21 +11,21 @@ | ||||
| #include "tox.h" | ||||
|  | ||||
| non_null() | ||||
| static bool tox_conference_type_from_int(uint32_t value, Tox_Conference_Type *out) | ||||
| static bool tox_conference_type_from_int(uint32_t value, Tox_Conference_Type *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_CONFERENCE_TYPE_TEXT: { | ||||
|             *out = TOX_CONFERENCE_TYPE_TEXT; | ||||
|             *out_enum = TOX_CONFERENCE_TYPE_TEXT; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_CONFERENCE_TYPE_AV: { | ||||
|             *out = TOX_CONFERENCE_TYPE_AV; | ||||
|             *out_enum = TOX_CONFERENCE_TYPE_AV; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_CONFERENCE_TYPE_TEXT; | ||||
|             *out_enum = TOX_CONFERENCE_TYPE_TEXT; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -38,26 +38,26 @@ bool tox_conference_type_unpack(Tox_Conference_Type *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_connection_from_int(uint32_t value, Tox_Connection *out) | ||||
| static bool tox_connection_from_int(uint32_t value, Tox_Connection *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_CONNECTION_NONE: { | ||||
|             *out = TOX_CONNECTION_NONE; | ||||
|             *out_enum = TOX_CONNECTION_NONE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_CONNECTION_TCP: { | ||||
|             *out = TOX_CONNECTION_TCP; | ||||
|             *out_enum = TOX_CONNECTION_TCP; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_CONNECTION_UDP: { | ||||
|             *out = TOX_CONNECTION_UDP; | ||||
|             *out_enum = TOX_CONNECTION_UDP; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_CONNECTION_NONE; | ||||
|             *out_enum = TOX_CONNECTION_NONE; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -71,26 +71,26 @@ bool tox_connection_unpack(Tox_Connection *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_file_control_from_int(uint32_t value, Tox_File_Control *out) | ||||
| static bool tox_file_control_from_int(uint32_t value, Tox_File_Control *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_FILE_CONTROL_RESUME: { | ||||
|             *out = TOX_FILE_CONTROL_RESUME; | ||||
|             *out_enum = TOX_FILE_CONTROL_RESUME; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_FILE_CONTROL_PAUSE: { | ||||
|             *out = TOX_FILE_CONTROL_PAUSE; | ||||
|             *out_enum = TOX_FILE_CONTROL_PAUSE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_FILE_CONTROL_CANCEL: { | ||||
|             *out = TOX_FILE_CONTROL_CANCEL; | ||||
|             *out_enum = TOX_FILE_CONTROL_CANCEL; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_FILE_CONTROL_RESUME; | ||||
|             *out_enum = TOX_FILE_CONTROL_RESUME; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -104,21 +104,21 @@ bool tox_file_control_unpack(Tox_File_Control *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_message_type_from_int(uint32_t value, Tox_Message_Type *out) | ||||
| static bool tox_message_type_from_int(uint32_t value, Tox_Message_Type *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_MESSAGE_TYPE_NORMAL: { | ||||
|             *out = TOX_MESSAGE_TYPE_NORMAL; | ||||
|             *out_enum = TOX_MESSAGE_TYPE_NORMAL; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_MESSAGE_TYPE_ACTION: { | ||||
|             *out = TOX_MESSAGE_TYPE_ACTION; | ||||
|             *out_enum = TOX_MESSAGE_TYPE_ACTION; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_MESSAGE_TYPE_NORMAL; | ||||
|             *out_enum = TOX_MESSAGE_TYPE_NORMAL; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -132,26 +132,26 @@ bool tox_message_type_unpack(Tox_Message_Type *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_user_status_from_int(uint32_t value, Tox_User_Status *out) | ||||
| static bool tox_user_status_from_int(uint32_t value, Tox_User_Status *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_USER_STATUS_NONE: { | ||||
|             *out = TOX_USER_STATUS_NONE; | ||||
|             *out_enum = TOX_USER_STATUS_NONE; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_USER_STATUS_AWAY: { | ||||
|             *out = TOX_USER_STATUS_AWAY; | ||||
|             *out_enum = TOX_USER_STATUS_AWAY; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         case TOX_USER_STATUS_BUSY: { | ||||
|             *out = TOX_USER_STATUS_BUSY; | ||||
|             *out_enum = TOX_USER_STATUS_BUSY; | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         default: { | ||||
|             *out = TOX_USER_STATUS_NONE; | ||||
|             *out_enum = TOX_USER_STATUS_NONE; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -165,19 +165,19 @@ bool tox_user_status_unpack(Tox_User_Status *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_group_privacy_state_from_int(uint32_t value, Tox_Group_Privacy_State *out) | ||||
| static bool tox_group_privacy_state_from_int(uint32_t value, Tox_Group_Privacy_State *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_PRIVACY_STATE_PUBLIC: { | ||||
|             *out = TOX_GROUP_PRIVACY_STATE_PUBLIC; | ||||
|             *out_enum = TOX_GROUP_PRIVACY_STATE_PUBLIC; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_PRIVACY_STATE_PRIVATE: { | ||||
|             *out = TOX_GROUP_PRIVACY_STATE_PRIVATE; | ||||
|             *out_enum = TOX_GROUP_PRIVACY_STATE_PRIVATE; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_PRIVACY_STATE_PUBLIC; | ||||
|             *out_enum = TOX_GROUP_PRIVACY_STATE_PUBLIC; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -189,23 +189,23 @@ bool tox_group_privacy_state_unpack(Tox_Group_Privacy_State *val, Bin_Unpack *bu | ||||
|            && tox_group_privacy_state_from_int(u32, val); | ||||
| } | ||||
| non_null() | ||||
| static bool tox_group_voice_state_from_int(uint32_t value, Tox_Group_Voice_State *out) | ||||
| static bool tox_group_voice_state_from_int(uint32_t value, Tox_Group_Voice_State *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_VOICE_STATE_ALL: { | ||||
|             *out = TOX_GROUP_VOICE_STATE_ALL; | ||||
|             *out_enum = TOX_GROUP_VOICE_STATE_ALL; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_VOICE_STATE_MODERATOR: { | ||||
|             *out = TOX_GROUP_VOICE_STATE_MODERATOR; | ||||
|             *out_enum = TOX_GROUP_VOICE_STATE_MODERATOR; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_VOICE_STATE_FOUNDER: { | ||||
|             *out = TOX_GROUP_VOICE_STATE_FOUNDER; | ||||
|             *out_enum = TOX_GROUP_VOICE_STATE_FOUNDER; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_VOICE_STATE_ALL; | ||||
|             *out_enum = TOX_GROUP_VOICE_STATE_ALL; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -218,19 +218,19 @@ bool tox_group_voice_state_unpack(Tox_Group_Voice_State *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_group_topic_lock_from_int(uint32_t value, Tox_Group_Topic_Lock *out) | ||||
| static bool tox_group_topic_lock_from_int(uint32_t value, Tox_Group_Topic_Lock *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_TOPIC_LOCK_ENABLED: { | ||||
|             *out = TOX_GROUP_TOPIC_LOCK_ENABLED; | ||||
|             *out_enum = TOX_GROUP_TOPIC_LOCK_ENABLED; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_TOPIC_LOCK_DISABLED: { | ||||
|             *out = TOX_GROUP_TOPIC_LOCK_DISABLED; | ||||
|             *out_enum = TOX_GROUP_TOPIC_LOCK_DISABLED; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_TOPIC_LOCK_ENABLED; | ||||
|             *out_enum = TOX_GROUP_TOPIC_LOCK_ENABLED; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -243,23 +243,23 @@ bool tox_group_topic_lock_unpack(Tox_Group_Topic_Lock *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_group_join_fail_from_int(uint32_t value, Tox_Group_Join_Fail *out) | ||||
| static bool tox_group_join_fail_from_int(uint32_t value, Tox_Group_Join_Fail *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_JOIN_FAIL_PEER_LIMIT: { | ||||
|             *out = TOX_GROUP_JOIN_FAIL_PEER_LIMIT; | ||||
|             *out_enum = TOX_GROUP_JOIN_FAIL_PEER_LIMIT; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_JOIN_FAIL_INVALID_PASSWORD: { | ||||
|             *out = TOX_GROUP_JOIN_FAIL_INVALID_PASSWORD; | ||||
|             *out_enum = TOX_GROUP_JOIN_FAIL_INVALID_PASSWORD; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_JOIN_FAIL_UNKNOWN: { | ||||
|             *out = TOX_GROUP_JOIN_FAIL_UNKNOWN; | ||||
|             *out_enum = TOX_GROUP_JOIN_FAIL_UNKNOWN; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_JOIN_FAIL_PEER_LIMIT; | ||||
|             *out_enum = TOX_GROUP_JOIN_FAIL_PEER_LIMIT; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -272,27 +272,27 @@ bool tox_group_join_fail_unpack(Tox_Group_Join_Fail *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_group_mod_event_from_int(uint32_t value, Tox_Group_Mod_Event *out) | ||||
| static bool tox_group_mod_event_from_int(uint32_t value, Tox_Group_Mod_Event *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_MOD_EVENT_KICK: { | ||||
|             *out = TOX_GROUP_MOD_EVENT_KICK; | ||||
|             *out_enum = TOX_GROUP_MOD_EVENT_KICK; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_MOD_EVENT_OBSERVER: { | ||||
|             *out = TOX_GROUP_MOD_EVENT_OBSERVER; | ||||
|             *out_enum = TOX_GROUP_MOD_EVENT_OBSERVER; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_MOD_EVENT_USER: { | ||||
|             *out = TOX_GROUP_MOD_EVENT_USER; | ||||
|             *out_enum = TOX_GROUP_MOD_EVENT_USER; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_MOD_EVENT_MODERATOR: { | ||||
|             *out = TOX_GROUP_MOD_EVENT_MODERATOR; | ||||
|             *out_enum = TOX_GROUP_MOD_EVENT_MODERATOR; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_MOD_EVENT_KICK; | ||||
|             *out_enum = TOX_GROUP_MOD_EVENT_KICK; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| @@ -305,35 +305,35 @@ bool tox_group_mod_event_unpack(Tox_Group_Mod_Event *val, Bin_Unpack *bu) | ||||
| } | ||||
|  | ||||
| non_null() | ||||
| static bool tox_group_exit_type_from_int(uint32_t value, Tox_Group_Exit_Type *out) | ||||
| static bool tox_group_exit_type_from_int(uint32_t value, Tox_Group_Exit_Type *out_enum) | ||||
| { | ||||
|     switch (value) { | ||||
|         case TOX_GROUP_EXIT_TYPE_QUIT: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_QUIT; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_QUIT; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_EXIT_TYPE_TIMEOUT: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_TIMEOUT; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_TIMEOUT; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_EXIT_TYPE_DISCONNECTED: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_DISCONNECTED; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_DISCONNECTED; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_EXIT_TYPE_SELF_DISCONNECTED: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_SELF_DISCONNECTED; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_SELF_DISCONNECTED; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_EXIT_TYPE_KICK: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_KICK; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_KICK; | ||||
|             return true; | ||||
|         } | ||||
|         case TOX_GROUP_EXIT_TYPE_SYNC_ERROR: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_SYNC_ERROR; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_SYNC_ERROR; | ||||
|             return true; | ||||
|         } | ||||
|         default: { | ||||
|             *out = TOX_GROUP_EXIT_TYPE_QUIT; | ||||
|             *out_enum = TOX_GROUP_EXIT_TYPE_QUIT; | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|   | ||||
							
								
								
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @@ -20,16 +20,16 @@ | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1694553957, | ||||
|         "narHash": "sha256-8o15HEax53lBJjjcr5VHMpuuT6vBcrzSNB6y2iGlPaU=", | ||||
|         "lastModified": 1709953752, | ||||
|         "narHash": "sha256-LW84B4vM1cn7E6cDNQn2LndT9iJXI1dRE5fwbNFbQa8=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "e7fe745d22df5fa282b321e577fe18d4f62e0f0b", | ||||
|         "rev": "fcaa81ed3c273237217330cf342ef1873b77c80a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "release-23.05", | ||||
|         "ref": "release-23.11", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|   # append '.?submodules=1' to the nix commands. | ||||
|  | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs/release-23.05"; | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs/release-23.11"; | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -35,6 +35,16 @@ namespace Components { | ||||
| 		float fade {1.f}; | ||||
| 	}; | ||||
|  | ||||
| 	struct ConvertedTimeCache { | ||||
| 		// calling localtime is expensive af | ||||
| 		int tm_year {0}; | ||||
| 		int tm_yday {0}; | ||||
| 		int tm_mon {0}; | ||||
| 		int tm_mday {0}; | ||||
| 		int tm_hour {0}; | ||||
| 		int tm_min {0}; | ||||
| 	}; | ||||
|  | ||||
| } // Components | ||||
|  | ||||
| static constexpr float lerp(float a, float b, float t) { | ||||
| @@ -324,7 +334,8 @@ float ChatGui4::render(float time_delta) { | ||||
| 						//tmp_view.use<Message::Components::Timestamp>(); | ||||
| 						//tmp_view.each([&](const Message3 e, Message::Components::ContactFrom& c_from, Message::Components::ContactTo& c_to, Message::Components::Timestamp ts | ||||
| 						//) { | ||||
| 						uint64_t prev_ts {0}; | ||||
| 						//uint64_t prev_ts {0}; | ||||
| 						Components::ConvertedTimeCache prev_time {}; | ||||
| 						auto tmp_view = msg_reg.view<Message::Components::Timestamp>(); | ||||
| 						for (auto view_it = tmp_view.rbegin(), view_last = tmp_view.rend(); view_it != view_last; view_it++) { | ||||
| 							const Message3 e = *view_it; | ||||
| @@ -342,15 +353,12 @@ float ChatGui4::render(float time_delta) { | ||||
| 							// TODO: why? | ||||
| 							ImGui::TableNextRow(0, TEXT_BASE_HEIGHT); | ||||
|  | ||||
| 							{ // check if date changed | ||||
| 								// TODO: find defined ways of casting to time_t | ||||
| 								std::time_t prev = prev_ts / 1000; | ||||
| 								std::time_t next = ts.ts / 1000; | ||||
| 								std::tm prev_tm = *std::localtime(&prev); | ||||
| 								std::tm next_tm = *std::localtime(&next); | ||||
| 							if (msg_reg.all_of<Components::ConvertedTimeCache>(e)) { // check if date changed | ||||
| 								// TODO: move conversion up? | ||||
| 								const auto& next_time = msg_reg.get<Components::ConvertedTimeCache>(e); | ||||
| 								if ( | ||||
| 									prev_tm.tm_yday != next_tm.tm_yday || | ||||
| 									prev_tm.tm_year != next_tm.tm_year // making sure | ||||
| 									prev_time.tm_yday != next_time.tm_yday || | ||||
| 									prev_time.tm_year != next_time.tm_year // making sure | ||||
| 								) { | ||||
| 									// name | ||||
| 									if (ImGui::TableNextColumn()) { | ||||
| @@ -359,14 +367,14 @@ float ChatGui4::render(float time_delta) { | ||||
| 									// msg | ||||
| 									if (ImGui::TableNextColumn()) { | ||||
| 										ImGui::TextDisabled("DATE CHANGED from %d.%d.%d to %d.%d.%d", | ||||
| 											1900+prev_tm.tm_year, 1+prev_tm.tm_mon, prev_tm.tm_mday, | ||||
| 											1900+next_tm.tm_year, 1+next_tm.tm_mon, next_tm.tm_mday | ||||
| 											1900+prev_time.tm_year, 1+prev_time.tm_mon, prev_time.tm_mday, | ||||
| 											1900+next_time.tm_year, 1+next_time.tm_mon, next_time.tm_mday | ||||
| 										); | ||||
| 									} | ||||
| 									ImGui::TableNextRow(0, TEXT_BASE_HEIGHT); | ||||
| 								} | ||||
|  | ||||
| 								prev_ts = ts.ts; | ||||
| 								prev_time = next_time; | ||||
| 							} | ||||
|  | ||||
|  | ||||
| @@ -519,12 +527,24 @@ float ChatGui4::render(float time_delta) { | ||||
|  | ||||
| 							// ts | ||||
| 							if (ImGui::TableNextColumn()) { | ||||
| 								auto time = std::chrono::system_clock::to_time_t( | ||||
| 									std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds>{std::chrono::milliseconds{ts.ts}} | ||||
| 								); | ||||
| 								auto localtime = std::localtime(&time); | ||||
| 								if (!msg_reg.all_of<Components::ConvertedTimeCache>(e)) { | ||||
| 									auto time = std::chrono::system_clock::to_time_t( | ||||
| 										std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds>{std::chrono::milliseconds{ts.ts}} | ||||
| 									); | ||||
| 									auto localtime = std::localtime(&time); | ||||
| 									msg_reg.emplace<Components::ConvertedTimeCache>( | ||||
| 										e, | ||||
| 										localtime->tm_year, | ||||
| 										localtime->tm_yday, | ||||
| 										localtime->tm_mon, | ||||
| 										localtime->tm_mday, | ||||
| 										localtime->tm_hour, | ||||
| 										localtime->tm_min | ||||
| 									); | ||||
| 								} | ||||
| 								const auto& ctc = msg_reg.get<Components::ConvertedTimeCache>(e); | ||||
|  | ||||
| 								ImGui::Text("%.2d:%.2d", localtime->tm_hour, localtime->tm_min); | ||||
| 								ImGui::Text("%.2d:%.2d", ctc.tm_hour, ctc.tm_min); | ||||
| 							} | ||||
|  | ||||
| 							// extra | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| #include "./image_loader_webp.hpp" | ||||
|  | ||||
| #include <memory> | ||||
| #include <webp/demux.h> | ||||
| #include <webp/mux.h> | ||||
| #include <webp/encode.h> | ||||
| @@ -21,13 +22,16 @@ ImageLoaderWebP::ImageInfo ImageLoaderWebP::loadInfoFromMemory(const uint8_t* da | ||||
| 	// Tune 'dec_options' as needed. | ||||
| 	dec_options.color_mode = MODE_RGBA; | ||||
|  | ||||
| 	WebPAnimDecoder* dec = WebPAnimDecoderNew(&webp_data, &dec_options); | ||||
| 	if (dec == nullptr) { | ||||
| 	std::unique_ptr<WebPAnimDecoder, decltype(&WebPAnimDecoderDelete)> dec{ | ||||
| 		WebPAnimDecoderNew(&webp_data, &dec_options), | ||||
| 		&WebPAnimDecoderDelete | ||||
| 	}; | ||||
| 	if (!static_cast<bool>(dec)) { | ||||
| 		return res; | ||||
| 	} | ||||
|  | ||||
| 	WebPAnimInfo anim_info; | ||||
| 	WebPAnimDecoderGetInfo(dec, &anim_info); | ||||
| 	WebPAnimDecoderGetInfo(dec.get(), &anim_info); | ||||
| 	res.width = anim_info.canvas_width; | ||||
| 	res.height = anim_info.canvas_height; | ||||
| 	res.file_ext = "webp"; | ||||
| @@ -48,22 +52,25 @@ ImageLoaderWebP::ImageResult ImageLoaderWebP::loadFromMemoryRGBA(const uint8_t* | ||||
| 	// Tune 'dec_options' as needed. | ||||
| 	dec_options.color_mode = MODE_RGBA; | ||||
|  | ||||
| 	WebPAnimDecoder* dec = WebPAnimDecoderNew(&webp_data, &dec_options); | ||||
| 	if (dec == nullptr) { | ||||
| 	std::unique_ptr<WebPAnimDecoder, decltype(&WebPAnimDecoderDelete)> dec{ | ||||
| 		WebPAnimDecoderNew(&webp_data, &dec_options), | ||||
| 		&WebPAnimDecoderDelete | ||||
| 	}; | ||||
| 	if (!static_cast<bool>(dec)) { | ||||
| 		return res; | ||||
| 	} | ||||
|  | ||||
| 	WebPAnimInfo anim_info; | ||||
| 	WebPAnimDecoderGetInfo(dec, &anim_info); | ||||
| 	WebPAnimDecoderGetInfo(dec.get(), &anim_info); | ||||
| 	res.width = anim_info.canvas_width; | ||||
| 	res.height = anim_info.canvas_height; | ||||
| 	res.file_ext = "webp"; | ||||
|  | ||||
| 	int prev_timestamp = 0; | ||||
| 	while (WebPAnimDecoderHasMoreFrames(dec)) { | ||||
| 	while (WebPAnimDecoderHasMoreFrames(dec.get())) { | ||||
| 		uint8_t* buf; | ||||
| 		int timestamp; | ||||
| 		WebPAnimDecoderGetNext(dec, &buf, ×tamp); | ||||
| 		WebPAnimDecoderGetNext(dec.get(), &buf, ×tamp); | ||||
| 		// ... (Render 'buf' based on 'timestamp'). | ||||
| 		// ... (Do NOT free 'buf', as it is owned by 'dec'). | ||||
|  | ||||
| @@ -74,8 +81,6 @@ ImageLoaderWebP::ImageResult ImageLoaderWebP::loadFromMemoryRGBA(const uint8_t* | ||||
| 		new_frame.data.insert(new_frame.data.end(), buf, buf+(res.width*res.height*4)); | ||||
| 	} | ||||
|  | ||||
| 	WebPAnimDecoderDelete(dec); | ||||
|  | ||||
| 	assert(anim_info.frame_count == res.frames.size()); | ||||
|  | ||||
| 	return res; | ||||
|   | ||||
| @@ -376,7 +376,7 @@ Screen* MainScreen::render(float time_delta, bool&) { | ||||
| } | ||||
|  | ||||
| Screen* MainScreen::tick(float time_delta, bool& quit) { | ||||
| 	quit = !tc.iterate(); // compute | ||||
| 	quit = !tc.iterate(time_delta); // compute | ||||
|  | ||||
| 	tcm.iterate(time_delta); // compute | ||||
|  | ||||
|   | ||||
| @@ -4,6 +4,8 @@ | ||||
| #include <cstdint> | ||||
| #include <cstring> | ||||
|  | ||||
| #include <iostream> | ||||
|  | ||||
| SDLRendererTextureUploader::SDLRendererTextureUploader(SDL_Renderer* renderer_) : | ||||
| 	renderer(renderer_) | ||||
| { | ||||
| @@ -19,16 +21,15 @@ uint64_t SDLRendererTextureUploader::uploadRGBA(const uint8_t* data, uint32_t wi | ||||
| 	); | ||||
| 	assert(surf); // TODO: add error reporting | ||||
|  | ||||
| 	// hacky hint usage | ||||
| 	if (access == Access::STREAMING) { | ||||
| 		SDL_SetHint("SDL_TextureAccess", "SDL_TEXTUREACCESS_STREAMING"); | ||||
| 	} else { | ||||
| 		SDL_SetHint("SDL_TextureAccess", "SDL_TEXTUREACCESS_STATIC"); | ||||
| 	} | ||||
| 	// TODO: cleanup hints after | ||||
|  | ||||
| 	SDL_Texture* tex = SDL_CreateTextureFromSurface(renderer, surf); | ||||
| 	SDL_Texture* tex = SDL_CreateTexture( | ||||
| 		renderer, | ||||
| 		surf->format->format, | ||||
| 		access == Access::STREAMING ? SDL_TEXTUREACCESS_STREAMING : SDL_TEXTUREACCESS_STATIC, | ||||
| 		surf->w, surf->h | ||||
| 	); | ||||
| 	assert(tex); // TODO: add error reporting | ||||
| 	// TODO: error reporting | ||||
| 	SDL_UpdateTexture(tex, nullptr, surf->pixels, surf->pitch); | ||||
|  | ||||
| 	if (filter == NEAREST) { | ||||
| 		SDL_SetTextureScaleMode(tex, SDL_SCALEMODE_NEAREST); | ||||
| @@ -51,7 +52,7 @@ bool SDLRendererTextureUploader::updateRGBA(uint64_t tex_id, const uint8_t* data | ||||
| 	int pitch = 0; | ||||
|  | ||||
| 	if (SDL_LockTexture(texture, nullptr, (void**)&pixels, &pitch) != 0) { | ||||
| 		// TODO: error | ||||
| 		std::cerr << "SDLRTU error: failed locking texture '" << SDL_GetError() << "'\n"; | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -83,6 +83,7 @@ bool SendImagePopup::load(void) { | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		assert(preview_image.textures.empty()); | ||||
| 		preview_image.timestamp_last_rendered = Message::getTimeMS(); | ||||
| 		preview_image.current_texture = 0; | ||||
| 		for (const auto& [ms, data] : original_image.frames) { | ||||
| @@ -173,7 +174,7 @@ void SendImagePopup::render(float time_delta) { | ||||
|  | ||||
| 	// TODO: add cancel shortcut (esc) | ||||
| 	if (ImGui::BeginPopupModal("send image##SendImagePopup", nullptr/*, ImGuiWindowFlags_NoDecoration*/)) { | ||||
| 		const auto TEXT_BASE_WIDTH = ImGui::CalcTextSize("A").x; | ||||
| 		//const auto TEXT_BASE_WIDTH = ImGui::CalcTextSize("A").x; | ||||
| 		const auto TEXT_BASE_HEIGHT = ImGui::GetTextLineHeightWithSpacing(); | ||||
|  | ||||
| 		preview_image.doAnimation(Message::getTimeMS()); | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| #include "./tox_client.hpp" | ||||
| #include "toxcore/tox.h" | ||||
|  | ||||
| // meh, change this | ||||
| #include <exception> | ||||
| @@ -121,10 +120,13 @@ ToxClient::ToxClient(std::string_view save_path, std::string_view save_password) | ||||
| } | ||||
|  | ||||
| ToxClient::~ToxClient(void) { | ||||
| 	if (_tox_profile_dirty) { | ||||
| 		saveToxProfile(); | ||||
| 	} | ||||
| 	tox_kill(_tox); | ||||
| } | ||||
|  | ||||
| bool ToxClient::iterate(void) { | ||||
| bool ToxClient::iterate(float time_delta) { | ||||
| 	Tox_Err_Events_Iterate err_e_it = TOX_ERR_EVENTS_ITERATE_OK; | ||||
| 	auto* events = tox_events_iterate(_tox, false, &err_e_it); | ||||
| 	if (err_e_it == TOX_ERR_EVENTS_ITERATE_OK && events != nullptr) { | ||||
| @@ -136,7 +138,8 @@ bool ToxClient::iterate(void) { | ||||
|  | ||||
| 	tox_events_free(events); | ||||
|  | ||||
| 	if (_tox_profile_dirty) { | ||||
| 	_save_heat -= time_delta; | ||||
| 	if (_tox_profile_dirty && _save_heat <= 0.f) { | ||||
| 		saveToxProfile(); | ||||
| 	} | ||||
|  | ||||
| @@ -180,5 +183,6 @@ void ToxClient::saveToxProfile(void) { | ||||
| 	} | ||||
|  | ||||
| 	_tox_profile_dirty = false; | ||||
| 	_save_heat = 10.f; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -22,6 +22,7 @@ class ToxClient : public ToxDefaultImpl, public ToxEventProviderBase { | ||||
| 		std::string _tox_profile_path; | ||||
| 		std::string _tox_profile_password; | ||||
| 		bool _tox_profile_dirty {true}; // set in callbacks | ||||
| 		float _save_heat {0.f}; | ||||
|  | ||||
| 	public: | ||||
| 		//ToxClient(/*const CommandLine& cl*/); | ||||
| @@ -34,7 +35,7 @@ class ToxClient : public ToxDefaultImpl, public ToxEventProviderBase { | ||||
| 		void setDirty(void) { _tox_profile_dirty = true; } | ||||
|  | ||||
| 		// returns false when we shoul stop the program | ||||
| 		bool iterate(void); | ||||
| 		bool iterate(float time_delta); | ||||
| 		void stop(void); // let it know it should exit | ||||
|  | ||||
| 		void setToxProfilePath(const std::string& new_path) { _tox_profile_path = new_path; } | ||||
|   | ||||
| @@ -16,4 +16,20 @@ struct ToxPrivateImpl : public ToxPrivateI { | ||||
| 	uint16_t toxDHTGetNumCloselistAnnounceCapable(void) override { | ||||
| 		return tox_dht_get_num_closelist_announce_capable(_tox); | ||||
| 	} | ||||
|  | ||||
| 	std::tuple<std::optional<std::string>, Tox_Err_Group_Peer_Query> toxGroupPeerGetIPAddress(uint32_t group_number, uint32_t peer_id) override { | ||||
| 		Tox_Err_Group_Peer_Query err = TOX_ERR_GROUP_PEER_QUERY_OK; | ||||
| 		size_t str_size = tox_group_peer_get_ip_address_size(_tox, group_number, peer_id, &err); | ||||
| 		if (err != TOX_ERR_GROUP_PEER_QUERY_OK) { | ||||
| 			return {std::nullopt, err}; | ||||
| 		} | ||||
| 		std::string ip_str(str_size, '\0'); | ||||
|  | ||||
| 		tox_group_peer_get_ip_address(_tox, group_number, peer_id, reinterpret_cast<uint8_t*>(ip_str.data()), &err); | ||||
| 		if (err == TOX_ERR_GROUP_PEER_QUERY_OK) { | ||||
| 			return {ip_str, err}; | ||||
| 		} else { | ||||
| 			return {std::nullopt, err}; | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user