summaryrefslogtreecommitdiff
path: root/toxav/bwcontroller.c
diff options
context:
space:
mode:
Diffstat (limited to 'toxav/bwcontroller.c')
-rw-r--r--toxav/bwcontroller.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/toxav/bwcontroller.c b/toxav/bwcontroller.c
index 63350f17..b97135d6 100644
--- a/toxav/bwcontroller.c
+++ b/toxav/bwcontroller.c
@@ -40,7 +40,7 @@
40 */ 40 */
41 41
42struct BWController_s { 42struct BWController_s {
43 void (*mcb)(BWController *, uint32_t, float, void *, void *); 43 void (*mcb)(BWController *, uint32_t, float, void *);
44 void *mcb_data; 44 void *mcb_data;
45 45
46 Messenger *m; 46 Messenger *m;
@@ -61,18 +61,17 @@ struct BWController_s {
61 } rcvpkt; /* To calculate average received packet */ 61 } rcvpkt; /* To calculate average received packet */
62}; 62};
63 63
64int bwc_handle_data(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length, void *object, 64int bwc_handle_data(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length, void *object);
65 void *userdata);
66void send_update(BWController *bwc); 65void send_update(BWController *bwc);
67 66
68BWController *bwc_new(Messenger *m, uint32_t friendnumber, 67BWController *bwc_new(Messenger *m, uint32_t friendnumber,
69 void (*mcb)(BWController *, uint32_t, float, void *, void *), 68 void (*mcb)(BWController *, uint32_t, float, void *),
70 void *call_data) 69 void *udata)
71{ 70{
72 BWController *retu = calloc(sizeof(struct BWController_s), 1); 71 BWController *retu = calloc(sizeof(struct BWController_s), 1);
73 72
74 retu->mcb = mcb; 73 retu->mcb = mcb;
75 retu->mcb_data = call_data; 74 retu->mcb_data = udata;
76 retu->m = m; 75 retu->m = m;
77 retu->friend_number = friendnumber; 76 retu->friend_number = friendnumber;
78 retu->cycle.lsu = retu->cycle.lfu = current_time_monotonic(); 77 retu->cycle.lsu = retu->cycle.lfu = current_time_monotonic();
@@ -180,7 +179,7 @@ void send_update(BWController *bwc)
180 bwc->cycle.lsu = current_time_monotonic(); 179 bwc->cycle.lsu = current_time_monotonic();
181 } 180 }
182} 181}
183static int on_update(BWController *bwc, const struct BWCMessage *msg, void *userdata) 182static int on_update(BWController *bwc, const struct BWCMessage *msg)
184{ 183{
185 LOGGER_DEBUG(bwc->m->log, "%p Got update from peer", bwc); 184 LOGGER_DEBUG(bwc->m->log, "%p Got update from peer", bwc);
186 185
@@ -200,18 +199,16 @@ static int on_update(BWController *bwc, const struct BWCMessage *msg, void *user
200 if (lost && bwc->mcb) { 199 if (lost && bwc->mcb) {
201 bwc->mcb(bwc, bwc->friend_number, 200 bwc->mcb(bwc, bwc->friend_number,
202 ((float) lost / (recv + lost)), 201 ((float) lost / (recv + lost)),
203 bwc->mcb_data, 202 bwc->mcb_data);
204 userdata);
205 } 203 }
206 204
207 return 0; 205 return 0;
208} 206}
209int bwc_handle_data(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length, void *object, 207int bwc_handle_data(Messenger *m, uint32_t friendnumber, const uint8_t *data, uint16_t length, void *object)
210 void *userdata)
211{ 208{
212 if (length - 1 != sizeof(struct BWCMessage)) { 209 if (length - 1 != sizeof(struct BWCMessage)) {
213 return -1; 210 return -1;
214 } 211 }
215 212
216 return on_update(object, (const struct BWCMessage *)(data + 1), userdata); 213 return on_update(object, (const struct BWCMessage *)(data + 1));
217} 214}