diff options
author | Gregory Mullen (grayhatter) <greg@grayhatter.com> | 2016-09-11 16:27:03 -0700 |
---|---|---|
committer | Gregory Mullen (grayhatter) <greg@grayhatter.com> | 2016-09-17 14:05:51 -0700 |
commit | 21f8db12c45bd56293262cd4abfb73cd9abec821 (patch) | |
tree | 580729367d00e1eb7e0c4d533777d22af7d7ffc5 /toxcore/Messenger.h | |
parent | 5da85c582d97d746887da407153afc0acf0a4215 (diff) |
Make ToxAV stateless
Diffstat (limited to 'toxcore/Messenger.h')
-rw-r--r-- | toxcore/Messenger.h | 19 |
1 files changed, 12 insertions, 7 deletions
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 | ||