1
0
mirror of https://github.com/Llewellynvdm/conky.git synced 2024-11-17 10:35:10 +00:00

net graph stuff is broken still, but all else should work

git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky@27 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
Brenden Matthews 2005-07-29 04:32:56 +00:00
parent 093878ac03
commit 1e5181ce85

58
conky.c
View File

@ -223,8 +223,10 @@ static struct special_t {
short height; short height;
short width; short width;
long arg; long arg;
unsigned int *graph; double *graph;
double graph_scale;
int graph_width; int graph_width;
int scaled;
} specials[128]; } specials[128];
static int special_count; static int special_count;
@ -244,7 +246,8 @@ static struct special_t *new_special(char *buf, int t)
specials[special_count].graph_width = specials[special_count].height; specials[special_count].graph_width = specials[special_count].height;
else else
specials[special_count].graph_width = MAX_GRAPH_DEPTH; specials[special_count].graph_width = MAX_GRAPH_DEPTH;
specials[special_count].graph = calloc(specials[special_count].graph_width, sizeof(long)); specials[special_count].graph = calloc(specials[special_count].graph_width, sizeof(double));
specials[special_count].graph_scale = 100;
} }
specials[special_count].type = t; specials[special_count].type = t;
return &specials[special_count++]; return &specials[special_count++];
@ -302,20 +305,33 @@ static const char *scan_bar(const char *args, int *w, int *h)
return args; return args;
} }
void graph_append(unsigned int *graph, long width, unsigned int f) { inline void graph_append(struct special_t *graph, double f) {
int i; int i;
for (i=0;i<width-1;i++) { if (graph->scaled) {
graph[i] = graph[i+1]; graph->graph_scale = 0;
} }
graph[width-1] = f; for (i=0;i<graph->graph_width-1;i++) {
graph->graph[i] = graph->graph[i+1];
if (graph->scaled && graph->graph[i] > graph->graph_scale) {
graph->graph_scale = graph->graph[i];
}
}
graph->graph[graph->graph_width-1] = f;
} }
static void new_graph(char *buf, int w, int h, unsigned int i) static void new_graph(char *buf, int w, int h, double i, int scaled)
{ {
struct special_t *s = new_special(buf, GRAPH); struct special_t *s = new_special(buf, GRAPH);
s->width = w; s->width = w;
s->height = h; s->height = h;
graph_append(s->graph, s->graph_width, i); s->scaled = scaled;
if (scaled) {
s->graph_scale = 0;
}
else {
s->graph_scale = 100;
}
graph_append(s, i);
} }
static const char *scan_graph(const char *args, int *w, int *h) static const char *scan_graph(const char *args, int *w, int *h)
@ -725,8 +741,9 @@ static void construct_text_object(const char *s, const char *arg)
arg ? get_x11_color(arg) : default_fg_color; arg ? get_x11_color(arg) : default_fg_color;
END OBJ(downspeed, INFO_NET) obj->data.net = get_net_stat(arg); END OBJ(downspeed, INFO_NET) obj->data.net = get_net_stat(arg);
END OBJ(downspeedf, INFO_NET) obj->data.net = get_net_stat(arg); END OBJ(downspeedf, INFO_NET) obj->data.net = get_net_stat(arg);
END OBJ(downspeedgraph, INFO_CPU) END OBJ(downspeedgraph, INFO_NET)
(void) scan_graph(arg, &obj->data.pair.a, &obj->data.pair.b); obj->data.net = get_net_stat(arg);
(void) scan_graph("", &obj->data.pair.a, &obj->data.pair.b);
END OBJ(else, 0) END OBJ(else, 0)
if (blockdepth) { if (blockdepth) {
text_objects[blockstart[blockdepth - 1] - text_objects[blockstart[blockdepth - 1] -
@ -1103,7 +1120,7 @@ static void construct_text_object(const char *s, const char *arg)
obj->data.i = arg ? atoi(arg) : 1; obj->data.i = arg ? atoi(arg) : 1;
END OBJ(upspeed, INFO_NET) obj->data.net = get_net_stat(arg); END OBJ(upspeed, INFO_NET) obj->data.net = get_net_stat(arg);
END OBJ(upspeedf, INFO_NET) obj->data.net = get_net_stat(arg); END OBJ(upspeedf, INFO_NET) obj->data.net = get_net_stat(arg);
END OBJ(upspeedgraph, INFO_CPU) END OBJ(upspeedgraph, INFO_NET)
(void) scan_graph(arg, &obj->data.pair.a, &obj->data.pair.b); (void) scan_graph(arg, &obj->data.pair.a, &obj->data.pair.b);
END OBJ(uptime_short, INFO_UPTIME) END OBJ(uptime, INFO_UPTIME) END END OBJ(uptime_short, INFO_UPTIME) END OBJ(uptime, INFO_UPTIME) END
OBJ(adt746xcpu, 0) END OBJ(adt746xfan, 0) END OBJ(adt746xcpu, 0) END OBJ(adt746xfan, 0) END
@ -1356,17 +1373,18 @@ static void generate_text()
OBJ(cpugraph) { OBJ(cpugraph) {
new_graph(p, obj->data.pair.a, new_graph(p, obj->data.pair.a,
obj->data.pair.b, obj->data.pair.b,
(unsigned int) (cur->cpu_usage * 100)); (unsigned int) (cur->cpu_usage * 100), 0);
} }
OBJ(color) { OBJ(color) {
new_fg(p, obj->data.l); new_fg(p, obj->data.l);
} }
OBJ(downspeed) { OBJ(downspeed) {
if (!use_spacer) if (!use_spacer) {
snprintf(p, n, "%d", snprintf(p, n, "%d",
(int) (obj->data.net-> (int) (obj->data.net->
recv_speed / recv_speed /
1024)); 1024));
}
else else
snprintf(p, 6, "%d ", snprintf(p, 6, "%d ",
(int) (obj->data.net-> (int) (obj->data.net->
@ -1384,9 +1402,8 @@ static void generate_text()
recv_speed / 1024.0); recv_speed / 1024.0);
} }
OBJ(downspeedgraph) { OBJ(downspeedgraph) {
new_graph(p, obj->data.pair.a, CRIT_ERR("the net graph stuff is broken right now. don't use it.");
obj->data.pair.b, new_graph(p, obj->data.pair.a, obj->data.pair.b, (obj->data.net->recv_speed / 1024.0), 1);
(unsigned int) (obj->data.net->recv_speed / 1024.0));
} }
OBJ(else) { OBJ(else) {
if (!if_jumped) { if (!if_jumped) {
@ -1484,7 +1501,7 @@ static void generate_text()
ERR("your execgraph value is not between 0 and 100, therefore it will be ignored"); ERR("your execgraph value is not between 0 and 100, therefore it will be ignored");
} else { } else {
new_graph(p, 0, new_graph(p, 0,
25, (int) (barnum)); 25, (int) (barnum), 0);
} }
} }
@ -1718,7 +1735,7 @@ static void generate_text()
new_graph(p, obj->data.pair.a, new_graph(p, obj->data.pair.a,
obj->data.pair.b, obj->data.pair.b,
cur->memmax ? (cur->mem) / cur->memmax ? (cur->mem) /
(cur->memmax) : 0); (cur->memmax) : 0, 0);
} }
/* mixer stuff */ /* mixer stuff */
OBJ(mixer) { OBJ(mixer) {
@ -1917,9 +1934,10 @@ static void generate_text()
trans_speed / 1024.0); trans_speed / 1024.0);
} }
OBJ(upspeedgraph) { OBJ(upspeedgraph) {
CRIT_ERR("the net graph stuff is broken right now. don't use it.");
new_graph(p, obj->data.pair.a, new_graph(p, obj->data.pair.a,
obj->data.pair.b, obj->data.pair.b,
(unsigned int) (obj->data.net->trans_speed / 1024.0)); (obj->data.net->trans_speed / 1024.0), 1);
} }
OBJ(uptime_short) { OBJ(uptime_short) {
format_seconds_short(p, n, format_seconds_short(p, n,
@ -2701,7 +2719,7 @@ static void draw_line(char *s)
JoinMiter); JoinMiter);
int i; int i;
for (i=0;i<specials[special_index].graph_width;i++) { for (i=0;i<specials[special_index].graph_width;i++) {
XDrawLine(display, window.drawable, window.gc, cur_x+(i*w*1.0/specials[special_index].graph_width)+2, by+h, cur_x+(i*w*1.0/specials[special_index].graph_width)+2, by+h-specials[special_index].graph[i]*h/100.0); /* this is mugfugly, but it works */ XDrawLine(display, window.drawable, window.gc, cur_x+(i*w*1.0/specials[special_index].graph_width)+2, by+h, cur_x+(i*w*1.0/specials[special_index].graph_width)+2, by+h-specials[special_index].graph[i]*h/specials[special_index].graph_scale); /* this is mugfugly, but it works */
} }
if (specials[special_index].height > font_h) { if (specials[special_index].height > font_h) {
cur_y += specials[special_index].height; cur_y += specials[special_index].height;