Browse Source

format_unit: Option to choose 3-digit integer display vs 5-character floating-point display

Luke Dashjr 12 years ago
parent
commit
494c42ba38
1 changed files with 16 additions and 7 deletions
  1. 16 7
      miner.c

+ 16 - 7
miner.c

@@ -2368,7 +2368,7 @@ enum h2bs_fmt {
 static const size_t h2bs_fmt_size[] = {6, 10, 11};
 
 static
-char *format_unit(char *buf, const char *measurement, enum h2bs_fmt fmt, float hashrate, signed char unitin)
+char *format_unit(char *buf, bool floatprec, const char *measurement, enum h2bs_fmt fmt, float hashrate, signed char unitin)
 {
 	unsigned char prec, i, unit;
 	if (unitin == -1)
@@ -2382,12 +2382,21 @@ char *format_unit(char *buf, const char *measurement, enum h2bs_fmt fmt, float h
 	for (i = 0; i < unit; ++i)
 		hashrate /= 1000;
 	
-	if (hashrate >= 100 || unit < 2)
-		prec = 1;
+	if (floatprec)
+	{
+		if (hashrate >= 100 || unit < 2)
+			prec = 1;
+		else
+			prec = 2;
+		sprintf(buf, "%5.*f", prec, hashrate);
+		i = 5;
+	}
 	else
-		prec = 2;
-	sprintf(buf, "%5.*f", prec, hashrate);
-	i = 5;
+	{
+		sprintf(buf, "%3d", (int)hashrate);
+		i = 3;
+	}
+	
 	switch (fmt) {
 	case H2B_SPACED:
 		buf[i++] = ' ';
@@ -2400,7 +2409,7 @@ char *format_unit(char *buf, const char *measurement, enum h2bs_fmt fmt, float h
 	
 	return buf;
 }
-#define hashrate_to_bufstr(buf, hashrate, unitin, fmt)  format_unit(buf, "h/s", fmt, hashrate, unitin)
+#define hashrate_to_bufstr(buf, hashrate, unitin, fmt)  format_unit(buf, true, "h/s", fmt, hashrate, unitin)
 
 static void
 ti_hashrate_bufstr(char**out, float current, float average, float sharebased, enum h2bs_fmt longfmt)