int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum, uint8_t type) { if (groupnum > MAX_GROUPCHAT_NUM) return -1; ToxWindow self = new_group_chat(m, groupnum); int i; for (i = 0; i <= max_groupchat_index; ++i) { if (!groupchats[i].active) { groupchats[i].chatwin = add_window(m, self); groupchats[i].active = true; groupchats[i].num_peers = 0; groupchats[i].type = type; groupchats[i].start_time = get_unix_time(); groupchats[i].peer_names = malloc(sizeof(uint8_t) * TOX_MAX_NAME_LENGTH); groupchats[i].oldpeer_names = malloc(sizeof(uint8_t) * TOX_MAX_NAME_LENGTH); groupchats[i].peer_name_lengths = malloc(sizeof(uint16_t)); groupchats[i].oldpeer_name_lengths = malloc(sizeof(uint16_t)); if (groupchats[i].peer_names == NULL || groupchats[i].oldpeer_names == NULL || groupchats[i].peer_name_lengths == NULL || groupchats[i].oldpeer_name_lengths == NULL) exit_toxic_err("failed in init_groupchat_win", FATALERR_MEMORY); memcpy(&groupchats[i].oldpeer_names[0], UNKNOWN_NAME, sizeof(UNKNOWN_NAME)); groupchats[i].oldpeer_name_lengths[0] = (uint16_t) strlen(UNKNOWN_NAME); #ifdef AUDIO if (type == TOX_GROUPCHAT_TYPE_AV) { if (group_audio_open_out_device(i) != 0) fprintf(stderr, "audio failed\n"); } #endif /* AUDIO */ set_active_window(groupchats[i].chatwin); if (i == max_groupchat_index) ++max_groupchat_index; return 0; } } return -1; }
int init_groupchat_win(ToxWindow *prompt, Tox *m, int groupnum) { int i; for (i = 0; i <= group_chat_index; ++i) { if (!groupchats[i].active) { groupchats[i].chatwin = add_window(m, new_group_chat(m, prompt, groupnum)); groupchats[i].active = true; set_active_window(groupchats[i].chatwin); if (i == group_chat_index) ++group_chat_index; return 0; } } return -1; }