aboutsummaryrefslogtreecommitdiff
path: root/hgewin/power.cpp
diff options
context:
space:
mode:
authorGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-03-08 02:23:30 +0000
committerGravatar chirs241097@gmail.com <chirs241097@gmail.com@c17bf020-1265-9734-9302-a83f62007ddb> 2014-03-08 02:23:30 +0000
commit465842710c7cb87e0e8fffd0b2afe3d624fe2354 (patch)
treebb6c0672ff0bc471e77a88ec9c6e916af2638a5d /hgewin/power.cpp
parent3c7ced2cf99a2874e4d761e6859dbc285bbed5ac (diff)
downloadbullet-lab-remix-465842710c7cb87e0e8fffd0b2afe3d624fe2354.tar.xz
Merge code for Windows, Leaf_Anim rewrite, should fix crashes in Windows.
This revision (or the next one) will be released to public.
Diffstat (limited to 'hgewin/power.cpp')
-rwxr-xr-xhgewin/power.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/hgewin/power.cpp b/hgewin/power.cpp
new file mode 100755
index 0000000..dadcda9
--- /dev/null
+++ b/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);
+}