+ Added power management APIs.

git-svn-id: trunk@9023 -
This commit is contained in:
yury 2007-10-31 23:48:16 +00:00
parent ef61a42155
commit 03fa047898
3 changed files with 153 additions and 0 deletions

1
.gitattributes vendored
View File

@ -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

View File

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

151
rtl/wince/wininc/power.inc Normal file
View File

@ -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}