summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-24 19:24:36 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-24 19:24:36 (GMT)
commitadc92c14ef621d8106796e63f499ec88eb3fe28e (patch)
tree5928678592b9ba049d99782f74a89dc8ebbb2832
parent70de00c6cb3ecf5feccf5c2590595400cf501e57 (diff)
downloadswift-adc92c14ef621d8106796e63f499ec88eb3fe28e.zip
swift-adc92c14ef621d8106796e63f499ec88eb3fe28e.tar.bz2
Added Windows idle querier.
-rw-r--r--SConstruct2
-rw-r--r--SwifTools/Idle/PlatformIdleQuerier.cpp4
-rw-r--r--SwifTools/Idle/WindowsIdleQuerier.cpp21
-rw-r--r--SwifTools/Idle/WindowsIdleQuerier.h12
-rw-r--r--SwifTools/SConscript2
5 files changed, 39 insertions, 2 deletions
diff --git a/SConstruct b/SConstruct
index cfc34c5..ada5ef2 100644
--- a/SConstruct
+++ b/SConstruct
@@ -44,97 +44,97 @@ if env["PLATFORM"] == "darwin" :
env.Tool("Nib", toolpath = ["#/BuildTools/SCons/Tools"])
env.Tool("AppBundle", toolpath = ["#/BuildTools/SCons/Tools"])
if env["PLATFORM"] == "win32" :
env.Tool("WindowsBundle", toolpath = ["#/BuildTools/SCons/Tools"])
# Default compiler flags
env["CCFLAGS"] = env.get("ccflags", [])
env["LINKFLAGS"] = env.get("linkflags", [])
if env["optimize"] :
env.Append(CCFLAGS = "-O2")
if env["PLATFORM"] == "win32" :
env.Append(CCFLAGS = ["GL"])
env.Append(LINKFLAGS = ["/INCREMENTAL:NO", "/LTCG"])
if env["debug"] :
if env["PLATFORM"] == "win32" :
env.Append(CCFLAGS = ["/Zi", "/MDd"])
env.Append(LINKFLAGS = ["/DEBUG"])
else :
env.Append(CCFLAGS = "-g")
elif env["PLATFORM"] == "win32" :
env.Append(CCFLAGS = ["/MD"])
if env.get("universal", 0) :
assert(env["PLATFORM"] == "darwin")
env.Append(CCFLAGS = [
"-isysroot", "/Developer/SDKs/MacOSX10.4u.sdk",
"-arch", "i386",
"-arch", "ppc"])
env.Append(LINKFLAGS = [
"-mmacosx-version-min=10.4",
"-Wl", "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk",
"-arch", "i386",
"-arch", "ppc"])
if env["warnings"] :
if env["PLATFORM"] == "win32" :
env.Append(CCFLAGS = ["/Wall"])
else :
env.Append(CCFLAGS = ["-W", "-Wall"])
#env.Append(CCFLAGS = ["-W", "-Wall", "-Wredundant-decls", "-pedantic", "-Wno-long-long", "-Woverloaded-virtual", "-Wundef", "-Wfloat-equal", "-Wold-style-cast"])
if env.get("coverage", 0) :
assert(env["PLATFORM"] != "win32")
env.Append(CCFLAGS = ["-fprofile-arcs", "-ftest-coverage"])
env.Append(LINKFLAGS = ["-fprofile-arcs", "-ftest-coverage"])
if env["PLATFORM"] == "win32" :
- env.Append(LIBS = ["dnsapi", "ws2_32", "wsock32"])
+ env.Append(LIBS = ["user32", "dnsapi", "ws2_32", "wsock32"])
env.Append(CCFLAGS = ["/EHsc", "/nologo"])
env["LINKCOM"] = [env["LINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;1']
env["SHLINKCOM"] = [env["SHLINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2']
if env["PLATFORM"] == "darwin" :
env.Append(FRAMEWORKS = ["IOKit", "AppKit"])
# Testing
env["TEST_TYPE"] = env["test"]
env.Alias("check", ".")
if "check" in ARGUMENTS or "check" in COMMAND_LINE_TARGETS :
env["TEST_TYPE"] = "unit"
env["TEST"] = (env["TEST_TYPE"] != "none") or env.GetOption("clean")
if env.get("valgrind", 0) :
env["TEST_RUNNER"] = "valgrind --suppressions=QA/valgrind.supp -q --leak-check=full --track-origins=yes "
# Packaging
if ARGUMENTS.get("SWIFT_INSTALLDIR", "") :
env["SWIFT_INSTALLDIR"] = Dir(ARGUMENTS["SWIFT_INSTALLDIR"]).abspath
conf_env = env.Clone()
Export("env")
Export("conf_env")
################################################################################
# Extend the default build environment (not affecting the configure env)
#
# Keeping both environments separated mostly because of SCons Issue 2391,
# although it doesn't hurt to separate them (e.g. not have pretty printed
# strings in config.log)
################################################################################
#if env["PLATFORM"] == "win32" :
# env["MSVC_BATCH"] = 1
# Pretty output
def colorize(command, target, color) :
colors = { "red": "31", "green": "32", "yellow": "33", "blue": "34" }
prefix = ""
suffix = ""
if sys.stdout.isatty() and env["PLATFORM"] != "win32":
prefix = "\033[0;" + colors[color] + ";140m"
suffix = "\033[0m"
return " " + prefix + command + suffix + " " + target
if int(ARGUMENTS.get("V", 0)) == 0:
diff --git a/SwifTools/Idle/PlatformIdleQuerier.cpp b/SwifTools/Idle/PlatformIdleQuerier.cpp
index 80a5da3..fb206b7 100644
--- a/SwifTools/Idle/PlatformIdleQuerier.cpp
+++ b/SwifTools/Idle/PlatformIdleQuerier.cpp
@@ -1,31 +1,35 @@
#include "SwifTools/Idle/PlatformIdleQuerier.h"
#include "Swiften/Base/Platform.h"
#if defined(SWIFTEN_PLATFORM_MACOSX)
#include "SwifTools/Idle/MacOSXIdleQuerier.h"
+#elif defined(SWIFTEN_PLATFORM_WINDOWS)
+#include "SwifTools/Idle/WindowsIdleQuerier.h"
#elif defined(HAVE_XSS)
#include "SwifTools/Idle/XSSIdleQuerier.h"
#else
#include "SwifTools/Idle/DummyIdleQuerier.h"
#endif
#include <cassert>
#include <iostream>
namespace Swift {
PlatformIdleQuerier::PlatformIdleQuerier() : querier(NULL) {
#if defined(SWIFTEN_PLATFORM_MACOSX)
querier = new MacOSXIdleQuerier();
+#elif defined(SWIFTEN_PLATFORM_WINDOWS)
+ querier = new WindowsIdleQuerier();
#elif defined(HAVE_XSS)
querier = new XSSIdleQuerier();
#else
querier = new DummyIdleQuerier();
#endif
}
PlatformIdleQuerier::~PlatformIdleQuerier() {
delete querier;
}
}
diff --git a/SwifTools/Idle/WindowsIdleQuerier.cpp b/SwifTools/Idle/WindowsIdleQuerier.cpp
new file mode 100644
index 0000000..11b1e75
--- /dev/null
+++ b/SwifTools/Idle/WindowsIdleQuerier.cpp
@@ -0,0 +1,21 @@
+#include "SwifTools/Idle/WindowsIdleQuerier.h"
+
+#include <windows.h>
+
+namespace Swift {
+
+WindowsIdleQuerier::WindowsIdleQuerier() {
+}
+
+int WindowsIdleQuerier::getIdleTimeSeconds() {
+ LASTINPUTINFO info;
+ info.cbSize = sizeof(info);
+ if (GetLastInputInfo(&info)) {
+ return (GetTickCount() - info.dwTime) / 1000;
+ }
+ else {
+ return 0;
+ }
+}
+
+}
diff --git a/SwifTools/Idle/WindowsIdleQuerier.h b/SwifTools/Idle/WindowsIdleQuerier.h
new file mode 100644
index 0000000..0786cbe
--- /dev/null
+++ b/SwifTools/Idle/WindowsIdleQuerier.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "SwifTools/Idle/IdleQuerier.h"
+
+namespace Swift {
+ class WindowsIdleQuerier : public IdleQuerier {
+ public:
+ WindowsIdleQuerier();
+
+ virtual int getIdleTimeSeconds();
+ };
+}
diff --git a/SwifTools/SConscript b/SwifTools/SConscript
index a92e0dc..2ae4e4e 100644
--- a/SwifTools/SConscript
+++ b/SwifTools/SConscript
@@ -1,35 +1,35 @@
Import("env")
env["SWIFTOOLS_FLAGS"] = {
"LIBPATH": [Dir(".")],
"LIBS": ["SwifTools"]
}
myenv = env.Clone()
myenv.MergeFlags(myenv["BOOST_FLAGS"])
sources = [
"Idle/IdleDetector.cpp",
"Idle/ActualIdleDetector.cpp",
"Idle/IdleQuerier.cpp",
"Idle/PlatformIdleQuerier.cpp",
"Linkify.cpp",
]
if myenv["PLATFORM"] == "win32" :
- pass
+ sources += ["Idle/WindowsIdleQuerier.cpp"]
elif myenv["PLATFORM"] == "darwin" :
sources += ["Idle/MacOSXIdleQuerier.cpp"]
elif myenv["HAVE_XSS"] :
myenv.Append(CPPDEFINES = ["HAVE_XSS"])
sources += ["Idle/XSSIdleQuerier.cpp"]
else :
sources += ["Idle/DummyIdleQuerier.cpp"]
myenv.StaticLibrary("SwifTools", sources)
SConscript(dirs = [
"Idle/IdleQuerierTest",
"Idle/UnitTest",
"UnitTest"
])