wmtetris: Remove unused source files wmmon.c and wmtetris.h.
This commit is contained in:
parent
7cf2e5406b
commit
feccccf12c
|
@ -1,739 +0,0 @@
|
|||
/*
|
||||
Code based on wmppp/wmifs
|
||||
|
||||
[Orig WMPPP comments]
|
||||
|
||||
This code was mainly put together by looking at the
|
||||
following programs:
|
||||
|
||||
asclock
|
||||
A neat piece of equip, used to display the date
|
||||
and time on the screen.
|
||||
Comes with every AfterStep installation.
|
||||
|
||||
Source used:
|
||||
How do I create a not so solid window?
|
||||
How do I open a window?
|
||||
How do I use pixmaps?
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
Authors: Martijn Pieterse (pieterse@xs4all.nl)
|
||||
Antoine Nulle (warp@xs4all.nl)
|
||||
|
||||
This program is distributed under the GPL license.
|
||||
(as were asclock and pppstats)
|
||||
|
||||
----
|
||||
Changes:
|
||||
----
|
||||
|
||||
18/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
||||
* MEM/SWAP/UPTIME only updated when visible
|
||||
* Using global file descriptors to reduce file
|
||||
system overhead, both updates are based on a diff
|
||||
supplied by Dave Harden (dharden@wisewire.com)
|
||||
15/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
||||
* Fixed memory overflow in the MEM gaugebar
|
||||
* MEM gauge displays now real used mem
|
||||
(buffered + cached mem removed)
|
||||
14/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
||||
* Added -i & -s kludge for selecting startupmode,
|
||||
tijno, don't hate me for this :)
|
||||
12/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
||||
* Finetuned master-xpm, tijno don't worry, no
|
||||
reprogramming needed this time ;-)
|
||||
07/05/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* Added disk i/o
|
||||
03/05/1998 (Antoine Nulle, warp@xs4all.nl)
|
||||
* Added new master-xpm which contains the gfx
|
||||
for the upcoming SysInfo part :P
|
||||
02/05/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* Removed a lot of code, that was put in wmgeneral
|
||||
23/04/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* Added zombie destroying code (aka wait :) )
|
||||
18/04/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* Added CPU-on-screen.
|
||||
* Added -display command line
|
||||
15/04/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* Fixed a bug in the stats routine
|
||||
(Top 3 bright pixels were not shown when 100% loaded)
|
||||
* Changed xpm to a no-title one.
|
||||
This included the reprogramming of all positions.
|
||||
warpstah, i hate you! ;)
|
||||
05/04/1998 (Martijn Pieterse, pieterse@xs4all.nl)
|
||||
* First Working Version
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/wait.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/xpm.h>
|
||||
#include <X11/extensions/shape.h>
|
||||
|
||||
#include "../wmgeneral/wmgeneral.h"
|
||||
#include "../wmgeneral/misc.h"
|
||||
|
||||
#include "wmmon-master.xpm"
|
||||
#include "wmmon-mask.xbm"
|
||||
|
||||
/***********/
|
||||
/* Defines */
|
||||
/***********/
|
||||
|
||||
#define LEFT_ACTION (NULL)
|
||||
#define RIGHT_ACTION (NULL)
|
||||
#define MIDDLE_ACTION (NULL)
|
||||
|
||||
#define WMMON_VERSION "1.0.b2"
|
||||
|
||||
/********************/
|
||||
/* Global Variables */
|
||||
/********************/
|
||||
|
||||
char *ProgName;
|
||||
int stat_current = 0; /* now global */
|
||||
FILE *fp_meminfo;
|
||||
FILE *fp_stat;
|
||||
FILE *fp_loadavg;
|
||||
|
||||
/* functions */
|
||||
void usage(void);
|
||||
void printversion(void);
|
||||
void DrawStats(int *, int, int, int, int);
|
||||
void DrawStats_io(int *, int, int, int, int);
|
||||
|
||||
void wmmon_routine(int, char **);
|
||||
|
||||
void main(int argc, char *argv[]) {
|
||||
|
||||
int i;
|
||||
|
||||
|
||||
/* Parse Command Line */
|
||||
|
||||
ProgName = argv[0];
|
||||
if (strlen(ProgName) >= 5)
|
||||
ProgName += (strlen(ProgName) - 5);
|
||||
|
||||
for (i=1; i<argc; i++) {
|
||||
char *arg = argv[i];
|
||||
|
||||
if (*arg=='-') {
|
||||
switch (arg[1]) {
|
||||
case 'd' :
|
||||
if (strcmp(arg+1, "display")) {
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case 'v' :
|
||||
printversion();
|
||||
exit(0);
|
||||
break;
|
||||
case 'i' :
|
||||
stat_current = 1;
|
||||
break;
|
||||
case 's' :
|
||||
stat_current = 2;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wmmon_routine(argc, argv);
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* wmmon_routine *|
|
||||
\*******************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
|
||||
char name[5]; /* "cpu0..cpuz", eventually.. :) */
|
||||
int his[55];
|
||||
int hisaddcnt;
|
||||
long rt_stat;
|
||||
long statlast;
|
||||
long rt_idle;
|
||||
long idlelast;
|
||||
|
||||
} stat_dev;
|
||||
|
||||
#define MAX_STAT_DEVICES (4)
|
||||
stat_dev stat_device[MAX_STAT_DEVICES];
|
||||
|
||||
char *left_action;
|
||||
char *right_action;
|
||||
char *middle_action;
|
||||
|
||||
|
||||
int checksysdevs(void);
|
||||
void get_statistics(char *, long *, long *, long *);
|
||||
void DrawActive(char *);
|
||||
|
||||
void update_stat_cpu(stat_dev *);
|
||||
void update_stat_io(stat_dev *);
|
||||
void update_stat_mem(stat_dev *st, stat_dev *st2);
|
||||
void update_stat_swp(stat_dev *);
|
||||
|
||||
void wmmon_routine(int argc, char **argv) {
|
||||
|
||||
rckeys wmmon_keys[] = {
|
||||
{ "left", &left_action },
|
||||
{ "right", &right_action },
|
||||
{ "middle", &middle_action },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
unsigned long i,j;
|
||||
long k;
|
||||
XEvent Event;
|
||||
int but_stat = -1;
|
||||
|
||||
int stat_online;
|
||||
|
||||
long starttime;
|
||||
long curtime;
|
||||
long nexttime;
|
||||
|
||||
long istat;
|
||||
long idle;
|
||||
|
||||
FILE *fp;
|
||||
char temp[128];
|
||||
char *p;
|
||||
|
||||
int xpm_X = 0, xpm_Y = 0;
|
||||
|
||||
long online_time = 0;
|
||||
long ref_time = 0;
|
||||
long cnt_time;
|
||||
|
||||
|
||||
fp = fopen("/proc/uptime", "r");
|
||||
fp_meminfo = fopen("/proc/meminfo", "r");
|
||||
fp_loadavg = fopen("/proc/loadavg", "r");
|
||||
fp_stat = fopen("/proc/stat", "r");
|
||||
|
||||
if (fp) {
|
||||
fscanf(fp, "%ld", &online_time);
|
||||
ref_time = time(0);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
for (i=0; i<MAX_STAT_DEVICES; i++) {
|
||||
for (j=0; j<55; j++) {
|
||||
stat_device[i].his[j] = 0;
|
||||
}
|
||||
stat_device[i].hisaddcnt = 0;
|
||||
}
|
||||
|
||||
if (LEFT_ACTION) left_action = strdup(LEFT_ACTION);
|
||||
if (RIGHT_ACTION) right_action = strdup(RIGHT_ACTION);
|
||||
if (MIDDLE_ACTION) middle_action = strdup(MIDDLE_ACTION);
|
||||
|
||||
strcpy(temp, "/etc/wmmonrc");
|
||||
parse_rcfile(temp, wmmon_keys);
|
||||
|
||||
p = getenv("HOME");
|
||||
strcpy(temp, p);
|
||||
strcat(temp, "/.wmmonrc");
|
||||
parse_rcfile(temp, wmmon_keys);
|
||||
|
||||
strcpy(temp, "/etc/wmmonrc.fixed");
|
||||
parse_rcfile(temp, wmmon_keys);
|
||||
|
||||
stat_online = checksysdevs();
|
||||
|
||||
|
||||
openXwindow(argc, argv, wmmon_master_xpm, wmmon_mask_bits, wmmon_mask_width, wmmon_mask_height);
|
||||
|
||||
/* add mouse region */
|
||||
AddMouseRegion(0, 12, 13, 58, 57);
|
||||
AddMouseRegion(1, 5, 5, 24, 14);
|
||||
|
||||
starttime = time(0);
|
||||
nexttime = starttime + 10;
|
||||
|
||||
for (i=0; i<stat_online; i++) {
|
||||
get_statistics(stat_device[i].name, &k, &istat, &idle);
|
||||
stat_device[i].statlast = istat;
|
||||
stat_device[i].idlelast = idle;
|
||||
}
|
||||
if (stat_current == 0) DrawStats(stat_device[stat_current].his, 54, 40, 5, 58);
|
||||
if (stat_current == 1) {
|
||||
DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58);
|
||||
}
|
||||
if (stat_current == 2) {
|
||||
xpm_X = 64;
|
||||
setMaskXY(-64, 0);
|
||||
} else {
|
||||
xpm_X = 0;
|
||||
setMaskXY(0, 0);
|
||||
}
|
||||
DrawActive(stat_device[stat_current].name);
|
||||
|
||||
while (1) {
|
||||
curtime = time(0);
|
||||
|
||||
waitpid(0, NULL, WNOHANG);
|
||||
|
||||
|
||||
update_stat_cpu(&stat_device[0]);
|
||||
update_stat_io(&stat_device[1]);
|
||||
|
||||
if(stat_current == 2) {
|
||||
update_stat_mem(&stat_device[2], &stat_device[3]);
|
||||
// update_stat_swp(&stat_device[3]);
|
||||
}
|
||||
|
||||
if (stat_current < 2) {
|
||||
i = stat_current;
|
||||
|
||||
/* Load ding is 45 pixels hoog */
|
||||
copyXPMArea(0, 64, 32, 12, 28, 4);
|
||||
|
||||
j = (stat_device[i].rt_stat + stat_device[i].rt_idle);
|
||||
if (j != 0) {
|
||||
j = (stat_device[i].rt_stat * 100) / j;
|
||||
}
|
||||
j = j * 0.32;
|
||||
if (j > 32) j = 32;
|
||||
copyXPMArea(32, 64, j, 12, 28, 4);
|
||||
} else {
|
||||
/* Nu zal ie wel 3 zijn. */
|
||||
|
||||
copyXPMArea(0, 64, 32, 12, 28+64, 4);
|
||||
copyXPMArea(0, 64, 32, 12, 28+64, 18);
|
||||
|
||||
j = stat_device[2].rt_idle;
|
||||
if (j != 0) {
|
||||
j = (stat_device[2].rt_stat * 100) / j;
|
||||
}
|
||||
j = j * 0.32;
|
||||
if (j > 32) j = 32;
|
||||
copyXPMArea(32, 64, j, 12, 28+64, 4);
|
||||
/*--------------------- ------------------*/
|
||||
j = stat_device[3].rt_idle;
|
||||
if (j != 0) {
|
||||
j = (stat_device[3].rt_stat * 100) / j;
|
||||
}
|
||||
j = j * 0.32;
|
||||
if (j > 32) j = 32;
|
||||
copyXPMArea(32, 64, j, 12, 28+64, 18);
|
||||
|
||||
/*----------- online tijd neerzetten! ----------*/
|
||||
|
||||
cnt_time = time(0) - ref_time + online_time;
|
||||
|
||||
/* cnt_time = uptime in seconden */
|
||||
/*
|
||||
secs = 108,47
|
||||
mins = 89,47
|
||||
uren = 70,47
|
||||
digits = 40,78, 6breed, 9hoog
|
||||
*/
|
||||
i = cnt_time % 60;
|
||||
cnt_time /= 60;
|
||||
copyXPMArea(40 + (i % 10)*7, 78, 6, 9, 115, 47);
|
||||
copyXPMArea(40 + (i / 10)*7, 78, 6, 9, 108, 47);
|
||||
|
||||
i = cnt_time % 60;
|
||||
cnt_time /= 60;
|
||||
copyXPMArea(40 + (i % 10)*7, 78, 6, 9, 96, 47);
|
||||
copyXPMArea(40 + (i / 10)*7, 78, 6, 9, 89, 47);
|
||||
|
||||
i = cnt_time % 24;
|
||||
cnt_time /= 24;
|
||||
copyXPMArea(40 + (i % 10)*7, 78, 6, 9, 77, 47);
|
||||
copyXPMArea(40 + (i / 10)*7, 78, 6, 9, 70, 47);
|
||||
|
||||
/* De rest is dagen! 5x7*/
|
||||
|
||||
i = cnt_time;
|
||||
copyXPMArea(66 + (i % 10)*6, 66, 5, 7, 88, 35);
|
||||
i /= 10;
|
||||
copyXPMArea(66 + (i % 10)*6, 66, 5, 7, 82, 35);
|
||||
i /= 10;
|
||||
copyXPMArea(66 + (i % 10)*6, 66, 5, 7, 76, 35);
|
||||
i /= 10;
|
||||
copyXPMArea(66 + (i % 10)*6, 66, 5, 7, 70, 35);
|
||||
}
|
||||
|
||||
if (curtime >= nexttime) {
|
||||
nexttime+=10;
|
||||
|
||||
for (i=0; i<stat_online; i++) {
|
||||
if (stat_device[i].his[54])
|
||||
stat_device[i].his[54] /= stat_device[i].hisaddcnt;
|
||||
|
||||
for (j=1; j<55; j++) {
|
||||
stat_device[i].his[j-1] = stat_device[i].his[j];
|
||||
}
|
||||
|
||||
if (i == stat_current) {
|
||||
if (i == 0) DrawStats(stat_device[i].his, 54, 40, 5, 58);
|
||||
if (i == 1) DrawStats_io(stat_device[i].his, 54, 40, 5, 58);
|
||||
}
|
||||
stat_device[i].his[54] = 0;
|
||||
stat_device[i].hisaddcnt = 0;
|
||||
|
||||
}
|
||||
}
|
||||
RedrawWindowXY(xpm_X, xpm_Y);
|
||||
|
||||
while (XPending(display)) {
|
||||
XNextEvent(display, &Event);
|
||||
switch (Event.type) {
|
||||
case Expose:
|
||||
RedrawWindowXY(xpm_X, xpm_Y);
|
||||
break;
|
||||
case DestroyNotify:
|
||||
XCloseDisplay(display);
|
||||
exit(0);
|
||||
break;
|
||||
case ButtonPress:
|
||||
but_stat = CheckMouseRegion(Event.xbutton.x, Event.xbutton.y);
|
||||
break;
|
||||
case ButtonRelease:
|
||||
i = CheckMouseRegion(Event.xbutton.x, Event.xbutton.y);
|
||||
if (but_stat == i && but_stat >= 0) {
|
||||
switch (but_stat) {
|
||||
case 0:
|
||||
switch (Event.xbutton.button) {
|
||||
case 1:
|
||||
if (left_action)
|
||||
execCommand(left_action);
|
||||
break;
|
||||
case 2:
|
||||
if (middle_action)
|
||||
execCommand(middle_action);
|
||||
break;
|
||||
case 3:
|
||||
if (right_action)
|
||||
execCommand(right_action);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
stat_current++;
|
||||
printf("current stat is :%d\n", stat_current);
|
||||
if (stat_current == stat_online)
|
||||
stat_current = 0;
|
||||
|
||||
DrawActive(stat_device[stat_current].name);
|
||||
if (stat_current == 0) DrawStats(stat_device[stat_current].his, 54, 40, 5, 58);
|
||||
if (stat_current == 1) {
|
||||
DrawStats_io(stat_device[stat_current].his, 54, 40, 5, 58);
|
||||
}
|
||||
if (stat_current == 2) {
|
||||
xpm_X = 64;
|
||||
setMaskXY(-64, 0);
|
||||
} else {
|
||||
xpm_X = 0;
|
||||
setMaskXY(0, 0);
|
||||
}
|
||||
RedrawWindowXY(xpm_X, xpm_Y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
usleep( stat_current == 0 ? 100000L : 200000L);
|
||||
}
|
||||
}
|
||||
|
||||
void update_stat_cpu(stat_dev *st) {
|
||||
|
||||
long k, istat, idle;
|
||||
|
||||
get_statistics(st->name, &k, &istat, &idle);
|
||||
|
||||
st->rt_idle = idle - st->idlelast;
|
||||
st->idlelast = idle;
|
||||
|
||||
st->rt_stat = istat - st->statlast;
|
||||
st->statlast = istat;
|
||||
|
||||
st->his[54] += k;
|
||||
st->hisaddcnt += 1;
|
||||
}
|
||||
|
||||
void update_stat_io(stat_dev *st) {
|
||||
|
||||
long j, k, istat, idle;
|
||||
static long maxdiskio = 0;
|
||||
|
||||
get_statistics(st->name, &k, &istat, &idle);
|
||||
|
||||
st->rt_idle = idle - st->idlelast;
|
||||
st->idlelast = idle;
|
||||
|
||||
st->rt_stat = istat - st->statlast;
|
||||
st->statlast = istat;
|
||||
|
||||
j = st->rt_stat;
|
||||
if (maxdiskio < j) {
|
||||
maxdiskio = j;
|
||||
}
|
||||
st->rt_idle = maxdiskio - j;
|
||||
|
||||
st->his[54] += st->rt_stat;
|
||||
st->hisaddcnt += 1;
|
||||
}
|
||||
|
||||
void update_stat_mem(stat_dev *st, stat_dev *st2) {
|
||||
|
||||
char temp[128];
|
||||
unsigned long free, shared, buffers, cached;
|
||||
|
||||
freopen("/proc/meminfo", "r", fp_meminfo);
|
||||
while (fgets(temp, 128, fp_meminfo)) {
|
||||
if (strstr(temp, "Mem:")) {
|
||||
sscanf(temp, "Mem: %ld %ld %ld %ld %ld %ld",
|
||||
&st->rt_idle, &st->rt_stat,
|
||||
&free, &shared, &buffers, &cached);
|
||||
st->rt_idle >>= 10;
|
||||
st->rt_stat -= buffers+cached;
|
||||
st->rt_stat >>= 10;
|
||||
// break;
|
||||
}
|
||||
if (strstr(temp, "Swap:")) {
|
||||
sscanf(temp, "Swap: %ld %ld", &st2->rt_idle, &st2->rt_stat);
|
||||
st2->rt_idle >>= 10;
|
||||
st2->rt_stat >>= 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void update_stat_swp(stat_dev *st) {
|
||||
|
||||
char temp[128];
|
||||
|
||||
fseek(fp_meminfo, 0, SEEK_SET);
|
||||
while (fgets(temp, 128, fp_meminfo)) {
|
||||
if (strstr(temp, "Swap:")) {
|
||||
sscanf(temp, "Swap: %ld %ld", &st->rt_idle, &st->rt_stat);
|
||||
st->rt_idle >>= 10;
|
||||
st->rt_stat >>= 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* get_statistics *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void get_statistics(char *devname, long *is, long *ds, long *idle) {
|
||||
|
||||
int i;
|
||||
char temp[128];
|
||||
char *p;
|
||||
char *tokens = " \t\n";
|
||||
float f;
|
||||
long maxdiskio=0;
|
||||
|
||||
*is = 0;
|
||||
*ds = 0;
|
||||
*idle = 0;
|
||||
|
||||
if (!strncmp(devname, "cpu", 3)) {
|
||||
fseek(fp_stat, 0, SEEK_SET);
|
||||
while (fgets(temp, 128, fp_stat)) {
|
||||
if (strstr(temp, "cpu")) {
|
||||
p = strtok(temp, tokens);
|
||||
/* 1..3, 4 == idle, we don't want idle! */
|
||||
for (i=0; i<3; i++) {
|
||||
p = strtok(NULL, tokens);
|
||||
*ds += atol(p);
|
||||
}
|
||||
p = strtok(NULL, tokens);
|
||||
*idle = atol(p);
|
||||
}
|
||||
}
|
||||
fp_loadavg = freopen("/proc/loadavg", "r", fp_loadavg);
|
||||
fscanf(fp_loadavg, "%f", &f);
|
||||
*is = (long) (100 * f);
|
||||
}
|
||||
|
||||
if (!strncmp(devname, "i/o", 3)) {
|
||||
|
||||
fseek(fp_stat, 0, SEEK_SET);
|
||||
while (fgets(temp, 128, fp_stat)) {
|
||||
if (strstr(temp, "disk_rio") || strstr(temp, "disk_wio")) {
|
||||
p = strtok(temp, tokens);
|
||||
/* 1..4 */
|
||||
for (i=0; i<4; i++) {
|
||||
p = strtok(NULL, tokens);
|
||||
*ds += atol(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*ds > maxdiskio) maxdiskio = *ds;
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* checksysdevs *|
|
||||
\*******************************************************************************/
|
||||
|
||||
int checksysdevs(void) {
|
||||
|
||||
strcpy(stat_device[0].name, "cpu0");
|
||||
strcpy(stat_device[1].name, "i/o");
|
||||
strcpy(stat_device[2].name, "sys");
|
||||
|
||||
return 3;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************\
|
||||
|* void DrawActive(char *) *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void DrawActive(char *name) {
|
||||
|
||||
/* Alles op X,77
|
||||
CPU: 0
|
||||
I/O: 21
|
||||
|
||||
20 Breed, 10 hoog
|
||||
Destinatie: 5,5
|
||||
*/
|
||||
|
||||
if (name[0] == 'c') {
|
||||
copyXPMArea(0, 77, 19, 10, 5, 5);
|
||||
} else if (name[0] == 'i') {
|
||||
copyXPMArea(19, 77, 19, 10, 5, 5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* DrawStats *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void DrawStats(int *his, int num, int size, int x_left, int y_bottom) {
|
||||
|
||||
int pixels_per_byte;
|
||||
int j,k;
|
||||
int *p;
|
||||
int d;
|
||||
|
||||
pixels_per_byte = 100;
|
||||
p = his;
|
||||
for (j=0; j<num; j++) {
|
||||
if (p[0] > pixels_per_byte)
|
||||
pixels_per_byte += 100;
|
||||
p += 1;
|
||||
}
|
||||
|
||||
p = his;
|
||||
|
||||
for (k=0; k<num; k++) {
|
||||
d = (1.0 * p[0] / pixels_per_byte) * size;
|
||||
|
||||
for (j=0; j<size; j++) {
|
||||
|
||||
if (j < d - 3)
|
||||
copyXPMArea(2, 88, 1, 1, k+x_left, y_bottom-j);
|
||||
else if (j < d)
|
||||
copyXPMArea(2, 89, 1, 1, k+x_left, y_bottom-j);
|
||||
else
|
||||
copyXPMArea(2, 90, 1, 1, k+x_left, y_bottom-j);
|
||||
}
|
||||
p += 1;
|
||||
}
|
||||
|
||||
/* Nu horizontaal op 100/200/300 etc lijntje trekken! */
|
||||
for (j = pixels_per_byte-100; j > 0; j-=100) {
|
||||
for (k=0; k<num; k++) {
|
||||
d = (40.0 / pixels_per_byte) * j;
|
||||
|
||||
copyXPMArea(2, 91, 1, 1, k+x_left, y_bottom-d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* DrawStats_io *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void DrawStats_io(int *his, int num, int size, int x_left, int y_bottom) {
|
||||
|
||||
float pixels_per_byte;
|
||||
int j,k;
|
||||
int *p;
|
||||
int d;
|
||||
|
||||
static int global_io_scale = 1;
|
||||
|
||||
p = his;
|
||||
for (j=0; j<num; j++) {
|
||||
if (p[j] > global_io_scale) global_io_scale = p[j];
|
||||
}
|
||||
|
||||
pixels_per_byte = 1.0 * global_io_scale / size;
|
||||
if (pixels_per_byte == 0) pixels_per_byte = 1;
|
||||
|
||||
for (k=0; k<num; k++) {
|
||||
d = (1.0 * p[0] / pixels_per_byte);
|
||||
|
||||
for (j=0; j<size; j++) {
|
||||
|
||||
if (j < d - 3)
|
||||
copyXPMArea(2, 88, 1, 1, k+x_left, y_bottom-j);
|
||||
else if (j < d)
|
||||
copyXPMArea(2, 89, 1, 1, k+x_left, y_bottom-j);
|
||||
else
|
||||
copyXPMArea(2, 90, 1, 1, k+x_left, y_bottom-j);
|
||||
}
|
||||
p += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************\
|
||||
|* usage *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void usage(void) {
|
||||
|
||||
fprintf(stderr, "\nwmmon - programming: tijno, (de)bugging & design warp, webhosting: bobby\n\n");
|
||||
fprintf(stderr, "usage:\n");
|
||||
fprintf(stderr, "\t-display <display name>\n");
|
||||
fprintf(stderr, "\t-h\tthis screen\n");
|
||||
fprintf(stderr, "\t-v\tprint the version number\n");
|
||||
fprintf(stderr, "\t-i\tstartup in DiskIO mode\n");
|
||||
fprintf(stderr, "\t-s\tstartup in SysInfo mode\n");
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
||||
/*******************************************************************************\
|
||||
|* printversion *|
|
||||
\*******************************************************************************/
|
||||
|
||||
void printversion(void) {
|
||||
|
||||
if (!strcmp(ProgName, "wmmon")) {
|
||||
fprintf(stderr, "%s\n", WMMON_VERSION);
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
/* wmapm.h -- Header file for WMAPM
|
||||
*
|
||||
* wmapm-1.2 (C) 1998 Chris D. Faulhaber <jedgar@speck.ml.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program (see the file COPYING); if not, write to the
|
||||
* Free Software Foundation, Inc.,
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
***********************************************************************/
|
||||
|
||||
#define DELAY 250000 /* Delay between refreshes (in microseconds) */
|
||||
|
||||
#define WMAPM_VERSION "1.2"
|
||||
|
||||
typedef struct apm_info {
|
||||
const char driver_version[10];
|
||||
int apm_version_major;
|
||||
int apm_version_minor;
|
||||
int apm_flags;
|
||||
int ac_line_status;
|
||||
int battery_status;
|
||||
int battery_flags;
|
||||
int battery_percentage;
|
||||
int battery_time;
|
||||
int using_minutes;
|
||||
} apm_info;
|
||||
|
||||
#ifndef APM_32_BIT_SUPPORT
|
||||
#define APM_32_BIT_SUPPORT 0x0002
|
||||
#endif
|
Loading…
Reference in a new issue