diff options
author | mannol <eniz_vukovic@hotmail.com> | 2015-03-01 18:45:04 +0100 |
---|---|---|
committer | mannol <eniz_vukovic@hotmail.com> | 2015-03-01 18:45:04 +0100 |
commit | 45e8807c1e693c105b97784d15b7eb19bcc87918 (patch) | |
tree | c75497dcacf65552c3fc3cbb0cacf759b7fe5c67 /toxav/av_test.c | |
parent | 9e65cd533735f1acc638241ed58400bf7029b1ef (diff) |
Make toxav thread safe
Diffstat (limited to 'toxav/av_test.c')
-rw-r--r-- | toxav/av_test.c | 53 |
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 | ||
17 | typedef struct { | 17 | typedef struct { |
18 | bool incoming; | 18 | bool incoming; |
19 | TOXAV_CALL_STATE state; | 19 | uint32_t state; |
20 | } CallControl; | 20 | } CallControl; |
21 | 21 | ||
22 | const char* stringify_state(TOXAV_CALL_STATE s) | 22 | const 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 | } |
47 | void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, TOXAV_CALL_STATE state, void *user_data) | 47 | void 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 |