CVSROOT:        /cvs/gnome
Module name:    ekiga
Changes by:     jschamp 06/09/10 08:57:42

Modified files:
        src/gui        : main.cpp 
        .              : ChangeLog 

Log message:
--- ekiga/src/gui/main.cpp      2006-09-09 20:06:05.000000000 +0200
+++ ekiga-jan/src/gui/main.cpp  2006-09-10 14:21:08.000000000 +0200
@@ -4491,7 +4491,8 @@
g_return_if_fail (mw != NULL);

gm_main_window_update_stats (main_window, 0, 0, 0, 0, 0, 0, 0, 0);
-  gm_powermeter_set_level (GM_POWERMETER (mw->qualitymeter), 0.0);
+  if (mw->qualitymeter)
+    gm_powermeter_set_level (GM_POWERMETER (mw->qualitymeter), 0.0);
stats_drawing_area_clear (mw->stats_drawing_area);
}

@@ -4510,6 +4511,7 @@
GmWindow *mw = NULL;

gchar *stats_msg = NULL;
+  int jitter_quality = 0;
gfloat quality_level = 0.0;

@@ -4531,8 +4533,23 @@
new_audio_octets_transmitted);

/* "arithmetics" for the quality level */
-  /* FIXME: we need a proper arithmetic to do that */
-  quality_level = 1.0 - ((1.0 / 500) * jitter);
+  /* Thanks Snark for the math hints */
+  if (jitter < 30)
+    jitter_quality = 100;
+  if (jitter >= 30 && jitter < 50)
+    jitter_quality = 100 - (jitter - 30);
+  if (jitter >= 50 && jitter < 100)
+    jitter_quality = 80 - (jitter - 50) * 20 / 50;
+  if (jitter >= 100 && jitter < 150)
+    jitter_quality = 60 - (jitter - 100) * 20 / 50;
+  if (jitter >= 150 && jitter < 200)
+    jitter_quality = 40 - (jitter - 150) * 20 / 50;
+  if (jitter >= 200 && jitter < 300)
+    jitter_quality = 20 - (jitter - 200) * 20 / 100;
+  if (jitter >= 300 || jitter_quality < 0)
+    jitter_quality = 0;
+
+  quality_level = (float) jitter_quality / 100;

if ( (lost < 0.02 && lost != 0.0) ||
(late < 0.02 && late != 0.0) ||

URL : 
http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=ekiga&who=jschamp&date=explicit&mindate=2006-09-10%2008:56&maxdate=2006-09-10%2008:58

_______________________________________________
cvs-commits-list mailing list
cvs-commits-list@gnome.org
http://mail.gnome.org/mailman/listinfo/cvs-commits-list

Reply via email to