/* Free everything related with group chats. */ void kill_groupchats(Group_Chats *g_c) { unsigned int i; for (i = 0; i < g_c->num_chats; ++i) { del_groupchat(g_c, i); } m_callback_group_invite(g_c->m, NULL); g_c->m->group_chat_object = 0; free(g_c); }
/* Create a new toxav group. * * return group number on success. * return -1 on failure. */ int add_av_groupchat(Group_Chats *g_c, void (*audio_callback)(Messenger *, int, int, const int16_t *, unsigned int, uint8_t, unsigned int, void *), void *userdata) { int groupnumber = add_groupchat(g_c, GROUPCHAT_TYPE_AV); if (groupnumber == -1) { return -1; } if (groupchat_enable_av(g_c, groupnumber, audio_callback, userdata) == -1) { del_groupchat(g_c, groupnumber); return -1; } return groupnumber; }
/* Join a AV group (you need to have been invited first.) * * returns group number on success * returns -1 on failure. */ int join_av_groupchat(Group_Chats *g_c, int32_t friendnumber, const uint8_t *data, uint16_t length, void (*audio_callback)(Messenger *, int, int, const int16_t *, unsigned int, uint8_t, unsigned int, void *), void *userdata) { int groupnumber = join_groupchat(g_c, friendnumber, GROUPCHAT_TYPE_AV, data, length); if (groupnumber == -1) { return -1; } if (groupchat_enable_av(g_c, groupnumber, audio_callback, userdata) == -1) { del_groupchat(g_c, groupnumber); return -1; } return groupnumber; }
/* Delete a groupchat from the chats array. * * return 0 on success. * return -1 if failure. */ int tox_del_groupchat(void *tox, int groupnumber) { Messenger *m = tox; return del_groupchat(m, groupnumber); }
/* Delete a groupchat from the chats array. * * return 0 on success. * return -1 if failure. */ int tox_del_groupchat(Tox *tox, int groupnumber) { Messenger *m = tox; return del_groupchat(m->group_chat_object, groupnumber); }