aboutsummaryrefslogtreecommitdiff
path: root/archive/hgewin/power.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archive/hgewin/power.cpp')
-rwxr-xr-xarchive/hgewin/power.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/archive/hgewin/power.cpp b/archive/hgewin/power.cpp
new file mode 100755
index 0000000..dadcda9
--- /dev/null
+++ b/archive/hgewin/power.cpp
@@ -0,0 +1,53 @@
+/*
+** Haaf's Game Engine 1.8
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** Core functions implementation: power status
+*/
+
+
+#include "hge_impl.h"
+
+
+void HGE_Impl::_InitPowerStatus()
+{
+ hKrnl32 = LoadLibrary("kernel32.dll");
+
+ if(hKrnl32 != NULL)
+ lpfnGetSystemPowerStatus = (GetSystemPowerStatusFunc)GetProcAddress(hKrnl32, "GetSystemPowerStatus");
+
+ _UpdatePowerStatus();
+}
+
+
+void HGE_Impl::_UpdatePowerStatus()
+{
+ SYSTEM_POWER_STATUS ps;
+
+ if(lpfnGetSystemPowerStatus != NULL && lpfnGetSystemPowerStatus(&ps))
+ {
+ if(ps.ACLineStatus == 1)
+ {
+ nPowerStatus = HGEPWR_AC;
+ }
+ else if(ps.BatteryFlag < 128)
+ {
+ nPowerStatus = ps.BatteryLifePercent;
+ }
+ else
+ {
+ nPowerStatus = HGEPWR_UNSUPPORTED;
+ }
+ }
+ else
+ {
+ nPowerStatus = HGEPWR_UNSUPPORTED;
+ }
+}
+
+
+void HGE_Impl::_DonePowerStatus()
+{
+ if(hKrnl32 != NULL) FreeLibrary(hKrnl32);
+}