summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toxcore/Messenger.c12
-rw-r--r--toxcore/Messenger.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index 6b81427c..692d3d0e 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -718,6 +718,14 @@ void m_callback_connectionstatus(Messenger *m, void (*function)(Messenger *m, in
718 m->friend_connectionstatuschange = function; 718 m->friend_connectionstatuschange = function;
719 m->friend_connectionstatuschange_userdata = userdata; 719 m->friend_connectionstatuschange_userdata = userdata;
720} 720}
721
722void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, int, uint8_t, void *),
723 void *userdata)
724{
725 m->friend_connectionstatuschange_internal = function;
726 m->friend_connectionstatuschange_internal_userdata = userdata;
727}
728
721static void break_files(Messenger *m, int friendnumber); 729static void break_files(Messenger *m, int friendnumber);
722static void check_friend_connectionstatus(Messenger *m, int friendnumber, uint8_t status) 730static void check_friend_connectionstatus(Messenger *m, int friendnumber, uint8_t status)
723{ 731{
@@ -739,6 +747,10 @@ static void check_friend_connectionstatus(Messenger *m, int friendnumber, uint8_
739 747
740 if (m->friend_connectionstatuschange) 748 if (m->friend_connectionstatuschange)
741 m->friend_connectionstatuschange(m, friendnumber, is_online, m->friend_connectionstatuschange_userdata); 749 m->friend_connectionstatuschange(m, friendnumber, is_online, m->friend_connectionstatuschange_userdata);
750
751 if (m->friend_connectionstatuschange_internal)
752 m->friend_connectionstatuschange_internal(m, friendnumber, is_online,
753 m->friend_connectionstatuschange_internal_userdata);
742 } 754 }
743} 755}
744 756
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h
index 375e2025..ccca8fba 100644
--- a/toxcore/Messenger.h
+++ b/toxcore/Messenger.h
@@ -210,6 +210,8 @@ typedef struct Messenger {
210 void *friend_statuschange_userdata; 210 void *friend_statuschange_userdata;
211 void (*friend_connectionstatuschange)(struct Messenger *m, int, uint8_t, void *); 211 void (*friend_connectionstatuschange)(struct Messenger *m, int, uint8_t, void *);
212 void *friend_connectionstatuschange_userdata; 212 void *friend_connectionstatuschange_userdata;
213 void (*friend_connectionstatuschange_internal)(struct Messenger *m, int, uint8_t, void *);
214 void *friend_connectionstatuschange_internal_userdata;
213 215
214 void (*group_invite)(struct Messenger *m, int, uint8_t *, void *); 216 void (*group_invite)(struct Messenger *m, int, uint8_t *, void *);
215 void *group_invite_userdata; 217 void *group_invite_userdata;
@@ -460,6 +462,9 @@ void m_callback_read_receipt(Messenger *m, void (*function)(Messenger *m, int, u
460 * It's assumed that when adding friends, their connection status is offline. 462 * It's assumed that when adding friends, their connection status is offline.
461 */ 463 */
462void m_callback_connectionstatus(Messenger *m, void (*function)(Messenger *m, int, uint8_t, void *), void *userdata); 464void m_callback_connectionstatus(Messenger *m, void (*function)(Messenger *m, int, uint8_t, void *), void *userdata);
465/* Same as previous but for internal A/V core usage only */
466void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, int, uint8_t, void *),
467 void *userdata);
463 468
464/**********GROUP CHATS************/ 469/**********GROUP CHATS************/
465 470