diff options
author | Jin^eLD <jin@mediatomb.cc> | 2013-09-05 00:45:36 +0300 |
---|---|---|
committer | Jin^eLD <jin@mediatomb.cc> | 2013-09-05 01:30:28 +0300 |
commit | b9455efd8430d3578376400f986e62223f1504b3 (patch) | |
tree | afff930b4067b5fb0edf5b3b5963f4a26db434ff /toxcore | |
parent | 31f43799e11ea824db79de2458a4ac29e6f22c3d (diff) |
Function for retreiving a list of friend numbers
This should allow clients to sync the Tox friend list with their UI/etc.
lists.
Diffstat (limited to 'toxcore')
-rw-r--r-- | toxcore/Messenger.c | 34 | ||||
-rw-r--r-- | toxcore/Messenger.h | 7 | ||||
-rw-r--r-- | toxcore/tox.c | 11 | ||||
-rw-r--r-- | toxcore/tox.h | 8 |
4 files changed, 60 insertions, 0 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c index f97a3320..90d4e43d 100644 --- a/toxcore/Messenger.c +++ b/toxcore/Messenger.c | |||
@@ -1052,3 +1052,37 @@ int Messenger_load(Messenger *m, uint8_t *data, uint32_t length) | |||
1052 | 1052 | ||
1053 | return 0; | 1053 | return 0; |
1054 | } | 1054 | } |
1055 | |||
1056 | /* Allocate and return a list of valid friend id's. List must be freed by the | ||
1057 | * caller. | ||
1058 | * | ||
1059 | * retun 0 if success. | ||
1060 | * return -1 if failure. | ||
1061 | */ | ||
1062 | int get_friendlist(Messenger *m, int **out_list, uint32_t *out_list_length) | ||
1063 | { | ||
1064 | uint32_t i; | ||
1065 | |||
1066 | *out_list_length = 0; | ||
1067 | |||
1068 | if (m->numfriends == 0) { | ||
1069 | *out_list = NULL; | ||
1070 | return 0; | ||
1071 | } | ||
1072 | |||
1073 | *out_list = malloc(m->numfriends * sizeof(int)); | ||
1074 | |||
1075 | if (*out_list == NULL) { | ||
1076 | return -1; | ||
1077 | } | ||
1078 | |||
1079 | for (i = 0; i < m->numfriends; i++) { | ||
1080 | if (m->friendlist[i].status > 0) { | ||
1081 | (*out_list)[i] = i; | ||
1082 | (*out_list_length)++; | ||
1083 | } | ||
1084 | } | ||
1085 | |||
1086 | return 0; | ||
1087 | } | ||
1088 | |||
diff --git a/toxcore/Messenger.h b/toxcore/Messenger.h index fedf2879..649ca894 100644 --- a/toxcore/Messenger.h +++ b/toxcore/Messenger.h | |||
@@ -377,5 +377,12 @@ void Messenger_save(Messenger *m, uint8_t *data); | |||
377 | /* Load the messenger from data of size length. */ | 377 | /* Load the messenger from data of size length. */ |
378 | int Messenger_load(Messenger *m, uint8_t *data, uint32_t length); | 378 | int Messenger_load(Messenger *m, uint8_t *data, uint32_t length); |
379 | 379 | ||
380 | /* Allocate and return a list of valid friend id's. List must be freed by the | ||
381 | * caller. | ||
382 | * | ||
383 | * retun 0 if success. | ||
384 | * return -1 if failure. | ||
385 | */ | ||
386 | int get_friendlist(Messenger *m, int **out_list, uint32_t *out_list_length); | ||
380 | 387 | ||
381 | #endif | 388 | #endif |
diff --git a/toxcore/tox.c b/toxcore/tox.c index 23ca6572..e55f51ca 100644 --- a/toxcore/tox.c +++ b/toxcore/tox.c | |||
@@ -247,6 +247,17 @@ void tox_set_sends_receipts(void *tox, int friendnumber, int yesno) | |||
247 | m_set_sends_receipts(m, friendnumber, yesno); | 247 | m_set_sends_receipts(m, friendnumber, yesno); |
248 | } | 248 | } |
249 | 249 | ||
250 | /* Allocate and return a list of valid friend id's. List must be freed by the | ||
251 | * caller. | ||
252 | * | ||
253 | * retun 0 if success. | ||
254 | * return -1 if failure. | ||
255 | */ | ||
256 | int tox_get_friendlist(void *tox, int **out_list, uint32_t *out_list_length) | ||
257 | { | ||
258 | Messenger *m = tox; | ||
259 | return get_friendlist(m, out_list, out_list_length); | ||
260 | } | ||
250 | 261 | ||
251 | /* Set the function that will be executed when a friend request is received. | 262 | /* Set the function that will be executed when a friend request is received. |
252 | * Function format is function(uint8_t * public_key, uint8_t * data, uint16_t length) | 263 | * Function format is function(uint8_t * public_key, uint8_t * data, uint16_t length) |
diff --git a/toxcore/tox.h b/toxcore/tox.h index b17ca36f..bd13b998 100644 --- a/toxcore/tox.h +++ b/toxcore/tox.h | |||
@@ -221,6 +221,14 @@ TOX_USERSTATUS tox_get_selfuserstatus(Tox *tox); | |||
221 | */ | 221 | */ |
222 | void tox_set_sends_receipts(Tox *tox, int friendnumber, int yesno); | 222 | void tox_set_sends_receipts(Tox *tox, int friendnumber, int yesno); |
223 | 223 | ||
224 | /* Allocate and return a list of valid friend id's. List must be freed by the | ||
225 | * caller. | ||
226 | * | ||
227 | * retun 0 if success. | ||
228 | * return -1 if failure. | ||
229 | */ | ||
230 | int tox_get_friendlist(void *tox, int **out_list, uint32_t *out_list_length); | ||
231 | |||
224 | /* Set the function that will be executed when a friend request is received. | 232 | /* Set the function that will be executed when a friend request is received. |
225 | * Function format is function(uint8_t * public_key, uint8_t * data, uint16_t length) | 233 | * Function format is function(uint8_t * public_key, uint8_t * data, uint16_t length) |
226 | */ | 234 | */ |