summaryrefslogtreecommitdiff
path: root/toxav/av_test.c
diff options
context:
space:
mode:
authormannol <eniz_vukovic@hotmail.com>2015-03-01 18:45:04 +0100
committermannol <eniz_vukovic@hotmail.com>2015-03-01 18:45:04 +0100
commit45e8807c1e693c105b97784d15b7eb19bcc87918 (patch)
treec75497dcacf65552c3fc3cbb0cacf759b7fe5c67 /toxav/av_test.c
parent9e65cd533735f1acc638241ed58400bf7029b1ef (diff)
Make toxav thread safe
Diffstat (limited to 'toxav/av_test.c')
-rw-r--r--toxav/av_test.c53
1 files changed, 29 insertions, 24 deletions
diff --git a/toxav/av_test.c b/toxav/av_test.c
index 41f5a758..bb79eedc 100644
--- a/toxav/av_test.c
+++ b/toxav/av_test.c
@@ -16,7 +16,7 @@
16 16
17typedef struct { 17typedef struct {
18 bool incoming; 18 bool incoming;
19 TOXAV_CALL_STATE state; 19 uint32_t state;
20} CallControl; 20} CallControl;
21 21
22const char* stringify_state(TOXAV_CALL_STATE s) 22const char* stringify_state(TOXAV_CALL_STATE s)
@@ -44,9 +44,9 @@ void t_toxav_call_cb(ToxAV *av, uint32_t friend_number, bool audio_enabled, bool
44 printf("Handling CALL callback\n"); 44 printf("Handling CALL callback\n");
45 ((CallControl*)user_data)->incoming = true; 45 ((CallControl*)user_data)->incoming = true;
46} 46}
47void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, TOXAV_CALL_STATE state, void *user_data) 47void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_data)
48{ 48{
49 printf("Handling CALL STATE callback: %s\n", stringify_state(state)); 49 printf("Handling CALL STATE callback: %d\n", state);
50 50
51 ((CallControl*)user_data)->state = state; 51 ((CallControl*)user_data)->state = state;
52} 52}
@@ -211,13 +211,13 @@ int main (int argc, char** argv)
211 } 211 }
212 212
213 printf("\nTrying regular call (Audio and Video)...\n"); 213 printf("\nTrying regular call (Audio and Video)...\n");
214// REGULAR_CALL_FLOW(48, 4000); 214 REGULAR_CALL_FLOW(48, 4000);
215 215
216 printf("\nTrying regular call (Audio only)...\n"); 216 printf("\nTrying regular call (Audio only)...\n");
217// REGULAR_CALL_FLOW(48, 0); 217 REGULAR_CALL_FLOW(48, 0);
218 218
219 printf("\nTrying regular call (Video only)...\n"); 219 printf("\nTrying regular call (Video only)...\n");
220// REGULAR_CALL_FLOW(0, 4000); 220 REGULAR_CALL_FLOW(0, 4000);
221 221
222#undef REGULAR_CALL_FLOW 222#undef REGULAR_CALL_FLOW
223 223
@@ -318,10 +318,8 @@ int main (int argc, char** argv)
318 /* At first try all stuff while in invalid state */ 318 /* At first try all stuff while in invalid state */
319 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL)); 319 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_PAUSE, NULL));
320 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); 320 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL));
321 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); 321 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL));
322 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_VIDEO, NULL)); 322 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_VIDEO, NULL));
323 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL));
324 assert(!toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_VIDEO, NULL));
325 323
326 { 324 {
327 TOXAV_ERR_ANSWER rc; 325 TOXAV_ERR_ANSWER rc;
@@ -342,36 +340,36 @@ int main (int argc, char** argv)
342 assert(BobCC.state == TOXAV_CALL_STATE_PAUSED); 340 assert(BobCC.state == TOXAV_CALL_STATE_PAUSED);
343 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL)); 341 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_RESUME, NULL));
344 iterate(Bsn, AliceAV, BobAV); 342 iterate(Bsn, AliceAV, BobAV);
345 assert(BobCC.state == TOXAV_CALL_STATE_SENDING_AV); 343 assert(BobCC.state & (TOXAV_CALL_STATE_SENDING_A | TOXAV_CALL_STATE_SENDING_V));
346 344
347 /* Mute/Unmute single */ 345 /* Mute/Unmute single */
348 printf("Mute/Unmute single\n"); 346 printf("Mute/Unmute single\n");
349 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); 347 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL));
350 iterate(Bsn, AliceAV, BobAV); 348 iterate(Bsn, AliceAV, BobAV);
351 assert(BobCC.state == TOXAV_CALL_CONTROL_MUTE_AUDIO); 349 assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A);
352 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); 350 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL));
353 iterate(Bsn, AliceAV, BobAV); 351 iterate(Bsn, AliceAV, BobAV);
354 assert(BobCC.state == TOXAV_CALL_CONTROL_UNMUTE_AUDIO); 352 assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A);
355 353
356 /* Mute/Unmute both */ 354 /* Mute/Unmute both */
357 printf("Mute/Unmute both\n"); 355 printf("Mute/Unmute both\n");
358 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_AUDIO, NULL)); 356 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL));
359 iterate(Bsn, AliceAV, BobAV); 357 iterate(Bsn, AliceAV, BobAV);
360 assert(BobCC.state == TOXAV_CALL_STATE_SENDING_V); 358 assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_A);
361 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_MUTE_VIDEO, NULL)); 359 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_VIDEO, NULL));
362 iterate(Bsn, AliceAV, BobAV); 360 iterate(Bsn, AliceAV, BobAV);
363 assert(BobCC.state == TOXAV_CALL_STATE_NOT_SENDING); 361 assert(BobCC.state ^ TOXAV_CALL_STATE_RECEIVING_V);
364 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_AUDIO, NULL)); 362 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_AUDIO, NULL));
365 iterate(Bsn, AliceAV, BobAV); 363 iterate(Bsn, AliceAV, BobAV);
366 assert(BobCC.state == TOXAV_CALL_STATE_SENDING_A); 364 assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_A);
367 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_UNMUTE_VIDEO, NULL)); 365 assert(toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_TOGGLE_MUTE_VIDEO, NULL));
368 iterate(Bsn, AliceAV, BobAV); 366 iterate(Bsn, AliceAV, BobAV);
369 assert(BobCC.state == TOXAV_CALL_STATE_SENDING_AV); 367 assert(BobCC.state & TOXAV_CALL_STATE_RECEIVING_V);
370 368
371 { 369 {
372 TOXAV_ERR_CALL_CONTROL rc; 370 TOXAV_ERR_CALL_CONTROL rc;
373 toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_CANCEL, &rc); 371 toxav_call_control(AliceAV, 0, TOXAV_CALL_CONTROL_CANCEL, &rc);
374 372
375 if (rc != TOXAV_ERR_CALL_CONTROL_OK) { 373 if (rc != TOXAV_ERR_CALL_CONTROL_OK) {
376 printf("toxav_call_control failed: %d\n", rc); 374 printf("toxav_call_control failed: %d\n", rc);
377 exit(1); 375 exit(1);
@@ -384,6 +382,13 @@ int main (int argc, char** argv)
384 printf("Success!\n"); 382 printf("Success!\n");
385 } 383 }
386 384
385
386 toxav_kill(BobAV);
387 toxav_kill(AliceAV);
388 tox_kill(Bob);
389 tox_kill(Alice);
390 tox_kill(Bsn);
391
387 printf("\nTest successful!\n"); 392 printf("\nTest successful!\n");
388 return 0; 393 return 0;
389} \ No newline at end of file 394} \ No newline at end of file