aboutsummaryrefslogtreecommitdiff
path: root/process/device.cpp
diff options
context:
space:
mode:
authorarjan <arjan@arjan-desktop.localdomain>2010-09-08 12:16:35 -0700
committerarjan <arjan@arjan-desktop.localdomain>2010-09-08 12:16:35 -0700
commit3a7d8e45d75881d5e9579e363221661d19020388 (patch)
treee0633730e9d322194bacc3bf252db254c2648c3f /process/device.cpp
parenta842b757b6aa0bede71d3e36c9d86a48c19e481e (diff)
downloadpowertop-3a7d8e45d75881d5e9579e363221661d19020388.tar.gz
Add devices to the power guilty list
Diffstat (limited to 'process/device.cpp')
-rw-r--r--process/device.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/process/device.cpp b/process/device.cpp
new file mode 100644
index 0000000..52bd157
--- /dev/null
+++ b/process/device.cpp
@@ -0,0 +1,44 @@
+#include "device.h"
+#include "../parameters/parameters.h"
+#include <stdio.h>
+
+device_consumer::device_consumer(class device *dev)
+{
+ wake_ups = 0;
+ disk_hits = 0;
+ accumulated_runtime = 0;
+ child_runtime = 0;
+ waker = NULL;
+ device = dev;
+ power = device->power_usage(&all_results, &all_parameters);
+}
+
+
+const char * device_consumer::description(void)
+{
+ sprintf(str, "Device (%s) %s", device->class_name(), device->device_name());
+ return str;
+}
+
+double device_consumer::Witts(void)
+{
+ return power;
+}
+
+static void add_device(class device *device)
+{
+ class device_consumer *dev;
+
+ if (device->show_in_list() == 0)
+ return;
+
+ dev = new class device_consumer(device);
+ all_power.push_back(dev);
+}
+
+void all_devices_to_all_power(void)
+{
+ unsigned int i;
+ for (i = 0; i < all_devices.size(); i++)
+ add_device(all_devices[i]);
+}