aboutsummaryrefslogtreecommitdiffstats
path: root/SwapMeter.c
diff options
context:
space:
mode:
Diffstat (limited to 'SwapMeter.c')
-rw-r--r--SwapMeter.c41
1 files changed, 28 insertions, 13 deletions
diff --git a/SwapMeter.c b/SwapMeter.c
index ecbd129..2cb86d5 100644
--- a/SwapMeter.c
+++ b/SwapMeter.c
@@ -1,52 +1,67 @@
/*
-htop
-(C) 2004-2010 Hisham H. Muhammad
+htop - SwapMeter.c
+(C) 2004-2011 Hisham H. Muhammad
Released under the GNU GPL, see the COPYING file
in the source distribution for its full text.
*/
#include "SwapMeter.h"
-#include "Meter.h"
+#include "CRT.h"
#include "ProcessList.h"
#include <stdlib.h>
-#include <curses.h>
#include <string.h>
#include <math.h>
#include <sys/param.h>
-
-#include "debug.h"
#include <assert.h>
+/*{
+#include "Meter.h"
+}*/
+
+#define KILOBYTE 1
+#define MEGABYTE 1024
+#define GIGABYTE 1048576
+
int SwapMeter_attributes[] = {
SWAP
};
+/* NOTE: Value is in kilobytes */
+static void SwapMeter_humanNumber(char* buffer, const long int* value) {
+ sprintf(buffer, "%ldM ", *value / MEGABYTE);
+}
+
static void SwapMeter_setValues(Meter* this, char* buffer, int len) {
long int usedSwap = this->pl->usedSwap;
this->total = this->pl->totalSwap;
this->values[0] = usedSwap;
- snprintf(buffer, len, "%ld/%ldMB", (long int) usedSwap / 1024, (long int) this->total / 1024);
+
+ snprintf(buffer, len, "%ld/%ldMB", (long int) usedSwap / MEGABYTE, (long int) this->total / MEGABYTE);
}
static void SwapMeter_display(Object* cast, RichString* out) {
char buffer[50];
Meter* this = (Meter*)cast;
long int swap = (long int) this->values[0];
+ long int total = (long int) this->total;
RichString_write(out, CRT_colors[METER_TEXT], ":");
- sprintf(buffer, "%ldM ", (long int) this->total / 1024);
+ SwapMeter_humanNumber(buffer, &total);
RichString_append(out, CRT_colors[METER_VALUE], buffer);
- sprintf(buffer, "%ldk", swap);
+ SwapMeter_humanNumber(buffer, &swap);
RichString_append(out, CRT_colors[METER_TEXT], "used:");
RichString_append(out, CRT_colors[METER_VALUE], buffer);
}
-MeterType SwapMeter = {
+MeterClass SwapMeter_class = {
+ .super = {
+ .extends = Class(Meter),
+ .delete = Meter_delete,
+ .display = SwapMeter_display,
+ },
.setValues = SwapMeter_setValues,
- .display = SwapMeter_display,
- .mode = BAR_METERMODE,
- .items = 1,
+ .defaultMode = BAR_METERMODE,
.total = 100.0,
.attributes = SwapMeter_attributes,
.name = "Swap",