Browse Source

+ Added power management APIs.

git-svn-id: trunk@9023 -
yury 18 years ago
parent
commit
03fa047898
3 changed files with 153 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 1 0
      rtl/wince/windows.pp
  3. 151 0
      rtl/wince/wininc/power.inc

+ 1 - 0
.gitattributes

@@ -5556,6 +5556,7 @@ rtl/wince/wininc/makefile.inc svneol=native#text/plain
 rtl/wince/wininc/messages.inc svneol=native#text/plain
 rtl/wince/wininc/notify.inc -text
 rtl/wince/wininc/oleaut32.inc svneol=native#text/plain
+rtl/wince/wininc/power.inc -text
 rtl/wince/wininc/redef.inc svneol=native#text/plain
 rtl/wince/wininc/simmgr.inc svneol=native#text/plain
 rtl/wince/wininc/struct.inc svneol=native#text/plain

+ 1 - 0
rtl/wince/windows.pp

@@ -50,6 +50,7 @@ interface
 {$i simmgr.inc}
 {$i tapi.inc}
 {$i notify.inc}
+{$i power.inc}
 {$i cemiss.inc}
 
 {$i redef.inc}

+ 151 - 0
rtl/wince/wininc/power.inc

@@ -0,0 +1,151 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2007 Free Pascal development team.
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************
+
+  Automatically converted by H2Pas 1.0.0 from power.h
+  The following command line parameters were used:
+    -d
+    -c
+    -w
+    power.h
+}
+
+{ Power Management APIs }
+
+{$ifdef read_interface}
+const
+   AC_LINE_OFFLINE = $00;   
+   AC_LINE_ONLINE = $01;   
+   AC_LINE_BACKUP_POWER = $02;   
+   AC_LINE_UNKNOWN = $FF;   
+   BATTERY_FLAG_HIGH = $01;
+   BATTERY_FLAG_LOW = $02;   
+   BATTERY_FLAG_CRITICAL = $04;   
+   BATTERY_FLAG_CHARGING = $08;   
+   BATTERY_FLAG_NO_BATTERY = $80;   
+   BATTERY_FLAG_UNKNOWN = $FF;   
+   BATTERY_PERCENTAGE_UNKNOWN = $FF;   
+   BATTERY_LIFE_UNKNOWN = $FFFFFFFF;   
+type
+
+   _SYSTEM_POWER_STATUS_EX = record
+        ACLineStatus : BYTE;
+        BatteryFlag : BYTE;
+        BatteryLifePercent : BYTE;
+        Reserved1 : BYTE;
+        BatteryLifeTime : DWORD;
+        BatteryFullLifeTime : DWORD;
+        Reserved2 : BYTE;
+        BackupBatteryFlag : BYTE;
+        BackupBatteryLifePercent : BYTE;
+        Reserved3 : BYTE;
+        BackupBatteryLifeTime : DWORD;
+        BackupBatteryFullLifeTime : DWORD;
+     end;
+   SYSTEM_POWER_STATUS_EX = _SYSTEM_POWER_STATUS_EX;
+   PSYSTEM_POWER_STATUS_EX = ^_SYSTEM_POWER_STATUS_EX;
+   LPSYSTEM_POWER_STATUS_EX = ^_SYSTEM_POWER_STATUS_EX;
+{
+	@struct SYSTEM_POWER_STATUS_EX2 | contains information about the power status
+	of the system.
+
+    @field BYTE | ACLineStatus | AC power status. Must be one of
+    AC_LINE_OFFLINE, AC_LINE_ONLINE, AC_LINE_BACKUP_POWER, or AC_LINE_UNKNOWN.
+
+    @field BYTE | BatteryFlag | Battery charge status.  Must be one of
+	BATTERY_FLAG_HIGH, BATTERY_FLAG_LOW, BATTERY_FLAG_CRITICAL,
+	BATTERY_FLAG_CHARGING, BATTERY_FLAG_NO_BATTERY, or BATTERY_FLAG_UNKNOWN
+
+    @field BYTE | BatteryLifePercent | Percentage of full battery charge
+    remaining.  Must be in the range 0 to 100, or BATTERY_PERCENTAGE_UNKNOWN.
+
+	@field BYTE | Reserved1 | Must be zero.
+
+    @field DWORD |  BatteryLifeTime | Number of seconds of battery life
+    remaining, or BATTERY_LIFE_UNKNOWN if remaining seconds are unknown.
+
+    @field DWORD | BatteryFullLifeTime | Number of seconds of battery life when
+    at full charge, or BATTERY_LIFE_UNKNOWN if full lifetime is unknown.
+
+	@field BYTE | Reserved2 | Must be zero.
+
+    @field BYTE | BackupBatteryFlag | Backup battery charge status.  Must be one
+    of BATTERY_FLAG_HIGH, BATTERY_FLAG_LOW, BATTERY_FLAG_CRITICAL,
+	BATTERY_FLAG_CHARGING, BATTERY_FLAG_NO_BATTERY, or BATTERY_FLAG_UNKNOWN.
+
+    @field BYTE | BackupBatteryLifePercent |  Percentage of full backup battery
+    charge remaining.  Must be in the range 0 to 100, or
+    BATTERY_PERCENTAGE_UNKNOWN.
+
+	@field BYTE | Reserved3 | Must be zero.
+
+    @field DWORD | BackupBatteryLifeTime | Number of seconds of backup battery
+    life remaining, or BATTERY_LIFE_UNKNOWN if remaining seconds are unknown.
+
+    @field DWORD | BackupBatteryFullLifeTime | Number of seconds of backup
+    battery life when at full charge, or BATTERY_LIFE_UNKNOWN if full lifetime
+    is unknown.
+
+ }
+
+const
+   BATTERY_CHEMISTRY_ALKALINE = $01;   
+   BATTERY_CHEMISTRY_NICD = $02;   
+   BATTERY_CHEMISTRY_NIMH = $03;   
+   BATTERY_CHEMISTRY_LION = $04;   
+   BATTERY_CHEMISTRY_LIPOLY = $05;   
+   BATTERY_CHEMISTRY_ZINCAIR = $06;   
+   BATTERY_CHEMISTRY_UNKNOWN = $FF;   
+{ Above here is old struct, below are new fields }
+{ Reports Reading of battery voltage in millivolts (0..65535 mV) }
+{ Reports Instantaneous current drain (mA). 0..32767 for charge, 0 to -32768 for discharge }
+{ Reports short term average of device current drain (mA). 0..32767 for charge, 0 to -32768 for discharge }
+{ Reports time constant (mS) of integration used in reporting BatteryAverageCurrent }
+{ Reports long-term cumulative average DISCHARGE (mAH). Reset by charging or changing the batteries. 0 to 32767 mAH }
+{ Reports Battery temp in 0.1 degree C (-3276.8 to 3276.7 degrees C) }
+{ Reports Reading of backup battery voltage }
+{ See Chemistry defines above }
+{ New fields can be added below, but don't change any existing ones }
+type
+
+   _SYSTEM_POWER_STATUS_EX2 = record
+        ACLineStatus : BYTE;
+        BatteryFlag : BYTE;
+        BatteryLifePercent : BYTE;
+        Reserved1 : BYTE;
+        BatteryLifeTime : DWORD;
+        BatteryFullLifeTime : DWORD;
+        Reserved2 : BYTE;
+        BackupBatteryFlag : BYTE;
+        BackupBatteryLifePercent : BYTE;
+        Reserved3 : BYTE;
+        BackupBatteryLifeTime : DWORD;
+        BackupBatteryFullLifeTime : DWORD;
+        BatteryVoltage : DWORD;
+        BatteryCurrent : DWORD;
+        BatteryAverageCurrent : DWORD;
+        BatteryAverageInterval : DWORD;
+        BatterymAHourConsumed : DWORD;
+        BatteryTemperature : DWORD;
+        BackupBatteryVoltage : DWORD;
+        BatteryChemistry : BYTE;
+     end;
+   SYSTEM_POWER_STATUS_EX2 = _SYSTEM_POWER_STATUS_EX2;
+   PSYSTEM_POWER_STATUS_EX2 = ^_SYSTEM_POWER_STATUS_EX2;
+   LPSYSTEM_POWER_STATUS_EX2 = ^_SYSTEM_POWER_STATUS_EX2;
+{ @CESYSGEN IF COREDLL_BATTERY }
+
+function GetSystemPowerStatusEx(var SystemPowerStatusEx: SYSTEM_POWER_STATUS_EX; fUpdate:BOOL):BOOL;external KernelDLL name 'GetSystemPowerStatusEx';
+{ Return value : 0 = fail.  Non-zero indicates length of returned data. }
+function GetSystemPowerStatusEx2(var SystemPowerStatusEx2: SYSTEM_POWER_STATUS_EX2; dwLen:DWORD; fUpdate:BOOL):DWORD;external KernelDLL name 'GetSystemPowerStatusEx2';
+
+{$endif read_interface}