/*
==============
SCR_DrawBAT
Crow_bar
==============
*/
void SCR_DrawBAT (void)
{
	extern cvar_t show_bat;
	int x, y, i;
	char stA[80],stB[80];

	if (!show_bat.value)
		return;

	if (!scePowerIsBatteryExist())
	{
		// Don't report anything.
		return;
	}

	const int	level		= scePowerGetBatteryLifePercent();
    const bool	charging	= scePowerGetBatteryChargingStatus();

	// Is the level not sensible?
	if ((level < 0) || (level > 100))
	{
		// Hopefully it will be sensible soon.
		return;
	}

	
    sprintf(stA, "Battery %d%%\n",level);
    sprintf(stB, "Battery %d%% (charging)\n",level);

    if(!charging)
	   x = vid.width - strlen(stA) * 16 - 70;
    else
       x = vid.width - strlen(stB) * 16 - 70;

	y = 2 ; //vid.height - (sb_lines * (vid.height/240) )- 16;

	if(show_bat.value == 2)
    {
	  if(!charging)
	    Draw_String(x, y, stA);
	  else
    	Draw_String(x, y, stB);
    }
    else
    {
	  if(charging)
      {
   	    Draw_Fill (240, y, level, 5, 12+((int)(realtime*8)&120));
      }
      else
	    Draw_Fill (240, y, level, 5, level);
    }

}
Exemple #2
0
int main(int argc, char **argv) {
	int powerCbCallbackId = TEST_NOTZERO(sceKernelCreateCallback, "powerHandler", powerHandler, (void *)0x1234);
	int powerCbCallbackId2 = TEST_NOTZERO(sceKernelCreateCallback, "powerHandler2", powerHandler2, (void *)0x4567);

	int powerCbSlot1 = TEST_RES(scePowerRegisterCallback, -1, powerCbCallbackId);
	int powerCbSlot2 = TEST_RES(scePowerRegisterCallback, -1, powerCbCallbackId2);

	// Register the same callback in two slots, make sure it's only called once.
	int powerCbSlot3 = TEST_RES(scePowerRegisterCallback, -1, powerCbCallbackId2);

	TEST_RES(sceKernelCheckCallback);
	
	TEST_RES(scePowerUnregisterCallback, powerCbSlot1);
	TEST_NAMED_RES("scePowerUnregisterCallback twice", scePowerUnregisterCallback, powerCbSlot1);
	TEST_NAMED_RES("scePowerUnregisterCallback never registered", scePowerUnregisterCallback, 8);
	TEST_NAMED_RES("scePowerUnregisterCallback too low", scePowerUnregisterCallback, -4);
	TEST_NAMED_RES("scePowerUnregisterCallback too high (31)", scePowerUnregisterCallback, 31);
	TEST_NAMED_RES("scePowerUnregisterCallback too high (32)", scePowerUnregisterCallback, 32);

	TEST_RES(scePowerUnregisterCallback, powerCbSlot2);
	TEST_RES(scePowerUnregisterCallback, powerCbSlot3);

	checkpointNext("---");
	
	powerCbSlot1 = TEST_RES(scePowerRegisterCallback, -1, powerCbCallbackId);
	TEST_RES(sceKernelPowerTick, -1);
	TEST_RES(sceKernelCheckCallback);

	// Just testing scheduling.
	scePowerIsBatteryCharging();
	schedf("scePowerIsBatteryCharging\n");
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(scePowerIsBatteryExist);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(scePowerIsPowerOnline);
	TEST_RES(sceKernelCheckCallback);

	TEST_NOTZERO(scePowerGetBatteryLifePercent);
	TEST_RES(sceKernelCheckCallback);

	// Just testing scheduling.
	scePowerGetBatteryChargingStatus();
	schedf("scePowerGetBatteryChargingStatus\n");
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(scePowerIsLowBattery);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(sceKernelPowerLock, 0);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(sceKernelPowerUnlock, 0);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(sceKernelPowerUnlock, 0);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(sceKernelPowerLock, 1);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(sceKernelPowerTick, -1);
	TEST_RES(sceKernelCheckCallback);

	TEST_NAMED_RES("scePowerSetBusClockFrequency to 66", scePowerSetBusClockFrequency, 66);
	TEST_RES(sceKernelCheckCallback);

	TEST_NAMED_RES("scePowerSetBusClockFrequency to 111", scePowerSetBusClockFrequency, 111);
	TEST_RES(sceKernelCheckCallback);

	TEST_NAMED_RES("scePowerSetCpuClockFrequency to 111", scePowerSetCpuClockFrequency, 111);
	TEST_RES(sceKernelCheckCallback);

	TEST_NAMED_RES("scePowerSetCpuClockFrequency to 222", scePowerSetCpuClockFrequency, 222);
	TEST_RES(sceKernelCheckCallback);

	TEST_RES(scePowerUnregisterCallback, powerCbSlot1);

	checkpointNext("---");

	powerCbSlot1 = TEST_NAMED_RES("scePowerRegisterCallback: Normal", scePowerRegisterCallback, 0, powerCbCallbackId);
	TEST_NAMED_RES("scePowerRegisterCallback: Invalid CB", scePowerRegisterCallback, 0, 0);
	TEST_NAMED_RES("scePowerRegisterCallback: Too low slot", scePowerRegisterCallback, -4, powerCbCallbackId);
	TEST_NAMED_RES("scePowerRegisterCallback: Too high (31)", scePowerRegisterCallback, 31, powerCbCallbackId);
	TEST_NAMED_RES("scePowerRegisterCallback: Too high (32)", scePowerRegisterCallback, 32, powerCbCallbackId);
	TEST_NAMED_RES("scePowerRegisterCallback: Twice (same)", scePowerRegisterCallback, 0, powerCbCallbackId);
	TEST_NAMED_RES("scePowerRegisterCallback: Twice (different)", scePowerRegisterCallback, 0, powerCbCallbackId2);
	TEST_RES(scePowerUnregisterCallback, powerCbSlot1);

	TEST_RES(sceKernelCheckCallback);

	powerCbSlot1 = TEST_RES(scePowerRegisterCallback, 0, powerCbCallbackId);
	TEST_RES(scePowerUnregisterCallback, powerCbSlot1);
	TEST_RES(sceKernelDeleteCallback, powerCbCallbackId);

	TEST_RES(sceKernelCheckCallback);

	checkpointNext("---");

	int i;
	for (i = 0; i < 17; i++) {
		TEST_RES(scePowerRegisterCallback, -1, powerCbCallbackId2);
	}

	checkpointNext("---");

	return 0;
}
static int lua_powerGetBatteryChargingStatus(lua_State *L)
{
    if (lua_gettop(L) != 0) return luaL_error(L, "System.powerGetBatteryChargingStatus() takes no arguments");
    lua_pushnumber(L, scePowerGetBatteryChargingStatus());
    return 1;
}
		void check()
		{
			// No battery?
			if (!scePowerIsBatteryExist())
			{
				// Don't report anything.
				return;
			}

			// Get the new battery status.
			const int	level		= scePowerGetBatteryLifePercent();
			const bool	charging	= scePowerGetBatteryChargingStatus();

			// Is the level not sensible?
			if ((level < 0) || (level > 100))
			{
				// Hopefully it will be sensible soon.
				return;
			}

			// Has the battery status changed?
			if ((level != lastLevel) || (charging != lastCharging))
			{
				// Charging?
				if (charging)
				{
					// Inform the player.
					Con_Printf("Battery %d%% (charging)\n",
						level);
				}
				else
				{
					// How much time is left?
					const int	timeLeft	= scePowerGetBatteryLifeTime();

					// Is the time sensible?
					if (timeLeft > 0)
					{
						// Convert the time to something readable.
						const int	hoursLeft	= timeLeft / 60;
						const int	minutesLeft	= timeLeft % 60;

						// Inform the player.
						Con_Printf("Battery %d%% (%d hour%s %d minute%s)\n",
							level,
							hoursLeft,
							(hoursLeft == 1) ? "" : "s",	// Handle pluralisation of hour(s).
							minutesLeft,
							(minutesLeft == 1) ? "" : "s");	// Handle pluralisation of minute(s).
					}
					else
					{
						// It's a silly time, just report the battery level.
						Con_Printf("Battery %d%%\n",
							level);
					}
				}

				// Remember the status for next frame.
				lastLevel		= level;
				lastCharging	= charging;
			}
		}