diff options
Diffstat (limited to 'SwapMeter.c')
-rw-r--r-- | SwapMeter.c | 41 |
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", |