summaryrefslogtreecommitdiff
path: root/toxav/groupav.c
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2018-08-11 14:11:55 +0000
committeriphydf <iphydf@users.noreply.github.com>2018-08-13 22:11:48 +0000
commit2d84681529161fd6add331286483ec58c034ba45 (patch)
tree3c70c1cd84371637856b567e28719b0e889757a2 /toxav/groupav.c
parentb77e407b6fe4800eb9c7abce405f804429884643 (diff)
Fix ToxAv's use of `struct Tox`.
* Fix `toxav_get_tox` to return tox, not messenger. * Fix the casts from Tox* to Messenger* in toxav_old.c. * Pass Tox instead of Messenger to public group AV callbacks.
Diffstat (limited to 'toxav/groupav.c')
-rw-r--r--toxav/groupav.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/toxav/groupav.c b/toxav/groupav.c
index 091f1255..b10a7f8e 100644
--- a/toxav/groupav.c
+++ b/toxav/groupav.c
@@ -163,6 +163,7 @@ static Group_Audio_Packet *dequeue(Group_JitterBuffer *q, int *success)
163 163
164typedef struct Group_AV { 164typedef struct Group_AV {
165 const Logger *log; 165 const Logger *log;
166 Tox *tox;
166 Group_Chats *g_c; 167 Group_Chats *g_c;
167 OpusEncoder *audio_encoder; 168 OpusEncoder *audio_encoder;
168 169
@@ -231,7 +232,8 @@ static int recreate_encoder(Group_AV *group_av)
231 return 0; 232 return 0;
232} 233}
233 234
234static Group_AV *new_group_av(const Logger *log, Group_Chats *g_c, audio_data_cb *audio_callback, void *userdata) 235static Group_AV *new_group_av(const Logger *log, Tox *tox, Group_Chats *g_c, audio_data_cb *audio_callback,
236 void *userdata)
235{ 237{
236 if (!g_c) { 238 if (!g_c) {
237 return nullptr; 239 return nullptr;
@@ -244,6 +246,7 @@ static Group_AV *new_group_av(const Logger *log, Group_Chats *g_c, audio_data_cb
244 } 246 }
245 247
246 group_av->log = log; 248 group_av->log = log;
249 group_av->tox = tox;
247 group_av->g_c = g_c; 250 group_av->g_c = g_c;
248 251
249 group_av->audio_data = audio_callback; 252 group_av->audio_data = audio_callback;
@@ -386,7 +389,7 @@ static int decode_audio_packet(Group_AV *group_av, Group_Peer_AV *peer_av, uint3
386 if (out_audio) { 389 if (out_audio) {
387 390
388 if (group_av->audio_data) { 391 if (group_av->audio_data) {
389 group_av->audio_data(group_av->g_c->m, groupnumber, friendgroupnumber, out_audio, out_audio_samples, 392 group_av->audio_data(group_av->tox, groupnumber, friendgroupnumber, out_audio, out_audio_samples,
390 peer_av->decoder_channels, sample_rate, group_av->userdata); 393 peer_av->decoder_channels, sample_rate, group_av->userdata);
391 } 394 }
392 395
@@ -433,10 +436,10 @@ static int handle_group_audio_packet(void *object, uint32_t groupnumber, uint32_
433 * return 0 on success. 436 * return 0 on success.
434 * return -1 on failure. 437 * return -1 on failure.
435 */ 438 */
436static int groupchat_enable_av(const Logger *log, Group_Chats *g_c, uint32_t groupnumber, 439static int groupchat_enable_av(const Logger *log, Tox *tox, Group_Chats *g_c, uint32_t groupnumber,
437 audio_data_cb *audio_callback, void *userdata) 440 audio_data_cb *audio_callback, void *userdata)
438{ 441{
439 Group_AV *group_av = new_group_av(log, g_c, audio_callback, userdata); 442 Group_AV *group_av = new_group_av(log, tox, g_c, audio_callback, userdata);
440 443
441 if (group_av == nullptr) { 444 if (group_av == nullptr) {
442 return -1; 445 return -1;
@@ -459,7 +462,7 @@ static int groupchat_enable_av(const Logger *log, Group_Chats *g_c, uint32_t gro
459 * return group number on success. 462 * return group number on success.
460 * return -1 on failure. 463 * return -1 on failure.
461 */ 464 */
462int add_av_groupchat(const Logger *log, Group_Chats *g_c, audio_data_cb *audio_callback, void *userdata) 465int add_av_groupchat(const Logger *log, Tox *tox, Group_Chats *g_c, audio_data_cb *audio_callback, void *userdata)
463{ 466{
464 int groupnumber = add_groupchat(g_c, GROUPCHAT_TYPE_AV); 467 int groupnumber = add_groupchat(g_c, GROUPCHAT_TYPE_AV);
465 468
@@ -467,7 +470,7 @@ int add_av_groupchat(const Logger *log, Group_Chats *g_c, audio_data_cb *audio_c
467 return -1; 470 return -1;
468 } 471 }
469 472
470 if (groupchat_enable_av(log, g_c, groupnumber, audio_callback, userdata) == -1) { 473 if (groupchat_enable_av(log, tox, g_c, groupnumber, audio_callback, userdata) == -1) {
471 del_groupchat(g_c, groupnumber); 474 del_groupchat(g_c, groupnumber);
472 return -1; 475 return -1;
473 } 476 }
@@ -480,8 +483,8 @@ int add_av_groupchat(const Logger *log, Group_Chats *g_c, audio_data_cb *audio_c
480 * returns group number on success 483 * returns group number on success
481 * returns -1 on failure. 484 * returns -1 on failure.
482 */ 485 */
483int join_av_groupchat(const Logger *log, Group_Chats *g_c, uint32_t friendnumber, const uint8_t *data, uint16_t length, 486int join_av_groupchat(const Logger *log, Tox *tox, Group_Chats *g_c, uint32_t friendnumber, const uint8_t *data,
484 audio_data_cb *audio_callback, void *userdata) 487 uint16_t length, audio_data_cb *audio_callback, void *userdata)
485{ 488{
486 int groupnumber = join_groupchat(g_c, friendnumber, GROUPCHAT_TYPE_AV, data, length); 489 int groupnumber = join_groupchat(g_c, friendnumber, GROUPCHAT_TYPE_AV, data, length);
487 490
@@ -489,7 +492,7 @@ int join_av_groupchat(const Logger *log, Group_Chats *g_c, uint32_t friendnumber
489 return -1; 492 return -1;
490 } 493 }
491 494
492 if (groupchat_enable_av(log, g_c, groupnumber, audio_callback, userdata) == -1) { 495 if (groupchat_enable_av(log, tox, g_c, groupnumber, audio_callback, userdata) == -1) {
493 del_groupchat(g_c, groupnumber); 496 del_groupchat(g_c, groupnumber);
494 return -1; 497 return -1;
495 } 498 }