Applied wmMatrix-0.2-debian-fixes.patch
This commit is contained in:
parent
faedc9bd18
commit
75fced152e
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* wmMatrix-0.2 (C) 1999 Mike Henderson (mghenderson@lanl.gov)
|
* wmMatrix-0.2 (C) 1999 Mike Henderson (mghenderson@lanl.gov)
|
||||||
*
|
*
|
||||||
* - A DockApp version of Jamie Zawinski's xmatrix screensaver hack.
|
* - A DockApp version of Jamie Zawinski's xmatrix screensaver hack.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -39,11 +39,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Includes
|
||||||
|
|
||||||
/*
|
|
||||||
* Includes
|
|
||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -58,18 +55,13 @@
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
/*
|
* Delay between refreshes (in microseconds)
|
||||||
* Delay between refreshes (in microseconds)
|
|
||||||
*/
|
*/
|
||||||
#define DELAY 10000UL
|
#define DELAY 10000UL
|
||||||
#define WMMATRIX_VERSION "0.2"
|
#define WMMATRIX_VERSION "0.2"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ParseCMDLine(int argc, char *argv[]);
|
void ParseCMDLine(int argc, char *argv[]);
|
||||||
void ButtonPressEvent(XButtonEvent *);
|
void ButtonPressEvent(XButtonEvent *);
|
||||||
void print_usage();
|
void print_usage();
|
||||||
|
@ -77,64 +69,43 @@ m_state *init_matrix( Display *, Window );
|
||||||
void draw_matrix( m_state *, int );
|
void draw_matrix( m_state *, int );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int GotFirstClick1, GotDoubleClick1;
|
int GotFirstClick1, GotDoubleClick1;
|
||||||
int GotFirstClick2, GotDoubleClick2;
|
int GotFirstClick2, GotDoubleClick2;
|
||||||
int GotFirstClick3, GotDoubleClick3;
|
int GotFirstClick3, GotDoubleClick3;
|
||||||
int DblClkDelay;
|
int DblClkDelay;
|
||||||
int HasExecute;
|
/*int HasExecute;*/
|
||||||
char ExecuteCommand[1024];
|
char* ExecuteCommand = "xmatrixsmall";
|
||||||
char *progname = "wmMatrix";
|
char *progname = "wmMatrix";
|
||||||
char *progclass = "WMMatrix";
|
char *progclass = "WMMatrix";
|
||||||
int PixmapSize;
|
int PixmapSize;
|
||||||
|
char *DoubleClickCmd = NULL;
|
||||||
|
char* TimeColor = "#ffff00";
|
||||||
|
char* BackgroundColor = "#181818";
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* main
|
||||||
|
|
||||||
char TimeColor[30] = "#ffff00";
|
|
||||||
char BackgroundColor[30] = "#181818";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* main
|
|
||||||
*/
|
*/
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
|
|
||||||
XEvent event;
|
XEvent event;
|
||||||
int n, k, m;
|
int n, k, m;
|
||||||
float avg1, user;
|
/* float avg1;*/
|
||||||
/*char Command[512];*/
|
/*char Command[512];*/
|
||||||
m_state *state;
|
m_state *state;
|
||||||
FILE *fp;
|
/* FILE *fp;*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Parse any command line arguments.
|
* Parse any command line arguments.
|
||||||
*/
|
*/
|
||||||
ParseCMDLine(argc, argv);
|
ParseCMDLine(argc, argv);
|
||||||
|
if(DoubleClickCmd==NULL)
|
||||||
|
DoubleClickCmd=strdup("xscreensaver-demo");
|
||||||
strcpy(ExecuteCommand, "xmatrixsmall");
|
/*HasExecute = 1;*/
|
||||||
HasExecute = 1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
initXwindow(argc, argv);
|
initXwindow(argc, argv);
|
||||||
openXwindow(argc, argv, wmMatrix_master, wmMatrix_mask_bits, wmMatrix_mask_width, wmMatrix_mask_height);
|
openXwindow(argc, argv, wmMatrix_master, wmMatrix_mask_bits, wmMatrix_mask_width, wmMatrix_mask_height);
|
||||||
|
|
||||||
state = init_matrix( display, iconwin );
|
state = init_matrix( display, iconwin );
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (HasExecute){
|
if (HasExecute){
|
||||||
sprintf(Command, "%s -window-id 0x%x &", ExecuteCommand, (int)iconwin);
|
sprintf(Command, "%s -window-id 0x%x &", ExecuteCommand, (int)iconwin);
|
||||||
|
@ -142,82 +113,53 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Loop until we die
|
* Loop until we die
|
||||||
*/
|
*/
|
||||||
n = k = m = 32000;
|
n = k = m = 32000;
|
||||||
while(1) {
|
while(1) {
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if ( n>10 ){
|
if ( n>10 ){
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
if ( (fp = fopen("/proc/loadavg", "r")) != NULL ){
|
if ( (fp = fopen("/proc/loadavg", "r")) != NULL ){
|
||||||
|
|
||||||
fscanf(fp, "%f", &avg1); avg1 *= 10.0; fclose(fp);
|
fscanf(fp, "%f", &avg1); avg1 *= 10.0; fclose(fp);
|
||||||
m = (int)(40.0 - 1.00*avg1 + 0.5);
|
m = (int)(40.0 - 1.00*avg1 + 0.5);
|
||||||
if (m < 0) m = 0;
|
if (m < 0) m = 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
printf("problem opening /proc/loadavg file for read\n");
|
printf("problem opening /proc/loadavg file for read\n");
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update the counter.
|
* Update the counter.
|
||||||
*/
|
*/
|
||||||
++n;
|
++n;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
m=0;
|
||||||
m=0;
|
|
||||||
|
|
||||||
|
|
||||||
if (k > m){
|
if (k > m){
|
||||||
|
|
||||||
k = 0;
|
k = 0;
|
||||||
draw_matrix( state, 40 );
|
draw_matrix( state, 40 );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
++k;
|
++k;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Double Click Delays
|
* Double Click Delays
|
||||||
* Keep track of click events. If Delay too long, set GotFirstClick's to False.
|
* Keep track of click events. If Delay too long, set GotFirstClick's to False.
|
||||||
*/
|
*/
|
||||||
if (DblClkDelay > 150) {
|
if (DblClkDelay > 150) {
|
||||||
|
|
||||||
DblClkDelay = 0;
|
DblClkDelay = 0;
|
||||||
GotFirstClick1 = 0; GotDoubleClick1 = 0;
|
GotFirstClick1 = 0; GotDoubleClick1 = 0;
|
||||||
GotFirstClick2 = 0; GotDoubleClick2 = 0;
|
GotFirstClick2 = 0; GotDoubleClick2 = 0;
|
||||||
GotFirstClick3 = 0; GotDoubleClick3 = 0;
|
GotFirstClick3 = 0; GotDoubleClick3 = 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
++DblClkDelay;
|
++DblClkDelay;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
/*
|
|
||||||
* Process any pending X events.
|
* Process any pending X events.
|
||||||
*/
|
*/
|
||||||
while(XPending(display)){
|
while(XPending(display)){
|
||||||
|
@ -235,116 +177,59 @@ m=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sleep till next update. I cant seem to get usleep or select to work properly
|
* sleep till next update. I cant seem to get usleep or select to work properly
|
||||||
* with args smaller than 10000. A kernel tick problem? If I comment out the next line,
|
* with args smaller than 10000. A kernel tick problem? If I comment out the next line,
|
||||||
* the app screams (chews up cpu too). Or if I use DELAY of 0 it also screams.
|
* the app screams (chews up cpu too). Or if I use DELAY of 0 it also screams.
|
||||||
* But a delay of 1 or higher is slow.....
|
* But a delay of 1 or higher is slow.....
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
short_uusleep(DELAY);
|
short_uusleep(DELAY);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ParseCMDLine()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ParseCMDLine()
|
|
||||||
*/
|
*/
|
||||||
void ParseCMDLine(int argc, char *argv[]) {
|
void ParseCMDLine(int argc, char *argv[]) {
|
||||||
|
int i;
|
||||||
int i;
|
|
||||||
|
|
||||||
PixmapSize = 2;
|
PixmapSize = 2;
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
|
if (!strcmp(argv[i], "-display")){
|
||||||
if (!strcmp(argv[i], "-display")){
|
|
||||||
|
|
||||||
++i;
|
++i;
|
||||||
|
} else if (!strcmp(argv[i], "-c")){
|
||||||
} else if (!strcmp(argv[i], "-tc")){
|
|
||||||
|
|
||||||
if ((i+1 >= argc)||(argv[i+1][0] == '-')) {
|
|
||||||
fprintf(stderr, "wmMatrix: No color found\n");
|
|
||||||
print_usage();
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
strcpy(TimeColor, argv[++i]);
|
|
||||||
|
|
||||||
} else if (!strcmp(argv[i], "-bc")){
|
|
||||||
|
|
||||||
if ((i+1 >= argc)||(argv[i+1][0] == '-')) {
|
|
||||||
fprintf(stderr, "wmMatrix: No color found\n");
|
|
||||||
print_usage();
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
strcpy(BackgroundColor, argv[++i]);
|
|
||||||
|
|
||||||
} else if (!strcmp(argv[i], "-e")){
|
|
||||||
|
|
||||||
if ((i+1 >= argc)||(argv[i+1][0] == '-')) {
|
if ((i+1 >= argc)||(argv[i+1][0] == '-')) {
|
||||||
fprintf(stderr, "wmMatrix: No command given\n");
|
fprintf(stderr, "wmMatrix: No command given\n");
|
||||||
print_usage();
|
print_usage();
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
strcpy(ExecuteCommand, argv[++i]);
|
if(DoubleClickCmd!=NULL)
|
||||||
HasExecute = 1;
|
free(DoubleClickCmd);
|
||||||
|
DoubleClickCmd=strdup(argv[++i]);
|
||||||
} else if (!strcmp(argv[i], "-sml")){
|
} else if (!strcmp(argv[i], "-sml")){
|
||||||
|
|
||||||
PixmapSize = 1;
|
PixmapSize = 1;
|
||||||
|
|
||||||
} else if (!strcmp(argv[i], "-med")){
|
} else if (!strcmp(argv[i], "-med")){
|
||||||
|
|
||||||
PixmapSize = 2;
|
PixmapSize = 2;
|
||||||
|
|
||||||
} else if (!strcmp(argv[i], "-lrg")){
|
} else if (!strcmp(argv[i], "-lrg")){
|
||||||
|
|
||||||
PixmapSize = 3;
|
PixmapSize = 3;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
print_usage();
|
print_usage();
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void print_usage(){
|
void print_usage() {
|
||||||
|
|
||||||
printf("\nwmMatrix version: %s\n", WMMATRIX_VERSION);
|
printf("\nwmMatrix version: %s\n", WMMATRIX_VERSION);
|
||||||
printf("\t-h\t\tDisplay help screen.\n");
|
printf("\t-h\t\tDisplay help screen.\n");
|
||||||
printf("\t-sml\t\tUse small size pixmap.\n");
|
printf("\t-sml\t\tUse small size pixmap.\n");
|
||||||
printf("\t-med\t\tUse medium size pixmap.\n");
|
printf("\t-med\t\tUse medium size pixmap.\n");
|
||||||
printf("\t-lrg\t\tUse large size pixmap.\n");
|
printf("\t-lrg\t\tUse large size pixmap.\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine handles button presses.
|
* This routine handles button presses.
|
||||||
*
|
*
|
||||||
|
@ -356,9 +241,6 @@ void print_usage(){
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void ButtonPressEvent(XButtonEvent *xev){
|
void ButtonPressEvent(XButtonEvent *xev){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DblClkDelay = 0;
|
DblClkDelay = 0;
|
||||||
if ((xev->button == Button1) && (xev->type == ButtonPress)){
|
if ((xev->button == Button1) && (xev->type == ButtonPress)){
|
||||||
if (GotFirstClick1) GotDoubleClick1 = 1;
|
if (GotFirstClick1) GotDoubleClick1 = 1;
|
||||||
|
@ -378,12 +260,12 @@ void ButtonPressEvent(XButtonEvent *xev){
|
||||||
if (GotDoubleClick1) {
|
if (GotDoubleClick1) {
|
||||||
GotFirstClick1 = 0;
|
GotFirstClick1 = 0;
|
||||||
GotDoubleClick1 = 0;
|
GotDoubleClick1 = 0;
|
||||||
system("xscreensaver-demo");
|
system(DoubleClickCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We got a double click on Mouse Button2 (i.e. the left one)
|
* We got a double click on Mouse Button2 (i.e. the middle one)
|
||||||
*/
|
*/
|
||||||
if (GotDoubleClick2) {
|
if (GotDoubleClick2) {
|
||||||
GotFirstClick2 = 0;
|
GotFirstClick2 = 0;
|
||||||
|
@ -392,16 +274,11 @@ void ButtonPressEvent(XButtonEvent *xev){
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We got a double click on Mouse Button3 (i.e. the left one)
|
* We got a double click on Mouse Button3 (i.e. the right one)
|
||||||
*/
|
*/
|
||||||
if (GotDoubleClick3) {
|
if (GotDoubleClick3) {
|
||||||
GotFirstClick3 = 0;
|
GotFirstClick3 = 0;
|
||||||
GotDoubleClick3 = 0;
|
GotDoubleClick3 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,8 @@ void setMaskXY(int, int);
|
||||||
unsigned long getColor(char *, float, int *, int *, int *);
|
unsigned long getColor(char *, float, int *, int *, int *);
|
||||||
unsigned long getBlendedColor(char *, float, int, int, int);
|
unsigned long getBlendedColor(char *, float, int, int, int);
|
||||||
void RedrawWindow(void);
|
void RedrawWindow(void);
|
||||||
void wusleep( unsigned int );
|
void uusleep( unsigned long );
|
||||||
|
void short_uusleep( unsigned long );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue