2006-04-10 20:40:38 +00:00
|
|
|
/* Do not edit this file. It was automatically generated. */
|
2006-03-04 18:16:49 +00:00
|
|
|
|
|
|
|
#ifndef HEADER_Meter
|
|
|
|
#define HEADER_Meter
|
|
|
|
/*
|
2006-06-06 20:28:42 +00:00
|
|
|
htop - Meter.h
|
2011-05-26 16:35:07 +00:00
|
|
|
(C) 2004-2011 Hisham H. Muhammad
|
2006-03-04 18:16:49 +00:00
|
|
|
Released under the GNU GPL, see the COPYING file
|
|
|
|
in the source distribution for its full text.
|
|
|
|
*/
|
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
#define METER_BUFFER_LEN 128
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2011-12-26 21:35:57 +00:00
|
|
|
#include "ListItem.h"
|
|
|
|
#include "ProcessList.h"
|
2006-03-04 18:16:49 +00:00
|
|
|
|
|
|
|
typedef struct Meter_ Meter;
|
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
typedef void(*Meter_Init)(Meter*);
|
|
|
|
typedef void(*Meter_Done)(Meter*);
|
|
|
|
typedef void(*Meter_UpdateMode)(Meter*, int);
|
2006-04-10 20:40:38 +00:00
|
|
|
typedef void(*Meter_SetValues)(Meter*, char*, int);
|
2006-03-04 18:16:49 +00:00
|
|
|
typedef void(*Meter_Draw)(Meter*, int, int, int);
|
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
typedef struct MeterClass_ {
|
|
|
|
ObjectClass super;
|
|
|
|
const Meter_Init init;
|
|
|
|
const Meter_Done done;
|
|
|
|
const Meter_UpdateMode updateMode;
|
|
|
|
const Meter_Draw draw;
|
|
|
|
const Meter_SetValues setValues;
|
|
|
|
const int defaultMode;
|
|
|
|
const double total;
|
|
|
|
const int* attributes;
|
2010-02-25 01:43:18 +00:00
|
|
|
const char* name;
|
|
|
|
const char* uiName;
|
|
|
|
const char* caption;
|
2014-01-16 03:40:47 +00:00
|
|
|
const char maxItems;
|
|
|
|
char curItems;
|
2012-12-05 15:12:20 +00:00
|
|
|
} MeterClass;
|
|
|
|
|
|
|
|
#define As_Meter(this_) ((MeterClass*)((this_)->super.klass))
|
|
|
|
#define Meter_initFn(this_) As_Meter(this_)->init
|
|
|
|
#define Meter_init(this_) As_Meter(this_)->init((Meter*)(this_))
|
|
|
|
#define Meter_done(this_) As_Meter(this_)->done((Meter*)(this_))
|
|
|
|
#define Meter_updateModeFn(this_) As_Meter(this_)->updateMode
|
|
|
|
#define Meter_updateMode(this_, m_) As_Meter(this_)->updateMode((Meter*)(this_), m_)
|
|
|
|
#define Meter_drawFn(this_) As_Meter(this_)->draw
|
|
|
|
#define Meter_doneFn(this_) As_Meter(this_)->done
|
|
|
|
#define Meter_setValues(this_, c_, i_) As_Meter(this_)->setValues((Meter*)(this_), c_, i_)
|
|
|
|
#define Meter_defaultMode(this_) As_Meter(this_)->defaultMode
|
2014-01-16 03:40:47 +00:00
|
|
|
#define Meter_getItems(this_) As_Meter(this_)->curItems
|
|
|
|
#define Meter_setItems(this_, n_) As_Meter(this_)->curItems = (n_)
|
2012-12-05 15:12:20 +00:00
|
|
|
#define Meter_attributes(this_) As_Meter(this_)->attributes
|
|
|
|
#define Meter_name(this_) As_Meter(this_)->name
|
|
|
|
#define Meter_uiName(this_) As_Meter(this_)->uiName
|
2006-04-10 20:40:38 +00:00
|
|
|
|
|
|
|
struct Meter_ {
|
|
|
|
Object super;
|
2012-12-05 15:12:20 +00:00
|
|
|
Meter_Draw draw;
|
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
char* caption;
|
|
|
|
int mode;
|
|
|
|
int param;
|
2011-03-22 20:37:08 +00:00
|
|
|
void* drawData;
|
2006-04-10 20:40:38 +00:00
|
|
|
int h;
|
|
|
|
ProcessList* pl;
|
2006-03-04 18:16:49 +00:00
|
|
|
double* values;
|
|
|
|
double total;
|
|
|
|
};
|
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
typedef struct MeterMode_ {
|
|
|
|
Meter_Draw draw;
|
|
|
|
const char* uiName;
|
|
|
|
int h;
|
|
|
|
} MeterMode;
|
2011-03-22 20:37:08 +00:00
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
typedef enum {
|
|
|
|
CUSTOM_METERMODE = 0,
|
|
|
|
BAR_METERMODE,
|
|
|
|
TEXT_METERMODE,
|
|
|
|
GRAPH_METERMODE,
|
|
|
|
LED_METERMODE,
|
|
|
|
LAST_METERMODE
|
|
|
|
} MeterModeId;
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
typedef struct GraphData_ {
|
|
|
|
struct timeval time;
|
|
|
|
double values[METER_BUFFER_LEN];
|
|
|
|
} GraphData;
|
|
|
|
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
#ifndef MIN
|
|
|
|
#define MIN(a,b) ((a)<(b)?(a):(b))
|
|
|
|
#endif
|
|
|
|
#ifndef MAX
|
|
|
|
#define MAX(a,b) ((a)>(b)?(a):(b))
|
|
|
|
#endif
|
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
extern MeterClass Meter_class;
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
extern MeterClass* Meter_types[];
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2012-12-05 15:12:20 +00:00
|
|
|
Meter* Meter_new(ProcessList* pl, int param, MeterClass* type);
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
void Meter_delete(Object* cast);
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2010-02-25 01:43:18 +00:00
|
|
|
void Meter_setCaption(Meter* this, const char* caption);
|
2006-03-04 18:16:49 +00:00
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
void Meter_setMode(Meter* this, int modeIndex);
|
2006-03-04 18:16:49 +00:00
|
|
|
|
|
|
|
ListItem* Meter_toListItem(Meter* this);
|
|
|
|
|
2006-04-10 20:40:38 +00:00
|
|
|
/* ---------- TextMeterMode ---------- */
|
|
|
|
|
|
|
|
/* ---------- BarMeterMode ---------- */
|
|
|
|
|
|
|
|
/* ---------- GraphMeterMode ---------- */
|
|
|
|
|
|
|
|
#define DrawDot(a,y,c) do { attrset(a); mvaddch(y, x+k, c); } while(0)
|
|
|
|
|
|
|
|
/* ---------- LEDMeterMode ---------- */
|
|
|
|
|
2008-03-09 08:58:38 +00:00
|
|
|
extern MeterMode* Meter_modes[];
|
|
|
|
|
2006-03-04 18:16:49 +00:00
|
|
|
#endif
|