说明输入设备的电池状态。
语法
typedef struct GameInputBatteryState {
float chargeRate;
float maxChargeRate;
float remainingCapacity;
float fullChargeCapacity;
GameInputBatteryStatus status;
} GameInputBatteryState
成员
chargeRate
类型:float
设备充电率的瓦特小时值。 如果设备未提供估计值,则 chargeRate 设置为 fullChargeCapacity 的 +/- 10%;如果充电状态为“空闲”,则为零。
maxChargeRate
类型:float
可以对电池充电而不损坏电池的最大速率的瓦特小时值。
remainingCapacity
类型:float
输入设备电池中剩余电量的瓦特小时值。 如果设备未提供估计值,remainingCapacity 设置为 fullChargeCapacity 的值乘以剩余电量百分比。
fullChargeCapacity
类型:float
输入设备电池完全容量的瓦特小时值。 如果设备未提供估计值,fullChargeCapacity 设置为 1 瓦特小时。
status
类型:GameInputBatteryStatus
输入设备上电池的状态。
备注
所有浮点值都以瓦特小时为单位表示。 如果设备不具有电池或无法确定当前电池状态,则所有浮点值都为零。 否则,所有浮点值都是正数字,但 chargeRate 成员除外,它在电池放电时为负数值。
只要可以从设备时检索,就可以提供准确的瓦特小时值。 但是,并非所有设备都提供此信息,或者可能仅提供某些值。 将向任何未提供准确瓦特小时读数的浮点值分配默认值,如下所示:
- 当充电/放电时,chargeRate 设置为 fullChargeCapacity 值的 +/- 10%;如果充电状态为“空闲”,则为零。
- remainingCapacity 设置为 fullChargeCapacity 的值乘以剩余电量百分比
- fullChargeCapacity 设置为 1 瓦特小时的值
许多游戏控制器具有低成本的电池充电线路,这些线路只能报告粒度充电级别,而不能报告连续充电百分比。 在此情况下,精细值映射到充电百分比,如下表所示:
精细的充电级别 | 映射的百分比值 |
---|---|
完全 | 100% |
中等 | 70% |
低 | 40% |
严重 | 10% |
当显示电池级别时,为获得最佳的用户体验,显示电池电量“栏”的任何 UI 代码都应与此表中的值相对应。
如果从系统断开设备时调用 IGameInputDevice::GetBatteryState 方法,则所有浮点值都设置为零,而状态成员设置为 GameInputBatteryUnknown(即使连接该设备时有效值可用)。 此方法只检索本地内存中存储的数据,可以安全地从任何上下文调用。
要求
头文件:GameInput.h
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机