summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--auto_tests/conference_av_test.c6
-rw-r--r--toxav/groupav.c7
-rw-r--r--toxav/groupav.h4
-rw-r--r--toxav/toxav.h4
-rw-r--r--toxav/toxav_old.c9
5 files changed, 30 insertions, 0 deletions
diff --git a/auto_tests/conference_av_test.c b/auto_tests/conference_av_test.c
index 6d701751..d76e0f24 100644
--- a/auto_tests/conference_av_test.c
+++ b/auto_tests/conference_av_test.c
@@ -352,8 +352,12 @@ static void run_conference_tests(Tox **toxes, State *state)
352 352
353 for (uint32_t i = 0; i < NUM_AV_GROUP_TOX; ++i) { 353 for (uint32_t i = 0; i < NUM_AV_GROUP_TOX; ++i) {
354 if (restarting[i]) { 354 if (restarting[i]) {
355 ck_assert_msg(!toxav_groupchat_av_enabled(toxes[i], 0),
356 "#%u restarted but av enabled", state[i].index);
355 ck_assert_msg(toxav_groupchat_enable_av(toxes[i], 0, audio_callback, &state[i]) == 0, 357 ck_assert_msg(toxav_groupchat_enable_av(toxes[i], 0, audio_callback, &state[i]) == 0,
356 "#%u failed to re-enable av", state[i].index); 358 "#%u failed to re-enable av", state[i].index);
359 ck_assert_msg(toxav_groupchat_av_enabled(toxes[i], 0),
360 "#%u av not enabled even after enabling", state[i].index);
357 } 361 }
358 } 362 }
359 363
@@ -393,6 +397,8 @@ static void run_conference_tests(Tox **toxes, State *state)
393 disabled[i] = false; 397 disabled[i] = false;
394 ck_assert_msg(toxav_groupchat_disable_av(toxes[i], 0) != 0, 398 ck_assert_msg(toxav_groupchat_disable_av(toxes[i], 0) != 0,
395 "#%u could disable already disabled av!", state[i].index); 399 "#%u could disable already disabled av!", state[i].index);
400 ck_assert_msg(!toxav_groupchat_av_enabled(toxes[i], 0),
401 "#%u av enabled after disabling", state[i].index);
396 ck_assert_msg(toxav_groupchat_enable_av(toxes[i], 0, audio_callback, &state[i]) == 0, 402 ck_assert_msg(toxav_groupchat_enable_av(toxes[i], 0, audio_callback, &state[i]) == 0,
397 "#%u failed to re-enable av", state[i].index); 403 "#%u failed to re-enable av", state[i].index);
398 } 404 }
diff --git a/toxav/groupav.c b/toxav/groupav.c
index f49848de..891b35e6 100644
--- a/toxav/groupav.c
+++ b/toxav/groupav.c
@@ -506,6 +506,13 @@ int groupchat_disable_av(Group_Chats *g_c, uint32_t groupnumber)
506 return 0; 506 return 0;
507} 507}
508 508
509/* Return whether A/V is enabled in the groupchat.
510 */
511bool groupchat_av_enabled(Group_Chats *g_c, uint32_t groupnumber)
512{
513 return group_get_object(g_c, groupnumber) != nullptr;
514}
515
509/* Create a new toxav group. 516/* Create a new toxav group.
510 * 517 *
511 * return group number on success. 518 * return group number on success.
diff --git a/toxav/groupav.h b/toxav/groupav.h
index 45ff1d60..9d5351a4 100644
--- a/toxav/groupav.h
+++ b/toxav/groupav.h
@@ -74,4 +74,8 @@ int groupchat_enable_av(const Logger *log, Tox *tox, Group_Chats *g_c, uint32_t
74 */ 74 */
75int groupchat_disable_av(Group_Chats *g_c, uint32_t groupnumber); 75int groupchat_disable_av(Group_Chats *g_c, uint32_t groupnumber);
76 76
77/* Return whether A/V is enabled in the groupchat.
78 */
79bool groupchat_av_enabled(Group_Chats *g_c, uint32_t groupnumber);
80
77#endif // C_TOXCORE_TOXAV_GROUPAV_H 81#endif // C_TOXCORE_TOXAV_GROUPAV_H
diff --git a/toxav/toxav.h b/toxav/toxav.h
index 6c1ea093..5d4f3bd3 100644
--- a/toxav/toxav.h
+++ b/toxav/toxav.h
@@ -803,6 +803,10 @@ int toxav_groupchat_enable_av(Tox *tox, uint32_t groupnumber,
803 */ 803 */
804int toxav_groupchat_disable_av(Tox *tox, uint32_t groupnumber); 804int toxav_groupchat_disable_av(Tox *tox, uint32_t groupnumber);
805 805
806/* Return whether A/V is enabled in the groupchat.
807 */
808bool toxav_groupchat_av_enabled(Tox *tox, uint32_t groupnumber);
809
806#ifdef __cplusplus 810#ifdef __cplusplus
807} 811}
808#endif 812#endif
diff --git a/toxav/toxav_old.c b/toxav/toxav_old.c
index af9980b0..0ae9231d 100644
--- a/toxav/toxav_old.c
+++ b/toxav/toxav_old.c
@@ -109,3 +109,12 @@ int toxav_groupchat_disable_av(Tox *tox, uint32_t groupnumber)
109 Messenger *m = *(Messenger **)tox; 109 Messenger *m = *(Messenger **)tox;
110 return groupchat_disable_av(m->conferences_object, groupnumber); 110 return groupchat_disable_av(m->conferences_object, groupnumber);
111} 111}
112
113/* Return whether A/V is enabled in the groupchat.
114 */
115bool toxav_groupchat_av_enabled(Tox *tox, uint32_t groupnumber)
116{
117 // TODO(iphydf): Don't rely on toxcore internals.
118 Messenger *m = *(Messenger **)tox;
119 return groupchat_av_enabled(m->conferences_object, groupnumber);
120}