summaryrefslogtreecommitdiff
path: root/sysutils/kcube/files/patch-kcube.cpp
diff options
context:
space:
mode:
authorMarkus Brueffer <markus@FreeBSD.org>2004-02-29 23:28:23 +0000
committerMarkus Brueffer <markus@FreeBSD.org>2004-02-29 23:28:23 +0000
commit4e7bd06dec76974fe4508d02d4aad1d5ab1edf7c (patch)
treef6d288ff6da6fb4f65032b1b51da8ad645a2dd6c /sysutils/kcube/files/patch-kcube.cpp
parentRemove 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.cpp93
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) );
+ }
+