diff options
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/Messenger.c | 19 | ||||
-rw-r--r-- | toxcore/Messenger.h | 19 | ||||
-rw-r--r-- | toxcore/tox.h | 4 | ||||
-rw-r--r-- | toxcore/util.h | 1 |
4 files changed, 26 insertions, 17 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index def05449..90a3a9e8 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -413,7 +413,7 @@ int m_delfriend(Messenger *m, int32_t friendnumber) | |||
413 | } | 413 | } |
414 | 414 | ||
415 | if (m->friend_connectionstatuschange_internal) { | 415 | if (m->friend_connectionstatuschange_internal) { |
416 | m->friend_connectionstatuschange_internal(m, friendnumber, 0, m->friend_connectionstatuschange_internal_userdata); | 416 | m->friend_connectionstatuschange_internal(m, friendnumber, 0, m->friend_connectionstatuschange_internal_userdata, NULL); |
417 | } | 417 | } |
418 | 418 | ||
419 | clear_receipts(m, friendnumber); | 419 | clear_receipts(m, friendnumber); |
@@ -885,7 +885,8 @@ void m_callback_core_connection(Messenger *m, void (*function)(Messenger *m, uns | |||
885 | m->core_connection_change = function; | 885 | m->core_connection_change = function; |
886 | } | 886 | } |
887 | 887 | ||
888 | void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, uint32_t, uint8_t, void *), | 888 | void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, uint32_t, uint8_t, void *, |
889 | void *), | ||
889 | void *userdata) | 890 | void *userdata) |
890 | { | 891 | { |
891 | m->friend_connectionstatuschange_internal = function; | 892 | m->friend_connectionstatuschange_internal = function; |
@@ -946,7 +947,7 @@ static void check_friend_connectionstatus(Messenger *m, int32_t friendnumber, ui | |||
946 | 947 | ||
947 | if (m->friend_connectionstatuschange_internal) { | 948 | if (m->friend_connectionstatuschange_internal) { |
948 | m->friend_connectionstatuschange_internal(m, friendnumber, is_online, | 949 | m->friend_connectionstatuschange_internal(m, friendnumber, is_online, |
949 | m->friend_connectionstatuschange_internal_userdata); | 950 | m->friend_connectionstatuschange_internal_userdata, userdata); |
950 | } | 951 | } |
951 | } | 952 | } |
952 | } | 953 | } |
@@ -1711,11 +1712,11 @@ static int handle_filecontrol(Messenger *m, int32_t friendnumber, uint8_t receiv | |||
1711 | * | 1712 | * |
1712 | * Function(Messenger *m, int friendnumber, uint8_t *data, uint16_t length, void *userdata) | 1713 | * Function(Messenger *m, int friendnumber, uint8_t *data, uint16_t length, void *userdata) |
1713 | */ | 1714 | */ |
1714 | void m_callback_msi_packet(Messenger *m, void (*function)(Messenger *m, uint32_t, const uint8_t *, uint16_t, void *), | 1715 | void m_callback_msi_packet(Messenger *m, void (*function)(Messenger *m, uint32_t, const uint8_t *, uint16_t, void *, |
1715 | void *userdata) | 1716 | void *), void *object) |
1716 | { | 1717 | { |
1717 | m->msi_packet = function; | 1718 | m->msi_packet = function; |
1718 | m->msi_packet_userdata = userdata; | 1719 | m->msi_packet_userdata = object; |
1719 | } | 1720 | } |
1720 | 1721 | ||
1721 | /* Send an msi packet. | 1722 | /* Send an msi packet. |
@@ -1741,7 +1742,7 @@ static int handle_custom_lossy_packet(void *object, int friend_num, const uint8_ | |||
1741 | if (m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % PACKET_LOSSY_AV_RESERVED].function) { | 1742 | if (m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % PACKET_LOSSY_AV_RESERVED].function) { |
1742 | return m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % PACKET_LOSSY_AV_RESERVED].function( | 1743 | return m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % PACKET_LOSSY_AV_RESERVED].function( |
1743 | m, friend_num, packet, length, m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % | 1744 | m, friend_num, packet, length, m->friendlist[friend_num].lossy_rtp_packethandlers[packet[0] % |
1744 | PACKET_LOSSY_AV_RESERVED].object); | 1745 | PACKET_LOSSY_AV_RESERVED].object, userdata); |
1745 | } | 1746 | } |
1746 | 1747 | ||
1747 | return 1; | 1748 | return 1; |
@@ -1761,7 +1762,7 @@ void custom_lossy_packet_registerhandler(Messenger *m, void (*packet_handler_cal | |||
1761 | } | 1762 | } |
1762 | 1763 | ||
1763 | int m_callback_rtp_packet(Messenger *m, int32_t friendnumber, uint8_t byte, int (*packet_handler_callback)(Messenger *m, | 1764 | int m_callback_rtp_packet(Messenger *m, int32_t friendnumber, uint8_t byte, int (*packet_handler_callback)(Messenger *m, |
1764 | uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object), void *object) | 1765 | uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object, void *userdata), void *object) |
1765 | { | 1766 | { |
1766 | if (friend_not_valid(m, friendnumber)) { | 1767 | if (friend_not_valid(m, friendnumber)) { |
1767 | return -1; | 1768 | return -1; |
@@ -2333,7 +2334,7 @@ static int handle_packet(void *object, int i, const uint8_t *temp, uint16_t len, | |||
2333 | } | 2334 | } |
2334 | 2335 | ||
2335 | if (m->msi_packet) { | 2336 | if (m->msi_packet) { |
2336 | (*m->msi_packet)(m, i, data, data_length, m->msi_packet_userdata); | 2337 | (*m->msi_packet)(m, i, data, data_length, m->msi_packet_userdata, userdata); |
2337 | } | 2338 | } |
2338 | 2339 | ||
2339 | break; | 2340 | break; |
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h index 2317eb8b..6f99f15b 100644 --- a/toxcore/Messenger.h +++ b/toxcore/Messenger.h | |||
@@ -200,8 +200,11 @@ typedef struct { | |||
200 | unsigned int num_sending_files; | 200 | unsigned int num_sending_files; |
201 | struct File_Transfers file_receiving[MAX_CONCURRENT_FILE_PIPES]; | 201 | struct File_Transfers file_receiving[MAX_CONCURRENT_FILE_PIPES]; |
202 | 202 | ||
203 | /* ToxAV, *object is the internal session data for the active call, userdata is the *pointer provided in | ||
204 | * tox_iterate() | ||
205 | */ | ||
203 | struct { | 206 | struct { |
204 | int (*function)(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object); | 207 | int (*function)(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object, void *userdata); |
205 | void *object; | 208 | void *object; |
206 | } lossy_rtp_packethandlers[PACKET_LOSSY_AV_RESERVED]; | 209 | } lossy_rtp_packethandlers[PACKET_LOSSY_AV_RESERVED]; |
207 | 210 | ||
@@ -245,7 +248,8 @@ struct Messenger { | |||
245 | void (*friend_typingchange)(struct Messenger *m, uint32_t, bool, void *); | 248 | void (*friend_typingchange)(struct Messenger *m, uint32_t, bool, void *); |
246 | void (*read_receipt)(struct Messenger *m, uint32_t, uint32_t, void *); | 249 | void (*read_receipt)(struct Messenger *m, uint32_t, uint32_t, void *); |
247 | void (*friend_connectionstatuschange)(struct Messenger *m, uint32_t, unsigned int, void *); | 250 | void (*friend_connectionstatuschange)(struct Messenger *m, uint32_t, unsigned int, void *); |
248 | void (*friend_connectionstatuschange_internal)(struct Messenger *m, uint32_t, uint8_t, void *); | 251 | void (*friend_connectionstatuschange_internal)(struct Messenger *m, uint32_t, uint8_t, void *, void *); |
252 | /* ToxAV internal session data */ | ||
249 | void *friend_connectionstatuschange_internal_userdata; | 253 | void *friend_connectionstatuschange_internal_userdata; |
250 | 254 | ||
251 | void *group_chat_object; /* Set by new_groupchats()*/ | 255 | void *group_chat_object; /* Set by new_groupchats()*/ |
@@ -258,7 +262,7 @@ struct Messenger { | |||
258 | void (*file_filedata)(struct Messenger *m, uint32_t, uint32_t, uint64_t, const uint8_t *, size_t, void *); | 262 | void (*file_filedata)(struct Messenger *m, uint32_t, uint32_t, uint64_t, const uint8_t *, size_t, void *); |
259 | void (*file_reqchunk)(struct Messenger *m, uint32_t, uint32_t, uint64_t, size_t, void *); | 263 | void (*file_reqchunk)(struct Messenger *m, uint32_t, uint32_t, uint64_t, size_t, void *); |
260 | 264 | ||
261 | void (*msi_packet)(struct Messenger *m, uint32_t, const uint8_t *, uint16_t, void *); | 265 | void (*msi_packet)(struct Messenger *m, uint32_t, const uint8_t *, uint16_t, void *, void *); |
262 | void *msi_packet_userdata; | 266 | void *msi_packet_userdata; |
263 | 267 | ||
264 | void (*lossy_packethandler)(struct Messenger *m, uint32_t, const uint8_t *, size_t, void *); | 268 | void (*lossy_packethandler)(struct Messenger *m, uint32_t, const uint8_t *, size_t, void *); |
@@ -523,7 +527,8 @@ void m_callback_read_receipt(Messenger *m, void (*function)(Messenger *m, uint32 | |||
523 | void m_callback_connectionstatus(Messenger *m, void (*function)(Messenger *m, uint32_t, unsigned int, void *)); | 527 | void m_callback_connectionstatus(Messenger *m, void (*function)(Messenger *m, uint32_t, unsigned int, void *)); |
524 | 528 | ||
525 | /* Same as previous but for internal A/V core usage only */ | 529 | /* Same as previous but for internal A/V core usage only */ |
526 | void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, uint32_t, uint8_t, void *), | 530 | void m_callback_connectionstatus_internal_av(Messenger *m, void (*function)(Messenger *m, uint32_t, uint8_t, void *, |
531 | void *), | ||
527 | void *userdata); | 532 | void *userdata); |
528 | 533 | ||
529 | 534 | ||
@@ -657,8 +662,8 @@ uint64_t file_dataremaining(const Messenger *m, int32_t friendnumber, uint8_t fi | |||
657 | * | 662 | * |
658 | * Function(Messenger *m, uint32_t friendnumber, uint8_t *data, uint16_t length, void *userdata) | 663 | * Function(Messenger *m, uint32_t friendnumber, uint8_t *data, uint16_t length, void *userdata) |
659 | */ | 664 | */ |
660 | void m_callback_msi_packet(Messenger *m, void (*function)(Messenger *m, uint32_t, const uint8_t *, uint16_t, void *), | 665 | void m_callback_msi_packet(Messenger *m, void (*function)(Messenger *m, uint32_t, const uint8_t *, uint16_t, void *, |
661 | void *userdata); | 666 | void *), void *toxav_session); |
662 | 667 | ||
663 | /* Send an msi packet. | 668 | /* Send an msi packet. |
664 | * | 669 | * |
@@ -673,7 +678,7 @@ int m_msi_packet(const Messenger *m, int32_t friendnumber, const uint8_t *data, | |||
673 | * return 0 on success. | 678 | * return 0 on success. |
674 | */ | 679 | */ |
675 | int m_callback_rtp_packet(Messenger *m, int32_t friendnumber, uint8_t byte, int (*packet_handler_callback)(Messenger *m, | 680 | int m_callback_rtp_packet(Messenger *m, int32_t friendnumber, uint8_t byte, int (*packet_handler_callback)(Messenger *m, |
676 | uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object), void *object); | 681 | uint32_t friendnumber, const uint8_t *data, uint16_t len, void *object, void *userdata), void *object); |
677 | 682 | ||
678 | /**********************************************/ | 683 | /**********************************************/ |
679 | 684 | ||
diff --git a/toxcore/tox.h b/toxcore/tox.h index a8488aeb..61c4227a 100644 --- a/toxcore/tox.h +++ b/toxcore/tox.h | |||
@@ -1237,6 +1237,10 @@ typedef enum TOX_ERR_FRIEND_DELETE { | |||
1237 | * function, this client will appear offline to the friend and no communication | 1237 | * function, this client will appear offline to the friend and no communication |
1238 | * can occur between the two. | 1238 | * can occur between the two. |
1239 | * | 1239 | * |
1240 | * WARNING, calling tox_friend_delete while there's an active ToxAV call will | ||
1241 | * result in undefined behavior. It's the client's responsibility to end all | ||
1242 | * ToxAV calls before deleting a friend. | ||
1243 | * | ||
1240 | * @param friend_number Friend number for the friend to be deleted. | 1244 | * @param friend_number Friend number for the friend to be deleted. |
1241 | * | 1245 | * |
1242 | * @return true on success. | 1246 | * @return true on success. |
diff --git a/toxcore/util.h b/toxcore/util.h index 840f0a3e..d7ad7beb 100644 --- a/toxcore/util.h +++ b/toxcore/util.h | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <stdint.h> | 30 | #include <stdint.h> |
31 | 31 | ||
32 | #define MIN(a,b) (((a)<(b))?(a):(b)) | 32 | #define MIN(a,b) (((a)<(b))?(a):(b)) |
33 | #define PAIR(TYPE1__, TYPE2__) struct { TYPE1__ first; TYPE2__ second; } | ||
34 | 33 | ||
35 | void unix_time_update(void); | 34 | void unix_time_update(void); |
36 | uint64_t unix_time(void); | 35 | uint64_t unix_time(void); |