⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aeebattery.h

📁 BREW SDK 3.1。BREW应用程序的开发包。
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -