diff options
Diffstat (limited to 'toxcore/group.h')
-rw-r--r-- | toxcore/group.h | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/toxcore/group.h b/toxcore/group.h index 31e0e7e3..175999ae 100644 --- a/toxcore/group.h +++ b/toxcore/group.h | |||
@@ -132,15 +132,38 @@ typedef struct Group_c { | |||
132 | group_on_delete_cb *group_on_delete; | 132 | group_on_delete_cb *group_on_delete; |
133 | } Group_c; | 133 | } Group_c; |
134 | 134 | ||
135 | /* Callback for group invites. | ||
136 | * | ||
137 | * data of length is what needs to be passed to join_groupchat(). | ||
138 | */ | ||
135 | typedef void g_conference_invite_cb(Messenger *m, uint32_t friend_number, int type, const uint8_t *cookie, | 139 | typedef void g_conference_invite_cb(Messenger *m, uint32_t friend_number, int type, const uint8_t *cookie, |
136 | size_t length, void *user_data); | 140 | size_t length, void *user_data); |
141 | |||
142 | /* Callback for group connection. */ | ||
143 | typedef void g_conference_connected_cb(Messenger *m, uint32_t conference_number, void *user_data); | ||
144 | |||
145 | /* Callback for group messages. */ | ||
137 | typedef void g_conference_message_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, int type, | 146 | typedef void g_conference_message_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, int type, |
138 | const uint8_t *message, size_t length, void *user_data); | 147 | const uint8_t *message, size_t length, void *user_data); |
148 | |||
149 | /* Callback for peer nickname changes. */ | ||
139 | typedef void peer_name_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *name, | 150 | typedef void peer_name_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *name, |
140 | size_t length, void *user_data); | 151 | size_t length, void *user_data); |
152 | |||
153 | /* Set callback function for peer list changes. */ | ||
141 | typedef void peer_list_changed_cb(Messenger *m, uint32_t conference_number, void *user_data); | 154 | typedef void peer_list_changed_cb(Messenger *m, uint32_t conference_number, void *user_data); |
155 | |||
156 | /* Callback for title changes. | ||
157 | * | ||
158 | * If peer_number == -1, then author is unknown (e.g. initial joining the group). | ||
159 | */ | ||
142 | typedef void title_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *title, | 160 | typedef void title_cb(Messenger *m, uint32_t conference_number, uint32_t peer_number, const uint8_t *title, |
143 | size_t length, void *user_data); | 161 | size_t length, void *user_data); |
162 | |||
163 | /* Callback for lossy packets. | ||
164 | * | ||
165 | * NOTE: Handler must return 0 if packet is to be relayed, -1 if the packet should not be relayed. | ||
166 | */ | ||
144 | typedef int lossy_packet_cb(void *object, uint32_t conference_number, uint32_t peer_number, void *peer_object, | 167 | typedef int lossy_packet_cb(void *object, uint32_t conference_number, uint32_t peer_number, void *peer_object, |
145 | const uint8_t *packet, uint16_t length); | 168 | const uint8_t *packet, uint16_t length); |
146 | 169 | ||
@@ -156,6 +179,7 @@ typedef struct Group_Chats { | |||
156 | uint16_t num_chats; | 179 | uint16_t num_chats; |
157 | 180 | ||
158 | g_conference_invite_cb *invite_callback; | 181 | g_conference_invite_cb *invite_callback; |
182 | g_conference_connected_cb *connected_callback; | ||
159 | g_conference_message_cb *message_callback; | 183 | g_conference_message_cb *message_callback; |
160 | peer_name_cb *peer_name_callback; | 184 | peer_name_cb *peer_name_callback; |
161 | peer_list_changed_cb *peer_list_changed_callback; | 185 | peer_list_changed_cb *peer_list_changed_callback; |
@@ -164,39 +188,28 @@ typedef struct Group_Chats { | |||
164 | Group_Lossy_Handler lossy_packethandlers[256]; | 188 | Group_Lossy_Handler lossy_packethandlers[256]; |
165 | } Group_Chats; | 189 | } Group_Chats; |
166 | 190 | ||
167 | /* Set the callback for group invites. | 191 | /* Set the callback for group invites. */ |
168 | * | ||
169 | * Function(Group_Chats *g_c, uint32_t friendnumber, uint8_t type, uint8_t *data, uint16_t length, void *userdata) | ||
170 | * | ||
171 | * data of length is what needs to be passed to join_groupchat(). | ||
172 | */ | ||
173 | void g_callback_group_invite(Group_Chats *g_c, g_conference_invite_cb *function); | 192 | void g_callback_group_invite(Group_Chats *g_c, g_conference_invite_cb *function); |
174 | 193 | ||
175 | /* Set the callback for group messages. | 194 | /* Set the callback for group connection. */ |
176 | * | 195 | void g_callback_group_connected(Group_Chats *g_c, g_conference_connected_cb *function); |
177 | * Function(Group_Chats *g_c, uint32_t groupnumber, uint32_t friendgroupnumber, uint8_t * message, uint16_t length, void *userdata) | 196 | |
178 | */ | 197 | /* Set the callback for group messages. */ |
179 | void g_callback_group_message(Group_Chats *g_c, g_conference_message_cb *function); | 198 | void g_callback_group_message(Group_Chats *g_c, g_conference_message_cb *function); |
180 | 199 | ||
181 | 200 | ||
182 | /* Set callback function for title changes. | 201 | /* Set callback function for title changes. */ |
183 | * | ||
184 | * Function(Group_Chats *g_c, uint32_t groupnumber, uint32_t friendgroupnumber, uint8_t * title, uint8_t length, void *userdata) | ||
185 | * if friendgroupnumber == -1, then author is unknown (e.g. initial joining the group) | ||
186 | */ | ||
187 | void g_callback_group_title(Group_Chats *g_c, title_cb *function); | 202 | void g_callback_group_title(Group_Chats *g_c, title_cb *function); |
188 | 203 | ||
189 | /* Set callback function for peer nickname changes. | 204 | /* Set callback function for peer nickname changes. |
190 | * | 205 | * |
191 | * It gets called every time a peer changes their nickname. | 206 | * It gets called every time a peer changes their nickname. |
192 | * Function(Group_Chats *g_c, uint32_t groupnumber, uint32_t peernumber, const uint8_t *nick, size_t nick_len, void *userdata) | ||
193 | */ | 207 | */ |
194 | void g_callback_peer_name(Group_Chats *g_c, peer_name_cb *function); | 208 | void g_callback_peer_name(Group_Chats *g_c, peer_name_cb *function); |
195 | 209 | ||
196 | /* Set callback function for peer list changes. | 210 | /* Set callback function for peer list changes. |
197 | * | 211 | * |
198 | * It gets called every time the name list changes(new peer, deleted peer) | 212 | * It gets called every time the name list changes(new peer, deleted peer) |
199 | * Function(Group_Chats *g_c, uint32_t groupnumber, void *userdata) | ||
200 | */ | 213 | */ |
201 | void g_callback_peer_list_changed(Group_Chats *g_c, peer_list_changed_cb *function); | 214 | void g_callback_peer_list_changed(Group_Chats *g_c, peer_list_changed_cb *function); |
202 | 215 | ||
@@ -327,12 +340,7 @@ int group_peernumber_is_ours(const Group_Chats *g_c, uint32_t groupnumber, int p | |||
327 | int group_names(const Group_Chats *g_c, uint32_t groupnumber, uint8_t names[][MAX_NAME_LENGTH], uint16_t lengths[], | 340 | int group_names(const Group_Chats *g_c, uint32_t groupnumber, uint8_t names[][MAX_NAME_LENGTH], uint16_t lengths[], |
328 | uint16_t length); | 341 | uint16_t length); |
329 | 342 | ||
330 | /* Set handlers for custom lossy packets. | 343 | /* Set handlers for custom lossy packets. */ |
331 | * | ||
332 | * NOTE: Handler must return 0 if packet is to be relayed, -1 if the packet should not be relayed. | ||
333 | * | ||
334 | * Function(void *group object (set with group_set_object), uint32_t groupnumber, uint32_t friendgroupnumber, void *group peer object (set with group_peer_set_object), const uint8_t *packet, uint16_t length) | ||
335 | */ | ||
336 | void group_lossy_packet_registerhandler(Group_Chats *g_c, uint8_t byte, lossy_packet_cb *function); | 344 | void group_lossy_packet_registerhandler(Group_Chats *g_c, uint8_t byte, lossy_packet_cb *function); |
337 | 345 | ||
338 | /* High level function to send custom lossy packets. | 346 | /* High level function to send custom lossy packets. |
@@ -389,14 +397,14 @@ int group_set_object(const Group_Chats *g_c, uint32_t groupnumber, void *object) | |||
389 | */ | 397 | */ |
390 | int group_peer_set_object(const Group_Chats *g_c, uint32_t groupnumber, int peernumber, void *object); | 398 | int group_peer_set_object(const Group_Chats *g_c, uint32_t groupnumber, int peernumber, void *object); |
391 | 399 | ||
392 | /* Return the object tide to the group chat previously set by group_set_object. | 400 | /* Return the object tied to the group chat previously set by group_set_object. |
393 | * | 401 | * |
394 | * return NULL on failure. | 402 | * return NULL on failure. |
395 | * return object on success. | 403 | * return object on success. |
396 | */ | 404 | */ |
397 | void *group_get_object(const Group_Chats *g_c, uint32_t groupnumber); | 405 | void *group_get_object(const Group_Chats *g_c, uint32_t groupnumber); |
398 | 406 | ||
399 | /* Return the object tide to the group chat peer previously set by group_peer_set_object. | 407 | /* Return the object tied to the group chat peer previously set by group_peer_set_object. |
400 | * | 408 | * |
401 | * return NULL on failure. | 409 | * return NULL on failure. |
402 | * return object on success. | 410 | * return object on success. |
@@ -405,8 +413,6 @@ void *group_peer_get_object(const Group_Chats *g_c, uint32_t groupnumber, int pe | |||
405 | 413 | ||
406 | /* Set a function to be called when a new peer joins a group chat. | 414 | /* Set a function to be called when a new peer joins a group chat. |
407 | * | 415 | * |
408 | * Function(void *group object (set with group_set_object), int groupnumber, int friendgroupnumber) | ||
409 | * | ||
410 | * return 0 on success. | 416 | * return 0 on success. |
411 | * return -1 on failure. | 417 | * return -1 on failure. |
412 | */ | 418 | */ |
@@ -414,8 +420,6 @@ int callback_groupchat_peer_new(const Group_Chats *g_c, uint32_t groupnumber, pe | |||
414 | 420 | ||
415 | /* Set a function to be called when a peer leaves a group chat. | 421 | /* Set a function to be called when a peer leaves a group chat. |
416 | * | 422 | * |
417 | * Function(void *group object (set with group_set_object), uint32_t groupnumber, void *group peer object (set with group_peer_set_object)) | ||
418 | * | ||
419 | * return 0 on success. | 423 | * return 0 on success. |
420 | * return -1 on failure. | 424 | * return -1 on failure. |
421 | */ | 425 | */ |
@@ -423,8 +427,6 @@ int callback_groupchat_peer_delete(Group_Chats *g_c, uint32_t groupnumber, peer_ | |||
423 | 427 | ||
424 | /* Set a function to be called when the group chat is deleted. | 428 | /* Set a function to be called when the group chat is deleted. |
425 | * | 429 | * |
426 | * Function(void *group object (set with group_set_object), uint32_t groupnumber) | ||
427 | * | ||
428 | * return 0 on success. | 430 | * return 0 on success. |
429 | * return -1 on failure. | 431 | * return -1 on failure. |
430 | */ | 432 | */ |