📄 aeebattery.h
字号:
#ifndef AEEBATTERY_H
#define AEEBATTERY_H
/*=============================================================================
FILE: AEEBattery.h
SERVICES: IBattery interface definition
GENERAL DESCRIPTION:
The IBattery interface provides battery related information
PUBLIC CLASSES AND STATIC FUNCTIONS:
IBattery, IBatteryNotifier
INITIALIZATION AND SEQUENCING REQUIREMENTS:
None
(c) COPYRIGHT 2002,2004 QUALCOMM Incorporated.
All Rights Reserved.
QUALCOMM Proprietary
=============================================================================*/
/*=============================================================================
INCLUDE FILES FOR MODULE
=============================================================================*/
#include "AEE.h"
#include "AEEBATTERY.bid"
#include "AEEBATTERYNOTIFIER.bid"
/*=============================================================================
DEFINITIONS AND CONSTANTS
=============================================================================*/
//
// IBatteryNotifier EVT_NOTIFY events
//
#define NMASK_BATTERY_STATUS_CHANGE 0x0001
#define NMASK_BATTERY_LEVEL_CHANGE 0x0002
#define NMASK_BATTERY_CHARGERSTATUS_CHANGE 0x0004
#define NMASK_BATTERY_EXTPWR_CHANGE 0x0008
typedef struct IBatteryNotifier IBatteryNotifier;
/*===========================================================================
TYPE DECLARATIONs
===========================================================================*/
#define AEEBATTERY_CHARGERSTATUS_UNKNOWN 0
#define AEEBATTERY_CHARGERSTATUS_NO_BATT 1
#define AEEBATTERY_CHARGERSTATUS_UNKNOWN_BATT 2
#define AEEBATTERY_CHARGERSTATUS_DEAD_BATT 3
#define AEEBATTERY_CHARGERSTATUS_NO_CHARGE 4
#define AEEBATTERY_CHARGERSTATUS_NO_CHARGER 5
#define AEEBATTERY_CHARGERSTATUS_CANNOT_CHARGE 6
#define AEEBATTERY_CHARGERSTATUS_INIT 7
#define AEEBATTERY_CHARGERSTATUS_CHARGING 8
#define AEEBATTERY_CHARGERSTATUS_FULLY_CHARGE 9
#define AEEBATTERY_CHARGERSTATUS_OVERVOLTAGE 10
#define AEEBATTERY_CHARGERSTATUS_MAX 0xFFFFFFFF
typedef int AEEBatteryChargerStatus;
#define AEEBATTERY_STATUS_UNKNOWN 0
#define AEEBATTERY_STATUS_POWERDOWN 1
#define AEEBATTERY_STATUS_LOW 2
#define AEEBATTERY_STATUS_NORMAL 3
#define AEEBATTERY_STATUS_MAX 0xFFFFFFFF
typedef int AEEBatteryStatus;
#define AEEBATTERY_ITEM_STATUS 0
#define AEEBATTERY_ITEM_LEVEL 1
#define AEEBATTERY_ITEM_CHARGERSTATUS 2
#define AEEBATTERY_ITEM_EXTPWR 3
#define AEEBATTERY_ITEM_LAST 4
#define AEEBATTERY_ITEM_MAX 0xFFFFFFFF
typedef int AEEBatteryItemID;
// Define IBattery model events
#define EVT_MDL_BATTERY_STATUS_CHANGE (EVT_MDL_GENERIC_CHANGE + 1)
#define EVT_MDL_BATTERY_LEVEL_CHANGE (EVT_MDL_GENERIC_CHANGE + 2)
#define EVT_MDL_BATTERY_CHARGERSTATUS_CHANGE (EVT_MDL_GENERIC_CHANGE + 3)
#define EVT_MDL_BATTERY_EXTPWR_CHANGE (EVT_MDL_GENERIC_CHANGE + 4)
/*===========================================================================
CLASS DEFINITIONS
===========================================================================*/
// Define IBattery interface
typedef struct IBattery IBattery;
AEEINTERFACE(IBattery)
{
INHERIT_IQueryInterface(IBattery);
int (*GetBatteryItem)(IBattery *p, uint32 nItemID, uint32 *pdwData);
};
static __inline uint32 IBATTERY_AddRef(IBattery *p)
{
return AEEGETPVTBL((p),IBattery)->AddRef(p);
}
static __inline uint32 IBATTERY_Release(IBattery *p)
{
return AEEGETPVTBL((p),IBattery)->Release(p);
}
static __inline int IBATTERY_QueryInterface(IBattery *p, AEECLSID id, void **ppo)
{
return AEEGETPVTBL((p),IBattery)->QueryInterface(p,id,ppo);
}
static __inline int IBATTERY_GetBatteryStatus(IBattery *p, AEEBatteryStatus *pBatteryStatus)
{
return AEEGETPVTBL(p,IBattery)->GetBatteryItem(p, AEEBATTERY_ITEM_STATUS, (uint32*)pBatteryStatus);
}
static __inline int IBATTERY_GetBatteryLevel(IBattery *p, uint32 * pdwData)
{
return AEEGETPVTBL(p,IBattery)->GetBatteryItem(p, AEEBATTERY_ITEM_LEVEL, (uint32*)pdwData);
}
static __inline int IBATTERY_GetBatteryChargerStatus(IBattery *p, AEEBatteryChargerStatus *pBatteryChargerStatus)
{
return AEEGETPVTBL(p,IBattery)->GetBatteryItem(p, AEEBATTERY_ITEM_CHARGERSTATUS, (uint32*)pBatteryChargerStatus);
}
static __inline int IBATTERY_IsExternalPowerPresent(IBattery *p, boolean *pbData)
{
uint32 dwData = 0;
int nErr;
if (!pbData)
{
return EBADPARM;
}
nErr = AEEGETPVTBL(p,IBattery)->GetBatteryItem(p, AEEBATTERY_ITEM_EXTPWR, &dwData);
if (nErr == SUCCESS)
{
*pbData = (dwData ? TRUE : FALSE);
}
return nErr;
}
#define GETBATTERYSCALE(dwLevel) (uint16)(dwLevel >> 16)
#define GETBATTERYLEVEL(dwLevel) (uint16)(dwLevel & 0x0000ffff)
/*=============================================================================
DATA STRUCTURE DOCUMENTATION
===============================================================================
AEEBatteryChargerStatus
Description:
Specifies the battery charger status
Definition:
typedef enum {
AEEBATTERY_CHARGERSTATUS_UNKNOWN,
AEEBATTERY_CHARGERSTATUS_NO_BATT,
AEEBATTERY_CHARGERSTATUS_UNKNOWN_BATT,
AEEBATTERY_CHARGERSTATUS_DEAD_BATT,
AEEBATTERY_CHARGERSTATUS_NO_CHARGE,
AEEBATTERY_CHARGERSTATUS_NO_CHARGER,
AEEBATTERY_CHARGERSTATUS_CANNOT_CHARGE,
AEEBATTERY_CHARGERSTATUS_INIT,
AEEBATTERY_CHARGERSTATUS_CHARGING,
AEEBATTERY_CHARGERSTATUS_FULLY_CHARGE,
AEEBATTERY_CHARGERSTATUS_OVERVOLTAGE,
AEEBATTERY_CHARGERSTATUS_MAX = 0xFFFFFFFF
} AEEBatteryChargerStatus;
Members:
AEEBATTERY_CHARGERSTATUS_UNKNOWN: Charger status not known
AEEBATTERY_CHARGERSTATUS_NO_BATT: Charger couldn't detect a battery
AEEBATTERY_CHARGERSTATUS_UNKNOWN_BATT: Charger found an unrecognized battery
AEEBATTERY_CHARGERSTATUS_DEAD_BATT: Charger found a dead battery
AEEBATTERY_CHARGERSTATUS_NO_CHARGE: Nothing's wrong. Just haven't started
AEEBATTERY_CHARGERSTATUS_NO_CHARGER: Charger isn't working now
AEEBATTERY_CHARGERSTATUS_CANNOT_CHARGE: Cannot charge for the moment
AEEBATTERY_CHARGERSTATUS_INIT: Initialized state
AEEBATTERY_CHARGERSTATUS_CHARGING: Battery is being charged
AEEBATTERY_CHARGERSTATUS_FULLY_CHARGE: Battery is fully charged
AEEBATTERY_CHARGERSTATUS_OVERVOLTAGE: Voltage input too high for phone
Comments:
None
See Also:
None
===============================================================================
AEEBatteryStatus
Description:
Specifies the battery status
Definition:
typedef enum {
AEEBATTERY_STATUS_UNKNOWN,
AEEBATTERY_STATUS_POWERDOWN,
AEEBATTERY_STATUS_LOW,
AEEBATTERY_STATUS_NORMAL,
AEEBATTERY_STATUS_MAX = 0xFFFFFFFF
} AEEBatteryStatus;
Members:
AEEBATTERY_STATUS_UNKNOWN: Battery status is unknown
AEEBATTERY_STATUS_POWERDOWN: Phone must be powered down
AEEBATTERY_STATUS_LOW: Battery is low
AEEBATTERY_STATUS_NORMAL: Battery is normal
Comments:
None
See Also:
None
===============================================================================
IBattery model events
Description:
Events provided to listeners registered with IBattery IModel
interface.
Definition:
#define EVT_MDL_BATTERY_STATUS_CHANGE (EVT_MDL_GENERIC_CHANGE + 1)
#define EVT_MDL_BATTERY_LEVEL_CHANGE (EVT_MDL_GENERIC_CHANGE + 2)
#define EVT_MDL_BATTERY_CHARGERSTATUS_CHANGE (EVT_MDL_GENERIC_CHANGE + 3)
#define EVT_MDL_BATTERY_EXTPWR_CHANGE (EVT_MDL_GENERIC_CHANGE + 4)
Members:
EVT_MDL_BATTERY_STATUS_CHANGE : Event sent when battery status changes. dwParam of
the ModelEvent struct contains the new battery status.
EVT_MDL_BATTERY_LEVEL_CHANGE : Event sent when battery level changes. dwParam of
the ModelEvent struct contains the new battery level.
EVT_MDL_BATTERY_CHARGERSTATUS_CHANGE: Event sent when battery charger status changes.
dwParam of the ModelEvent struct contains the new
battery charger status.
EVT_MDL_BATTERY_EXTPWR_CHANGE : Event sent when external power state changes. dwParam
of the ModelEvent struct contains TRUE if external
power is currently present and FALSE if external
power is currently not present.
Comments:
None
See Also:
None
===============================================================================
MACROS DOCUMENTATION
===============================================================================
GETBATTERYSCALE()
Description:
This macro retrieves battery level scale from 32 bit battery level value
provided by IBATTERY_GetBatteryLevel().
Definition:
#define GETBATTERYSCALE(dwLevel) (uint16)(dwLevel >> 16)
Parameters:
dwLevel: 32 bit battery level value provided by IBATTERY_GetBatteryLevel()
Evaluation Value:
16 bit battery level scale
Comments:
None
Side Effects:
None
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -