diff options
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/Messenger.c | 6 | ||||
-rw-r--r-- | toxcore/Messenger.h | 4 | ||||
-rw-r--r-- | toxcore/group_chats.c | 8 | ||||
-rw-r--r-- | toxcore/group_chats.h | 10 | ||||
-rw-r--r-- | toxcore/tox.c | 2 | ||||
-rw-r--r-- | toxcore/tox.h | 9 |
6 files changed, 25 insertions, 14 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index cc52c069..1a7fc230 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -785,7 +785,7 @@ void m_callback_group_message(Messenger *m, void (*function)(Messenger *m, int, | |||
785 | * It gets called every time the name list changes(new peer/name, deleted peer) | 785 | * It gets called every time the name list changes(new peer/name, deleted peer) |
786 | * Function(Tox *tox, int groupnumber, void *userdata) | 786 | * Function(Tox *tox, int groupnumber, void *userdata) |
787 | */ | 787 | */ |
788 | void m_callback_group_namelistchange(Messenger *m, void (*function)(Messenger *m, int, void *), void *userdata) | 788 | void m_callback_group_namelistchange(Messenger *m, void (*function)(Messenger *m, int, int, uint8_t, void *), void *userdata) |
789 | { | 789 | { |
790 | m->group_namelistchange = function; | 790 | m->group_namelistchange = function; |
791 | m->group_namelistchange_userdata = userdata; | 791 | m->group_namelistchange_userdata = userdata; |
@@ -812,7 +812,7 @@ static void group_message_function(Group_Chat *chat, int peer_number, uint8_t *m | |||
812 | (*m->group_message)(m, i, peer_number, message, length, m->group_message_userdata); | 812 | (*m->group_message)(m, i, peer_number, message, length, m->group_message_userdata); |
813 | } | 813 | } |
814 | 814 | ||
815 | static void group_namelistchange_function(Group_Chat *chat, void *userdata) | 815 | static void group_namelistchange_function(Group_Chat *chat, int peer, uint8_t change, void *userdata) |
816 | { | 816 | { |
817 | Messenger *m = userdata; | 817 | Messenger *m = userdata; |
818 | int i = get_chat_num(m, chat); | 818 | int i = get_chat_num(m, chat); |
@@ -820,7 +820,7 @@ static void group_namelistchange_function(Group_Chat *chat, void *userdata) | |||
820 | return; | 820 | return; |
821 | 821 | ||
822 | if (m->group_namelistchange) | 822 | if (m->group_namelistchange) |
823 | (*m->group_namelistchange)(m, i, m->group_namelistchange_userdata); | 823 | (*m->group_namelistchange)(m, i, peer, change, m->group_namelistchange_userdata); |
824 | } | 824 | } |
825 | 825 | ||
826 | 826 | ||
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h index bf8a0572..6fc23db4 100644 --- a/toxcore/Messenger.h +++ b/toxcore/Messenger.h | |||
@@ -198,7 +198,7 @@ typedef struct Messenger { | |||
198 | void *group_invite_userdata; | 198 | void *group_invite_userdata; |
199 | void (*group_message)(struct Messenger *m, int, int, uint8_t *, uint16_t, void *); | 199 | void (*group_message)(struct Messenger *m, int, int, uint8_t *, uint16_t, void *); |
200 | void *group_message_userdata; | 200 | void *group_message_userdata; |
201 | void (*group_namelistchange)(struct Messenger *m, int, void *); | 201 | void (*group_namelistchange)(struct Messenger *m, int, int, uint8_t, void *); |
202 | void *group_namelistchange_userdata; | 202 | void *group_namelistchange_userdata; |
203 | 203 | ||
204 | void (*file_sendrequest)(struct Messenger *m, int, uint8_t, uint64_t, uint8_t *, uint16_t, void *); | 204 | void (*file_sendrequest)(struct Messenger *m, int, uint8_t, uint64_t, uint8_t *, uint16_t, void *); |
@@ -462,7 +462,7 @@ void m_callback_group_message(Messenger *m, void (*function)(Messenger *m, int, | |||
462 | * It gets called every time the name list changes(new peer/name, deleted peer) | 462 | * It gets called every time the name list changes(new peer/name, deleted peer) |
463 | * Function(Tox *tox, int groupnumber, void *userdata) | 463 | * Function(Tox *tox, int groupnumber, void *userdata) |
464 | */ | 464 | */ |
465 | void m_callback_group_namelistchange(Messenger *m, void (*function)(Messenger *m, int, void *), void *userdata); | 465 | void m_callback_group_namelistchange(Messenger *m, void (*function)(Messenger *m, int, int, uint8_t, void *), void *userdata); |
466 | 466 | ||
467 | /* Creates a new groupchat and puts it in the chats array. | 467 | /* Creates a new groupchat and puts it in the chats array. |
468 | * | 468 | * |
diff --git a/toxcore/group_chats.c b/toxcore/group_chats.c index 7e18a334..a20ec555 100644 --- a/toxcore/group_chats.c +++ b/toxcore/group_chats.c | |||
@@ -219,7 +219,7 @@ static int addpeer(Group_Chat *chat, uint8_t *client_id) | |||
219 | ++chat->numpeers; | 219 | ++chat->numpeers; |
220 | 220 | ||
221 | if (chat->peer_namelistchange != NULL) | 221 | if (chat->peer_namelistchange != NULL) |
222 | (*chat->peer_namelistchange)(chat, chat->group_namelistchange_userdata); | 222 | (*chat->peer_namelistchange)(chat, chat->numpeers - 1, CHAT_CHANGE_PEER_ADD, chat->group_namelistchange_userdata); |
223 | 223 | ||
224 | return (chat->numpeers - 1); | 224 | return (chat->numpeers - 1); |
225 | } | 225 | } |
@@ -255,7 +255,7 @@ static int delpeer(Group_Chat *chat, int peernum) | |||
255 | chat->group = temp; | 255 | chat->group = temp; |
256 | 256 | ||
257 | if (chat->peer_namelistchange != NULL) | 257 | if (chat->peer_namelistchange != NULL) |
258 | (*chat->peer_namelistchange)(chat, chat->group_namelistchange_userdata); | 258 | (*chat->peer_namelistchange)(chat, peernum, CHAT_CHANGE_PEER_DEL, chat->group_namelistchange_userdata); |
259 | 259 | ||
260 | return 0; | 260 | return 0; |
261 | } | 261 | } |
@@ -291,7 +291,7 @@ static void setnick(Group_Chat *chat, int peernum, uint8_t *contents, uint16_t c | |||
291 | chat->group[peernum].nick[contents_len - 1] = 0; | 291 | chat->group[peernum].nick[contents_len - 1] = 0; |
292 | chat->group[peernum].nick_len = contents_len; | 292 | chat->group[peernum].nick_len = contents_len; |
293 | if (chat->peer_namelistchange != NULL) | 293 | if (chat->peer_namelistchange != NULL) |
294 | (*chat->peer_namelistchange)(chat, chat->group_namelistchange_userdata); | 294 | (*chat->peer_namelistchange)(chat, peernum, CHAT_CHANGE_PEER_NAME, chat->group_namelistchange_userdata); |
295 | } | 295 | } |
296 | 296 | ||
297 | /* min time between pings sent to one peer in seconds */ | 297 | /* min time between pings sent to one peer in seconds */ |
@@ -625,7 +625,7 @@ void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, | |||
625 | chat->group_message_userdata = userdata; | 625 | chat->group_message_userdata = userdata; |
626 | } | 626 | } |
627 | 627 | ||
628 | void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat, void *), void *userdata) | 628 | void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat, int peer, uint8_t change, void *), void *userdata) |
629 | { | 629 | { |
630 | chat->peer_namelistchange = function; | 630 | chat->peer_namelistchange = function; |
631 | chat->group_namelistchange_userdata = userdata; | 631 | chat->group_namelistchange_userdata = userdata; |
diff --git a/toxcore/group_chats.h b/toxcore/group_chats.h index 2235a6e3..65f573fb 100644 --- a/toxcore/group_chats.h +++ b/toxcore/group_chats.h | |||
@@ -65,7 +65,7 @@ typedef struct Group_Chat { | |||
65 | uint32_t message_number; | 65 | uint32_t message_number; |
66 | void (*group_message)(struct Group_Chat *m, int, uint8_t *, uint16_t, void *); | 66 | void (*group_message)(struct Group_Chat *m, int, uint8_t *, uint16_t, void *); |
67 | void *group_message_userdata; | 67 | void *group_message_userdata; |
68 | void (*peer_namelistchange)(struct Group_Chat *m, void *); | 68 | void (*peer_namelistchange)(struct Group_Chat *m, int peer, uint8_t change, void *); |
69 | void *group_namelistchange_userdata; | 69 | void *group_namelistchange_userdata; |
70 | 70 | ||
71 | uint64_t last_sent_ping; | 71 | uint64_t last_sent_ping; |
@@ -105,7 +105,13 @@ void callback_groupmessage(Group_Chat *chat, void (*function)(Group_Chat *chat, | |||
105 | * | 105 | * |
106 | * format of function is: function(Group_Chat *chat, userdata) | 106 | * format of function is: function(Group_Chat *chat, userdata) |
107 | */ | 107 | */ |
108 | void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat, void *), void *userdata); | 108 | typedef enum { |
109 | CHAT_CHANGE_PEER_ADD, | ||
110 | CHAT_CHANGE_PEER_DEL, | ||
111 | CHAT_CHANGE_PEER_NAME, | ||
112 | } CHAT_CHANGE; | ||
113 | |||
114 | void callback_namelistchange(Group_Chat *chat, void (*function)(Group_Chat *chat, int peer, uint8_t change, void *), void *userdata); | ||
109 | 115 | ||
110 | /* | 116 | /* |
111 | * Send a message to the group. | 117 | * Send a message to the group. |
diff --git a/toxcore/tox.c b/toxcore/tox.c index 4ba17e34..d5bc1c35 100644 --- a/toxcore/tox.c +++ b/toxcore/tox.c | |||
@@ -422,7 +422,7 @@ void tox_callback_group_message(Tox *tox, void (*function)(Messenger *tox, int, | |||
422 | * Function(Tox *tox, int groupnumber, void *userdata) | 422 | * Function(Tox *tox, int groupnumber, void *userdata) |
423 | */ | 423 | */ |
424 | 424 | ||
425 | void tox_callback_group_namelistchange(Tox *tox, void (*function)(Tox *tox, int, void *), void *userdata) | 425 | void tox_callback_group_namelistchange(Tox *tox, void (*function)(Tox *tox, int, int, uint8_t, void *), void *userdata) |
426 | { | 426 | { |
427 | Messenger *m = tox; | 427 | Messenger *m = tox; |
428 | m_callback_group_namelistchange(m, function, userdata); | 428 | m_callback_group_namelistchange(m, function, userdata); |
diff --git a/toxcore/tox.h b/toxcore/tox.h index fedc2c8a..08727d2a 100644 --- a/toxcore/tox.h +++ b/toxcore/tox.h | |||
@@ -366,10 +366,15 @@ void tox_callback_group_message(Tox *tox, void (*function)(Tox *tox, int, int, u | |||
366 | /* Set callback function for peer name list changes. | 366 | /* Set callback function for peer name list changes. |
367 | * | 367 | * |
368 | * It gets called every time the name list changes(new peer/name, deleted peer) | 368 | * It gets called every time the name list changes(new peer/name, deleted peer) |
369 | * Function(Tox *tox, int groupnumber, void *userdata) | 369 | * Function(Tox *tox, int groupnumber, int peernumber, TOX_CHAT_CHANGE change, void *userdata) |
370 | */ | 370 | */ |
371 | typedef enum { | ||
372 | TOX_CHAT_CHANGE_PEER_ADD, | ||
373 | TOX_CHAT_CHANGE_PEER_DEL, | ||
374 | TOX_CHAT_CHANGE_PEER_NAME, | ||
375 | } TOX_CHAT_CHANGE; | ||
371 | 376 | ||
372 | void tox_callback_group_namelistchange(Tox *tox, void (*function)(Tox *tox, int, void *), void *userdata); | 377 | void tox_callback_group_namelistchange(Tox *tox, void (*function)(Tox *tox, int, int, uint8_t, void *), void *userdata); |
373 | 378 | ||
374 | /* Creates a new groupchat and puts it in the chats array. | 379 | /* Creates a new groupchat and puts it in the chats array. |
375 | * | 380 | * |