Mercurial > gftp.yaz
diff src/text/textui.c @ 377:14da115b149b
2003-1-23 Brian Masney <masneyb@gftp.org>
* src/text/gftp-text.c src/uicommon/gftpui.c - added file transfer
functions to the command line.
* src/uicommon/gftpui_transfer.c src/uicommon/gftpui.h src/text/textui.c
src/gtk/gtkui_transfer.c - added
gftpui_{start,update,finish}_current_file_in_transfer() functions
that will be called throughout the lifetime of a file transfer.
Also, gftpui_start_transfer() that will be called whenever a file
transfer is created
* src/uicommon/gftpui.h src/uicommon/gftpui.c src/gtk/gftp-gtk.c
src/gtk/transfer.c - added other_uidata and other_request arguments
to all of the command line functions
* lib/protocols.c lib/gftp.h - set the filespec argument to
gftp_get_next_file to be a constant
* lib/gftp.h - added tot_file_trans variable to gftp_transfer struct
author | masneyb |
---|---|
date | Sat, 24 Jan 2004 11:45:11 +0000 |
parents | d5409bf03ff1 |
children | 712d3810f4e1 |
line wrap: on
line diff
--- a/src/text/textui.c Fri Jan 23 17:17:51 2004 +0000 +++ b/src/text/textui.c Sat Jan 24 11:45:11 2004 +0000 @@ -83,7 +83,7 @@ void gftpui_add_file_to_transfer (gftp_transfer * tdata, GList * curfle, - char *filepos ) + char *filepos ) { /* FIXME */ } @@ -95,3 +95,62 @@ /* FIXME */ } + +static void +_gftpui_text_print_status (gftp_transfer * tdata) +{ + static int progress_pos = 0; + char *progress = "|/-\\"; + int sw, tot, i; + + printf ("\r%c [", progress[progress_pos++]); + + if (progress[progress_pos] == '\0') + progress_pos = 0; + + sw = gftp_text_get_win_size () - 20; + tot = (float) tdata->curtrans / (float) tdata->tot_file_trans * (float) sw; + + if (tot > sw) + tot = sw; + + for (i=0; i<tot; i++) + printf ("="); + + for (i=0; i<sw-tot; i++) + printf (" "); + + printf ("] @ %.2fKB/s", tdata->kbs); + + fflush (stdout); +} + + +void +gftpui_start_current_file_in_transfer (gftp_transfer * tdata) +{ + _gftpui_text_print_status (tdata); +} + + +void +gftpui_update_current_file_in_transfer (gftp_transfer * tdata) +{ + _gftpui_text_print_status (tdata); +} + + +void +gftpui_finish_current_file_in_transfer (gftp_transfer * tdata) +{ + _gftpui_text_print_status (tdata); + printf ("\n"); +} + + +void +gftpui_start_transfer (gftp_transfer * tdata) +{ + gftpui_common_transfer_files (tdata); +} +