diff options
| author | Markus Brueffer <markus@FreeBSD.org> | 2004-02-29 23:28:23 +0000 |
|---|---|---|
| committer | Markus Brueffer <markus@FreeBSD.org> | 2004-02-29 23:28:23 +0000 |
| commit | 4e7bd06dec76974fe4508d02d4aad1d5ab1edf7c (patch) | |
| tree | f6d288ff6da6fb4f65032b1b51da8ad645a2dd6c /sysutils/kcube/files/patch-kcube.cpp | |
| parent | Remove 3 dead apache mirrors. (diff) | |
Add kcube 0.61, another cpu load kicker applet for KDE.
PR: ports/62535
Submitted by: Michael Ranner <mranner@inode.at>
Approved by: arved (mentor)
Notes
Notes:
svn path=/head/; revision=102582
Diffstat (limited to 'sysutils/kcube/files/patch-kcube.cpp')
| -rw-r--r-- | sysutils/kcube/files/patch-kcube.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/sysutils/kcube/files/patch-kcube.cpp b/sysutils/kcube/files/patch-kcube.cpp new file mode 100644 index 000000000000..3c82c4853927 --- /dev/null +++ b/sysutils/kcube/files/patch-kcube.cpp @@ -0,0 +1,93 @@ +--- kcube/kcube.cpp.orig Thu Feb 13 22:12:49 2003 ++++ kcube/kcube.cpp Wed Feb 25 03:59:17 2004 +@@ -33,9 +33,19 @@ + #include <qslider.h> + + #include <stdio.h> ++#include <unistd.h> ++#include <fcntl.h> ++ ++#include <nlist.h> + + #include "kcube.h" + ++struct nlist nl[] = { ++#define X_CP_TIME 0 ++ { "_cp_time" }, ++ { "" }, ++}; ++ + extern "C" + { + KPanelApplet* init( QWidget *parent, const QString configFile) +@@ -64,7 +74,7 @@ + + // timer + cpu_timer = new QTimer(); +- cpu_timer->start(500, false); ++ cpu_timer->start(1000, false); + connect (cpu_timer, SIGNAL ( timeout() ), this, SLOT ( cpu_timer_event() ) ); + draw_timer = new QTimer(); + draw_timer->start(50, false); +@@ -82,6 +92,7 @@ + prefform = new PrefForm(this); + prefform->setFixedSize( prefform->width(), prefform->height() ); + loadConfig(); ++ + } + + Kcube::~Kcube() +@@ -119,14 +130,42 @@ + int Kcube::calc_cpu_total() + { + int use_nice = 0, t=0; +- int total, used; ++ long total, used; + char cpuid[6]; +- int cpu,nice,system,idle; ++ long cpu,nice,system,idle; ++#ifdef Q_OS_BSD4 ++ static int name2oid[2] = { 0, 3 }; ++ static int oidCpuTime[CTL_MAXNAME + 2]; ++ static size_t oidCpuTimeLen = sizeof(oidCpuTime); ++ long cpuTime[CPUSTATES]; ++ size_t cpuTimeLen = sizeof(cpuTime); ++ static char *name = "kern.cp_time"; ++ static int initialized = 0; ++#endif + ++#ifdef Q_OS_LINUX + FILE *fp; + fp = fopen("/proc/stat","rt"); + fscanf(fp,"%s %d %d %d %d",cpuid,&cpu,&nice,&system,&idle); + fclose(fp); ++#endif ++ ++#ifdef Q_OS_BSD4 ++ if (! initialized) { ++ if (sysctl(name2oid, 2, oidCpuTime, &oidCpuTimeLen, name, strlen(name)) < 0) ++ return 0; ++ oidCpuTimeLen /= sizeof(int); ++ initialized = 1; ++ } ++ ++ if (sysctl(oidCpuTime, oidCpuTimeLen, cpuTime, &cpuTimeLen, 0, 0) < 0) ++ return 0; ++ ++ idle = cpuTime[CP_IDLE]; ++ cpu = cpuTime[CP_USER]; ++ nice = cpuTime[CP_NICE]; ++ system = cpuTime[CP_SYS]; ++#endif + + used = cpu + system + nice; + total = used + idle + (1-use_nice)*nice; +@@ -148,7 +187,7 @@ + if ( load > prefform->high_color_cpu->text().toInt() ) setColors("high"); + else setColors("low"); + +- draw_timer->changeInterval( 51 - load/2 ); ++ draw_timer->changeInterval( 61 - load/2 ); + label_load->setText( QString("%1%").arg(load) ); + } + |
