diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-24 18:58:29 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-24 18:58:29 (GMT) |
commit | 3e2e0d3785d4527799441540addeee228f7f8359 (patch) | |
tree | cb936b0771edbbd8926d6f966d257e46eadcda81 /SwifTools/Idle/MacOSXIdleQuerier.cpp | |
parent | c7fb528f0d80f9d96a2d84444352386d5d4288dc (diff) | |
download | swift-contrib-3e2e0d3785d4527799441540addeee228f7f8359.zip swift-contrib-3e2e0d3785d4527799441540addeee228f7f8359.tar.bz2 |
Added MacOSX Idle querier.
Diffstat (limited to 'SwifTools/Idle/MacOSXIdleQuerier.cpp')
-rw-r--r-- | SwifTools/Idle/MacOSXIdleQuerier.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/SwifTools/Idle/MacOSXIdleQuerier.cpp b/SwifTools/Idle/MacOSXIdleQuerier.cpp new file mode 100644 index 0000000..ac6dff9 --- /dev/null +++ b/SwifTools/Idle/MacOSXIdleQuerier.cpp @@ -0,0 +1,25 @@ +#include "SwifTools/Idle/MacOSXIdleQuerier.h" + +#include <cassert> +#include <iostream> +#include <CoreFoundation/CoreFoundation.h> + +namespace Swift { + +MacOSXIdleQuerier::MacOSXIdleQuerier() : ioService(NULL) { + mach_port_t masterPort; + IOMasterPort(MACH_PORT_NULL, &masterPort); + ioService = IOServiceGetMatchingService(masterPort, IOServiceMatching("IOHIDSystem")); + assert(ioService); +} + +int MacOSXIdleQuerier::getIdleTimeSeconds() { + CFTypeRef property = IORegistryEntryCreateCFProperty(ioService, CFSTR("HIDIdleTime"), kCFAllocatorDefault, 0); + uint64_t idle = 0; + bool result = CFNumberGetValue((CFNumberRef)property, kCFNumberSInt64Type, &idle); + assert(result); + CFRelease(property); + return idle / 1000000000; +} + +} |