From d9142eb355551a4aa94cad37ce534ceaf6429b0b Mon Sep 17 00:00:00 2001 From: Jfreegman Date: Fri, 21 Feb 2014 00:45:29 -0500 Subject: [PATCH] restructure main toxic loop --- src/main.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main.c b/src/main.c index b8b3d47..2f1515e 100644 --- a/src/main.c +++ b/src/main.c @@ -232,7 +232,7 @@ int init_connection(Tox *m) return 5; } -static void do_tox(Tox *m, ToxWindow *prompt) +static void do_connection(Tox *m, ToxWindow *prompt) { static int conn_try = 0; static int conn_err = 0; @@ -258,8 +258,6 @@ static void do_tox(Tox *m, ToxWindow *prompt) prep_prompt_win(); wprintw(prompt->window, "\nDHT disconnected. Attempting to reconnect.\n"); } - - tox_do(m); } int f_loadfromfile; @@ -405,8 +403,6 @@ static void do_file_senders(Tox *m) continue; } - int pieces = 0; - while (true) { if (tox_file_send_data(m, friendnum, filenum, file_senders[i].nextpiece, file_senders[i].piecelen) == -1) @@ -432,21 +428,17 @@ static void do_file_senders(Tox *m) } } -/* This should only be called on exit */ -static void close_file_transfers(Tox *m) +void exit_toxic(Tox *m) { + store_data(m, DATA_FILE); + int i; for (i = 0; i < max_file_senders_index; ++i) { if (file_senders[i].active) fclose(file_senders[i].file); } -} -void exit_toxic(Tox *m) -{ - store_data(m, DATA_FILE); - close_file_transfers(m); free(DATA_FILE); free(SRVLIST_FILE); free(prompt->stb); @@ -456,6 +448,16 @@ void exit_toxic(Tox *m) exit(EXIT_SUCCESS); } +static void do_toxic(Tox *m, ToxWindow *prompt) +{ + do_connection(m, prompt); + do_file_senders(m); + draw_active_window(m); + + /* main toxcore loop */ + tox_do(m); +} + int main(int argc, char *argv[]) { char *user_config_dir = get_user_config_dir(); @@ -549,12 +551,8 @@ int main(int argc, char *argv[]) prompt_init_statusbar(prompt, m); sort_friendlist_index(m); - while (true) { - do_tox(m, prompt); - do_file_senders(m); - draw_active_window(m); - } + while (true) + do_toxic(m, prompt); - exit_toxic(m); return 0; }