1 /* wmnet -- X IP accounting monitor
2 * Copyright 1998, 2000 Jesse B. Off, Katharine Osborne
3 * <kaos@digitalkaos.net>
5 * $Id: wmnet.h,v 1.2 1998/10/06 00:06:12 joff Exp $
7 * This software is released under the GNU Public License agreement.
8 * No warranties, whatever.... you know the usuals.... this is free
9 * software. if you use it, great... if you wanna make a change to it,
10 * great, but please send me the diff. If you put it on a distributed
11 * CD, great... I'd appreciate a copy of the CD though ;).
18 #define TOPBOX_WIDTH 56
19 #define TOPBOX_HEIGHT 11
21 /* Graphing area extents */
24 #define GRAPHBOX_WIDTH 56
25 #define GRAPHBOX_HEIGHT graphbox_height
27 #define GRAPHBOX_X_RIGHT (GRAPHBOX_X + GRAPHBOX_WIDTH - 1)
28 #define GRAPHBOX_X_LEFT (GRAPHBOX_X)
29 #define GRAPHBOX_Y_TOP (GRAPHBOX_Y)
30 #define GRAPHBOX_Y_BOTTOM (GRAPHBOX_Y + GRAPHBOX_HEIGHT - 1)
32 /* Graphing area minus the borders */
33 #define GRAPH_X (GRAPHBOX_X + 1)
34 #define GRAPH_Y (GRAPHBOX_Y)
35 #define GRAPH_WIDTH (GRAPHBOX_WIDTH - 2)
36 #define GRAPH_HEIGHT (GRAPHBOX_HEIGHT - 1)
38 #define GRAPH_X_LEFT (GRAPH_X)
39 #define GRAPH_X_RIGHT (GRAPH_X + GRAPH_WIDTH - 1)
40 #define GRAPH_Y_UPPER (GRAPH_Y)
41 #define GRAPH_Y_BOTTOM (GRAPH_Y + GRAPH_HEIGHT - 1)
45 #define LABEL_X (GRAPHBOX_X_LEFT)
46 #define LABEL_Y (GRAPHBOX_Y_BOTTOM + 1)
47 #define LABEL_WIDTH (GRAPHBOX_WIDTH)
48 #define LABEL_HEIGHT 11
50 #define LABEL_X_LEFT (LABEL_X_LEFT)
51 #define LABEL_X_RIGHT (LABEL_X_LEFT + LABEL_WIDTH - 1)
52 #define LABEL_Y_TOP (LABEL_Y)
53 #define LABEL_Y_BOTTOM (LABEL_Y + LABEL_HEIGHT - 1)
56 #define LOW_INTENSITY 0
57 #define NORMAL_INTENSITY 1
58 #define HIGH_INTENSITY 2
66 Window root_window
, main_window
, icon_window
, *visible_window
;
70 int screen
, specified_state
= -1;
72 unsigned long tx_pixel
[3], rx_pixel
[3], labelfg_pixel
, labelbg_pixel
, black_pixel
, white_pixel
, darkgrey_pixel
, grey_pixel
;
73 typedef int (*parser_func
)(void);
75 /* I know statically declared buffers are against GNU coding standards, so sue me */
76 char buffer
[256], *click_command
= NULL
, *label
= NULL
;
77 struct timeval timenow
, timelast
;
78 unsigned long long int totalbytes_in
, totalbytes_out
, lastbytes_in
, lastbytes_out
;
79 unsigned long long int totalpackets_in
, totalpackets_out
, lastpackets_in
, lastpackets_out
;
80 unsigned int diffbytes_in
, diffbytes_out
;
81 unsigned int delayTime
= 100000, displayDelay
= 55000, maxRate
= 120000;
82 unsigned int out_rule
= 2, in_rule
= 1, graphbox_height
= 44; /* number of rule in /proc/net/ip_acct to use */
83 char *in_rule_string
= NULL
, *out_rule_string
= NULL
, *device
=NULL
;
84 Bool current_tx
= False
, current_rx
= False
, rx
, tx
, logscale
= False
;
85 parser_func stat_gather
;
90 void got_signal(int x
);
91 void setup_wmnet(int argc
, char **argv
);
93 void createWin(Window
*win
);
94 int updateStats(void);
95 void redraw(XExposeEvent
*ee
);
97 int updateSpeedometer(int rxRate
, int txRate
);
98 void drawColoredLine(int y1
, int y2
, unsigned long *shadecolor
);
99 void shadesOf(XColor
*shade
, unsigned long *returnarray
);
101 extern parser_func
setup_driver(char *parser
);
102 extern char * available_drivers(void);