diff options
author | mannol <eniz_vukovic@hotmail.com> | 2014-11-18 00:46:46 +0100 |
---|---|---|
committer | mannol <eniz_vukovic@hotmail.com> | 2014-11-18 00:46:46 +0100 |
commit | 386c9748d48d3bb4513e8e5c32e2b30a4d6a00d4 (patch) | |
tree | 55d0fb2e9fb6e1149317b9de355c28dd86c57014 /auto_tests/toxav_many_test.c | |
parent | 4e6f993e7d22865ee2ac90bd7dd3ff25b078c55c (diff) |
av refactor
Diffstat (limited to 'auto_tests/toxav_many_test.c')
-rw-r--r-- | auto_tests/toxav_many_test.c | 118 |
1 files changed, 53 insertions, 65 deletions
diff --git a/auto_tests/toxav_many_test.c b/auto_tests/toxav_many_test.c index 4ed79e22..64795b8d 100644 --- a/auto_tests/toxav_many_test.c +++ b/auto_tests/toxav_many_test.c | |||
@@ -11,6 +11,8 @@ | |||
11 | #include <time.h> | 11 | #include <time.h> |
12 | #include <assert.h> | 12 | #include <assert.h> |
13 | 13 | ||
14 | #include <vpx/vpx_image.h> | ||
15 | |||
14 | #include "../toxcore/tox.h" | 16 | #include "../toxcore/tox.h" |
15 | #include "../toxcore/logger.h" | 17 | #include "../toxcore/logger.h" |
16 | #include "../toxcore/crypto_core.h" | 18 | #include "../toxcore/crypto_core.h" |
@@ -32,7 +34,7 @@ typedef enum _CallStatus { | |||
32 | Ringing, | 34 | Ringing, |
33 | Ended, | 35 | Ended, |
34 | Rejected, | 36 | Rejected, |
35 | Cancel | 37 | Canceled |
36 | 38 | ||
37 | } CallStatus; | 39 | } CallStatus; |
38 | 40 | ||
@@ -67,66 +69,49 @@ void accept_friend_request(Tox *m, const uint8_t *public_key, const uint8_t *dat | |||
67 | /******************************************************************************/ | 69 | /******************************************************************************/ |
68 | void callback_recv_invite ( void *av, int32_t call_index, void *_arg ) | 70 | void callback_recv_invite ( void *av, int32_t call_index, void *_arg ) |
69 | { | 71 | { |
70 | /* | 72 | Status *cast = _arg; |
71 | Status *cast = _arg; | 73 | cast->calls[call_index].Callee.status = Ringing; |
72 | |||
73 | cast->calls[call_index].Callee.status = Ringing;*/ | ||
74 | } | 74 | } |
75 | void callback_recv_ringing ( void *av, int32_t call_index, void *_arg ) | 75 | void callback_recv_ringing ( void *av, int32_t call_index, void *_arg ) |
76 | { | 76 | { |
77 | Status *cast = _arg; | 77 | Status *cast = _arg; |
78 | cast->calls[call_index].Caller.status = Ringing; | 78 | cast->calls[call_index].Caller.status = Ringing; |
79 | } | 79 | } |
80 | void callback_recv_starting ( void *av, int32_t call_index, void *_arg ) | 80 | void callback_call_ended ( void *av, int32_t call_index, void *_arg ) |
81 | { | ||
82 | Status *cast = _arg; | ||
83 | cast->calls[call_index].Caller.status = InCall; | ||
84 | } | ||
85 | void callback_recv_ending ( void *av, int32_t call_index, void *_arg ) | ||
86 | { | 81 | { |
87 | Status *cast = _arg; | 82 | Status *cast = _arg; |
88 | cast->calls[call_index].Caller.status = Ended; | 83 | if (av == cast->calls[call_index].Caller.av) |
84 | cast->calls[call_index].Caller.status = Ended; | ||
85 | else | ||
86 | cast->calls[call_index].Callee.status = Ended; | ||
89 | } | 87 | } |
90 | |||
91 | void callback_call_started ( void *av, int32_t call_index, void *_arg ) | 88 | void callback_call_started ( void *av, int32_t call_index, void *_arg ) |
92 | { | 89 | { |
93 | /* | 90 | Status *cast = _arg; |
94 | Status *cast = _arg; | 91 | if (av == cast->calls[call_index].Caller.av) |
95 | 92 | cast->calls[call_index].Caller.status = InCall; | |
96 | cast->calls[call_index].Callee.status = InCall;*/ | 93 | else |
94 | cast->calls[call_index].Callee.status = InCall; | ||
97 | } | 95 | } |
98 | void callback_call_canceled ( void *av, int32_t call_index, void *_arg ) | 96 | void callback_call_canceled ( void *av, int32_t call_index, void *_arg ) |
99 | { | 97 | { |
100 | /* | ||
101 | Status *cast = _arg; | ||
102 | |||
103 | cast->calls[call_index].Callee.status = Cancel;*/ | ||
104 | } | 98 | } |
105 | void callback_call_rejected ( void *av, int32_t call_index, void *_arg ) | 99 | void callback_call_rejected ( void *av, int32_t call_index, void *_arg ) |
106 | { | 100 | { |
107 | Status *cast = _arg; | 101 | Status *cast = _arg; |
108 | cast->calls[call_index].Caller.status = Rejected; | 102 | cast->calls[call_index].Caller.status = Rejected; |
109 | } | 103 | } |
110 | void callback_call_ended ( void *av, int32_t call_index, void *_arg ) | ||
111 | { | ||
112 | /* | ||
113 | Status *cast = _arg; | ||
114 | |||
115 | cast->calls[call_index].Callee.status = Ended;*/ | ||
116 | } | ||
117 | 104 | ||
118 | void callback_requ_timeout ( void *av, int32_t call_index, void *_arg ) | 105 | void callback_requ_timeout ( void *av, int32_t call_index, void *_arg ) |
119 | { | 106 | { |
120 | //ck_assert_msg(0, "No answer!"); | 107 | ck_assert_msg(0, "No answer!"); |
121 | } | 108 | } |
122 | 109 | ||
123 | static void callback_audio(ToxAv *av, int32_t call_index, int16_t *data, int length, void *userdata) | 110 | void callback_audio (void* agent, int32_t call_idx, const int16_t* PCM, uint16_t size, void* data) |
124 | { | 111 | {} |
125 | } | ||
126 | 112 | ||
127 | static void callback_video(ToxAv *av, int32_t call_index, vpx_image_t *img, void *userdata) | 113 | void callback_video (void* agent, int32_t call_idx, const vpx_image_t* img, void* data) |
128 | { | 114 | {} |
129 | } | ||
130 | 115 | ||
131 | void register_callbacks(ToxAv *av, void *data) | 116 | void register_callbacks(ToxAv *av, void *data) |
132 | { | 117 | { |
@@ -135,16 +120,12 @@ void register_callbacks(ToxAv *av, void *data) | |||
135 | toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data); | 120 | toxav_register_callstate_callback(av, callback_call_rejected, av_OnReject, data); |
136 | toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data); | 121 | toxav_register_callstate_callback(av, callback_call_ended, av_OnEnd, data); |
137 | toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data); | 122 | toxav_register_callstate_callback(av, callback_recv_invite, av_OnInvite, data); |
138 | |||
139 | toxav_register_callstate_callback(av, callback_recv_ringing, av_OnRinging, data); | 123 | toxav_register_callstate_callback(av, callback_recv_ringing, av_OnRinging, data); |
140 | toxav_register_callstate_callback(av, callback_recv_starting, av_OnStarting, data); | ||
141 | toxav_register_callstate_callback(av, callback_recv_ending, av_OnEnding, data); | ||
142 | |||
143 | toxav_register_callstate_callback(av, callback_requ_timeout, av_OnRequestTimeout, data); | 124 | toxav_register_callstate_callback(av, callback_requ_timeout, av_OnRequestTimeout, data); |
144 | 125 | ||
145 | 126 | ||
146 | toxav_register_audio_recv_callback(av, callback_audio, NULL); | 127 | toxav_register_audio_callback(callback_audio, NULL); |
147 | toxav_register_video_recv_callback(av, callback_video, NULL); | 128 | toxav_register_video_callback(callback_video, NULL); |
148 | } | 129 | } |
149 | /*************************************************************************************************/ | 130 | /*************************************************************************************************/ |
150 | 131 | ||
@@ -193,14 +174,14 @@ void *in_thread_call (void *arg) | |||
193 | call_print(call_idx, "Sending rtp ..."); | 174 | call_print(call_idx, "Sending rtp ..."); |
194 | 175 | ||
195 | c_sleep(1000); /* We have race condition here */ | 176 | c_sleep(1000); /* We have race condition here */ |
196 | toxav_prepare_transmission(this_call->Callee.av, 0, 3, 0, 1); | 177 | toxav_prepare_transmission(this_call->Callee.av, 0, 1); |
197 | toxav_prepare_transmission(this_call->Caller.av, call_idx, 3, 0, 1); | 178 | toxav_prepare_transmission(this_call->Caller.av, call_idx, 1); |
198 | 179 | ||
199 | int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE, | 180 | int payload_size = toxav_prepare_audio_frame(this_call->Caller.av, call_idx, prepared_payload, RTP_PAYLOAD_SIZE, |
200 | sample_payload, frame_size); | 181 | sample_payload, frame_size); |
201 | 182 | ||
202 | if ( payload_size < 0 ) { | 183 | if ( payload_size < 0 ) { |
203 | //ck_assert_msg ( 0, "Failed to encode payload" ); | 184 | ck_assert_msg ( 0, "Failed to encode payload" ); |
204 | } | 185 | } |
205 | 186 | ||
206 | 187 | ||
@@ -253,8 +234,8 @@ void *in_thread_call (void *arg) | |||
253 | 234 | ||
254 | 235 | ||
255 | 236 | ||
256 | // START_TEST(test_AV_three_calls) | 237 | START_TEST(test_AV_three_calls) |
257 | void test_AV_three_calls() | 238 | // void test_AV_three_calls() |
258 | { | 239 | { |
259 | long long unsigned int cur_time = time(NULL); | 240 | long long unsigned int cur_time = time(NULL); |
260 | Tox *bootstrap_node = tox_new(0); | 241 | Tox *bootstrap_node = tox_new(0); |
@@ -266,12 +247,12 @@ void test_AV_three_calls() | |||
266 | }; | 247 | }; |
267 | 248 | ||
268 | 249 | ||
269 | //ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node"); | 250 | ck_assert_msg(bootstrap_node != NULL, "Failed to create bootstrap node"); |
270 | 251 | ||
271 | int i = 0; | 252 | int i = 0; |
272 | 253 | ||
273 | for (; i < 3; i ++) { | 254 | for (; i < 3; i ++) { |
274 | //ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances"); | 255 | ck_assert_msg(callees[i] != NULL, "Failed to create 3 tox instances"); |
275 | } | 256 | } |
276 | 257 | ||
277 | for ( i = 0; i < 3; i ++ ) { | 258 | for ( i = 0; i < 3; i ++ ) { |
@@ -281,7 +262,7 @@ void test_AV_three_calls() | |||
281 | tox_get_address(callees[i], address); | 262 | tox_get_address(callees[i], address); |
282 | 263 | ||
283 | int test = tox_add_friend(caller, address, (uint8_t *)"gentoo", 7); | 264 | int test = tox_add_friend(caller, address, (uint8_t *)"gentoo", 7); |
284 | //ck_assert_msg( test == i, "Failed to add friend error code: %i", test); | 265 | ck_assert_msg( test == i, "Failed to add friend error code: %i", test); |
285 | } | 266 | } |
286 | 267 | ||
287 | uint8_t off = 1; | 268 | uint8_t off = 1; |
@@ -349,6 +330,12 @@ void test_AV_three_calls() | |||
349 | tox_do(callees[0]); | 330 | tox_do(callees[0]); |
350 | tox_do(callees[1]); | 331 | tox_do(callees[1]); |
351 | tox_do(callees[2]); | 332 | tox_do(callees[2]); |
333 | |||
334 | for ( i = 0; i < 3; i++ ) | ||
335 | toxav_do(status_control.calls[0].Caller.av); | ||
336 | toxav_do(status_control.calls[0].Callee.av); | ||
337 | toxav_do(status_control.calls[1].Callee.av); | ||
338 | toxav_do(status_control.calls[2].Callee.av); | ||
352 | 339 | ||
353 | pthread_mutex_unlock(&muhmutex); | 340 | pthread_mutex_unlock(&muhmutex); |
354 | c_sleep(20); | 341 | c_sleep(20); |
@@ -366,7 +353,7 @@ void test_AV_three_calls() | |||
366 | tox_kill(callees[i]); | 353 | tox_kill(callees[i]); |
367 | 354 | ||
368 | } | 355 | } |
369 | // END_TEST | 356 | END_TEST |
370 | 357 | ||
371 | 358 | ||
372 | 359 | ||
@@ -382,21 +369,22 @@ Suite *tox_suite(void) | |||
382 | 369 | ||
383 | return s; | 370 | return s; |
384 | } | 371 | } |
372 | |||
385 | int main(int argc, char *argv[]) | 373 | int main(int argc, char *argv[]) |
386 | { | 374 | { |
387 | // Suite *tox = tox_suite(); | 375 | Suite *tox = tox_suite(); |
388 | // SRunner *test_runner = srunner_create(tox); | 376 | SRunner *test_runner = srunner_create(tox); |
389 | // | 377 | |
390 | // setbuf(stdout, NULL); | 378 | setbuf(stdout, NULL); |
391 | // | 379 | |
392 | // srunner_run_all(test_runner, CK_NORMAL); | 380 | srunner_run_all(test_runner, CK_NORMAL); |
393 | // int number_failed = srunner_ntests_failed(test_runner); | 381 | int number_failed = srunner_ntests_failed(test_runner); |
394 | // | 382 | |
395 | // srunner_free(test_runner); | 383 | srunner_free(test_runner); |
396 | // | 384 | |
397 | // return number_failed; | 385 | return number_failed; |
398 | 386 | ||
399 | test_AV_three_calls(); | 387 | // test_AV_three_calls(); |
400 | 388 | ||
401 | return 0; | 389 | // return 0; |
402 | } | 390 | } |