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);
+}
+