summaryrefslogtreecommitdiff
path: root/toxav/toxav.c
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2016-09-18 01:31:55 +0100
committeriphydf <iphydf@users.noreply.github.com>2016-09-24 21:53:50 +0100
commit15cb4261665bab4ef02a5b1b9db48b9477c9b87a (patch)
treed0c40a45afa19fff26ce1eb5bb703e18a9acdd4a /toxav/toxav.c
parent0d347c2b2e69aa09b079f6daaa00007fef4fe52f (diff)
Make toxcore code C++ compatible.
It is still C code, so still compatible with C compilers as well. This change lets us see more clearly where implicit conversions occur by making them explicit.
Diffstat (limited to 'toxav/toxav.c')
-rw-r--r--toxav/toxav.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/toxav/toxav.c b/toxav/toxav.c
index 1ae914e8..a5314d23 100644
--- a/toxav/toxav.c
+++ b/toxav/toxav.c
@@ -146,7 +146,7 @@ ToxAV *toxav_new(Tox *tox, TOXAV_ERR_NEW *error)
146 goto END; 146 goto END;
147 } 147 }
148 148
149 av = calloc(sizeof(ToxAV), 1); 149 av = (ToxAV *)calloc(sizeof(ToxAV), 1);
150 150
151 if (av == NULL) { 151 if (av == NULL) {
152 LOGGER_WARNING(m->log, "Allocation failed!"); 152 LOGGER_WARNING(m->log, "Allocation failed!");
@@ -289,6 +289,7 @@ bool toxav_call(ToxAV *av, uint32_t friend_number, uint32_t audio_bit_rate, uint
289 TOXAV_ERR_CALL *error) 289 TOXAV_ERR_CALL *error)
290{ 290{
291 TOXAV_ERR_CALL rc = TOXAV_ERR_CALL_OK; 291 TOXAV_ERR_CALL rc = TOXAV_ERR_CALL_OK;
292 ToxAVCall *call;
292 293
293 pthread_mutex_lock(av->mutex); 294 pthread_mutex_lock(av->mutex);
294 295
@@ -298,7 +299,7 @@ bool toxav_call(ToxAV *av, uint32_t friend_number, uint32_t audio_bit_rate, uint
298 goto END; 299 goto END;
299 } 300 }
300 301
301 ToxAVCall *call = call_new(av, friend_number, &rc); 302 call = call_new(av, friend_number, &rc);
302 303
303 if (call == NULL) { 304 if (call == NULL) {
304 goto END; 305 goto END;
@@ -342,6 +343,7 @@ bool toxav_answer(ToxAV *av, uint32_t friend_number, uint32_t audio_bit_rate, ui
342 pthread_mutex_lock(av->mutex); 343 pthread_mutex_lock(av->mutex);
343 344
344 TOXAV_ERR_ANSWER rc = TOXAV_ERR_ANSWER_OK; 345 TOXAV_ERR_ANSWER rc = TOXAV_ERR_ANSWER_OK;
346 ToxAVCall *call;
345 347
346 if (m_friend_exists(av->m, friend_number) == 0) { 348 if (m_friend_exists(av->m, friend_number) == 0) {
347 rc = TOXAV_ERR_ANSWER_FRIEND_NOT_FOUND; 349 rc = TOXAV_ERR_ANSWER_FRIEND_NOT_FOUND;
@@ -355,7 +357,7 @@ bool toxav_answer(ToxAV *av, uint32_t friend_number, uint32_t audio_bit_rate, ui
355 goto END; 357 goto END;
356 } 358 }
357 359
358 ToxAVCall *call = call_get(av, friend_number); 360 call = call_get(av, friend_number);
359 361
360 if (call == NULL) { 362 if (call == NULL) {
361 rc = TOXAV_ERR_ANSWER_FRIEND_NOT_CALLING; 363 rc = TOXAV_ERR_ANSWER_FRIEND_NOT_CALLING;
@@ -399,13 +401,14 @@ bool toxav_call_control(ToxAV *av, uint32_t friend_number, TOXAV_CALL_CONTROL co
399{ 401{
400 pthread_mutex_lock(av->mutex); 402 pthread_mutex_lock(av->mutex);
401 TOXAV_ERR_CALL_CONTROL rc = TOXAV_ERR_CALL_CONTROL_OK; 403 TOXAV_ERR_CALL_CONTROL rc = TOXAV_ERR_CALL_CONTROL_OK;
404 ToxAVCall *call;
402 405
403 if (m_friend_exists(av->m, friend_number) == 0) { 406 if (m_friend_exists(av->m, friend_number) == 0) {
404 rc = TOXAV_ERR_CALL_CONTROL_FRIEND_NOT_FOUND; 407 rc = TOXAV_ERR_CALL_CONTROL_FRIEND_NOT_FOUND;
405 goto END; 408 goto END;
406 } 409 }
407 410
408 ToxAVCall *call = call_get(av, friend_number); 411 call = call_get(av, friend_number);
409 412
410 if (call == NULL || (!call->active && control != TOXAV_CALL_CONTROL_CANCEL)) { 413 if (call == NULL || (!call->active && control != TOXAV_CALL_CONTROL_CANCEL)) {
411 rc = TOXAV_ERR_CALL_CONTROL_FRIEND_NOT_IN_CALL; 414 rc = TOXAV_ERR_CALL_CONTROL_FRIEND_NOT_IN_CALL;
@@ -815,8 +818,8 @@ bool toxav_video_send_frame(ToxAV *av, uint32_t friend_number, uint16_t width, u
815 memcpy(img.planes[VPX_PLANE_U], u, (width / 2) * (height / 2)); 818 memcpy(img.planes[VPX_PLANE_U], u, (width / 2) * (height / 2));
816 memcpy(img.planes[VPX_PLANE_V], v, (width / 2) * (height / 2)); 819 memcpy(img.planes[VPX_PLANE_V], v, (width / 2) * (height / 2));
817 820
818 int vrc = vpx_codec_encode(call->video.second->encoder, &img, 821 vpx_codec_err_t vrc = vpx_codec_encode(call->video.second->encoder, &img,
819 call->video.second->frame_counter, 1, 0, MAX_ENCODE_TIME_US); 822 call->video.second->frame_counter, 1, 0, MAX_ENCODE_TIME_US);
820 823
821 vpx_img_free(&img); 824 vpx_img_free(&img);
822 825
@@ -836,7 +839,7 @@ bool toxav_video_send_frame(ToxAV *av, uint32_t friend_number, uint16_t width, u
836 839
837 while ((pkt = vpx_codec_get_cx_data(call->video.second->encoder, &iter))) { 840 while ((pkt = vpx_codec_get_cx_data(call->video.second->encoder, &iter))) {
838 if (pkt->kind == VPX_CODEC_CX_FRAME_PKT && 841 if (pkt->kind == VPX_CODEC_CX_FRAME_PKT &&
839 rtp_send_data(call->video.first, pkt->data.frame.buf, pkt->data.frame.sz) < 0) { 842 rtp_send_data(call->video.first, (const uint8_t *)pkt->data.frame.buf, pkt->data.frame.sz) < 0) {
840 843
841 pthread_mutex_unlock(call->mutex_video); 844 pthread_mutex_unlock(call->mutex_video);
842 LOGGER_WARNING(av->m->log, "Could not send video frame: %s\n", strerror(errno)); 845 LOGGER_WARNING(av->m->log, "Could not send video frame: %s\n", strerror(errno));
@@ -886,7 +889,7 @@ void callback_bwc(BWController *bwc, uint32_t friend_number, float loss, void *u
886 * The application may choose to disable video totally if the stream is too bad. 889 * The application may choose to disable video totally if the stream is too bad.
887 */ 890 */
888 891
889 ToxAVCall *call = user_data; 892 ToxAVCall *call = (ToxAVCall *)user_data;
890 assert(call); 893 assert(call);
891 894
892 LOGGER_DEBUG(call->av->m->log, "Reported loss of %f%%", loss * 100); 895 LOGGER_DEBUG(call->av->m->log, "Reported loss of %f%%", loss * 100);
@@ -917,7 +920,7 @@ void callback_bwc(BWController *bwc, uint32_t friend_number, float loss, void *u
917} 920}
918int callback_invite(void *toxav_inst, MSICall *call) 921int callback_invite(void *toxav_inst, MSICall *call)
919{ 922{
920 ToxAV *toxav = toxav_inst; 923 ToxAV *toxav = (ToxAV *)toxav_inst;
921 pthread_mutex_lock(toxav->mutex); 924 pthread_mutex_lock(toxav->mutex);
922 925
923 ToxAVCall *av_call = call_new(toxav, call->friend_number, NULL); 926 ToxAVCall *av_call = call_new(toxav, call->friend_number, NULL);
@@ -945,7 +948,7 @@ int callback_invite(void *toxav_inst, MSICall *call)
945} 948}
946int callback_start(void *toxav_inst, MSICall *call) 949int callback_start(void *toxav_inst, MSICall *call)
947{ 950{
948 ToxAV *toxav = toxav_inst; 951 ToxAV *toxav = (ToxAV *)toxav_inst;
949 pthread_mutex_lock(toxav->mutex); 952 pthread_mutex_lock(toxav->mutex);
950 953
951 ToxAVCall *av_call = call_get(toxav, call->friend_number); 954 ToxAVCall *av_call = call_get(toxav, call->friend_number);
@@ -973,14 +976,14 @@ int callback_start(void *toxav_inst, MSICall *call)
973} 976}
974int callback_end(void *toxav_inst, MSICall *call) 977int callback_end(void *toxav_inst, MSICall *call)
975{ 978{
976 ToxAV *toxav = toxav_inst; 979 ToxAV *toxav = (ToxAV *)toxav_inst;
977 pthread_mutex_lock(toxav->mutex); 980 pthread_mutex_lock(toxav->mutex);
978 981
979 invoke_call_state_callback(toxav, call->friend_number, TOXAV_FRIEND_CALL_STATE_FINISHED); 982 invoke_call_state_callback(toxav, call->friend_number, TOXAV_FRIEND_CALL_STATE_FINISHED);
980 983
981 if (call->av_call) { 984 if (call->av_call) {
982 call_kill_transmission(call->av_call); 985 call_kill_transmission((ToxAVCall *)call->av_call);
983 call_remove(call->av_call); 986 call_remove((ToxAVCall *)call->av_call);
984 } 987 }
985 988
986 pthread_mutex_unlock(toxav->mutex); 989 pthread_mutex_unlock(toxav->mutex);
@@ -988,14 +991,14 @@ int callback_end(void *toxav_inst, MSICall *call)
988} 991}
989int callback_error(void *toxav_inst, MSICall *call) 992int callback_error(void *toxav_inst, MSICall *call)
990{ 993{
991 ToxAV *toxav = toxav_inst; 994 ToxAV *toxav = (ToxAV *)toxav_inst;
992 pthread_mutex_lock(toxav->mutex); 995 pthread_mutex_lock(toxav->mutex);
993 996
994 invoke_call_state_callback(toxav, call->friend_number, TOXAV_FRIEND_CALL_STATE_ERROR); 997 invoke_call_state_callback(toxav, call->friend_number, TOXAV_FRIEND_CALL_STATE_ERROR);
995 998
996 if (call->av_call) { 999 if (call->av_call) {
997 call_kill_transmission(call->av_call); 1000 call_kill_transmission((ToxAVCall *)call->av_call);
998 call_remove(call->av_call); 1001 call_remove((ToxAVCall *)call->av_call);
999 } 1002 }
1000 1003
1001 pthread_mutex_unlock(toxav->mutex); 1004 pthread_mutex_unlock(toxav->mutex);
@@ -1003,7 +1006,7 @@ int callback_error(void *toxav_inst, MSICall *call)
1003} 1006}
1004int callback_capabilites(void *toxav_inst, MSICall *call) 1007int callback_capabilites(void *toxav_inst, MSICall *call)
1005{ 1008{
1006 ToxAV *toxav = toxav_inst; 1009 ToxAV *toxav = (ToxAV *)toxav_inst;
1007 pthread_mutex_lock(toxav->mutex); 1010 pthread_mutex_lock(toxav->mutex);
1008 1011
1009 if (call->peer_capabilities & msi_CapSAudio) { 1012 if (call->peer_capabilities & msi_CapSAudio) {
@@ -1068,7 +1071,7 @@ ToxAVCall *call_new(ToxAV *av, uint32_t friend_number, TOXAV_ERR_CALL *error)
1068 } 1071 }
1069 1072
1070 1073
1071 call = calloc(sizeof(ToxAVCall), 1); 1074 call = (ToxAVCall *)calloc(sizeof(ToxAVCall), 1);
1072 1075
1073 if (call == NULL) { 1076 if (call == NULL) {
1074 rc = TOXAV_ERR_CALL_MALLOC; 1077 rc = TOXAV_ERR_CALL_MALLOC;
@@ -1079,7 +1082,7 @@ ToxAVCall *call_new(ToxAV *av, uint32_t friend_number, TOXAV_ERR_CALL *error)
1079 call->friend_number = friend_number; 1082 call->friend_number = friend_number;
1080 1083
1081 if (av->calls == NULL) { /* Creating */ 1084 if (av->calls == NULL) { /* Creating */
1082 av->calls = calloc(sizeof(ToxAVCall *), friend_number + 1); 1085 av->calls = (ToxAVCall **)calloc(sizeof(ToxAVCall *), friend_number + 1);
1083 1086
1084 if (av->calls == NULL) { 1087 if (av->calls == NULL) {
1085 free(call); 1088 free(call);
@@ -1090,7 +1093,7 @@ ToxAVCall *call_new(ToxAV *av, uint32_t friend_number, TOXAV_ERR_CALL *error)
1090 1093
1091 av->calls_tail = av->calls_head = friend_number; 1094 av->calls_tail = av->calls_head = friend_number;
1092 } else if (av->calls_tail < friend_number) { /* Appending */ 1095 } else if (av->calls_tail < friend_number) { /* Appending */
1093 void *tmp = realloc(av->calls, sizeof(ToxAVCall *) * (friend_number + 1)); 1096 ToxAVCall **tmp = (ToxAVCall **)realloc(av->calls, sizeof(ToxAVCall *) * (friend_number + 1));
1094 1097
1095 if (tmp == NULL) { 1098 if (tmp == NULL) {
1096 free(call); 1099 free(call);