Ejemplo n.º 1
0
SDL_bool
SDL_GetPowerInfo_PSP(SDL_PowerState * state, int *seconds,
                            int *percent)
{
    int battery = scePowerIsBatteryExist();
    int plugged = scePowerIsPowerOnline();
    int charging = scePowerIsBatteryCharging();

    *state = SDL_POWERSTATE_UNKNOWN;
    *seconds = -1;
    *percent = -1;

    if (!battery) {
        *state = SDL_POWERSTATE_NO_BATTERY;
        *seconds = -1;
        *percent = -1;
    } else if (charging) {
        *state = SDL_POWERSTATE_CHARGING;
        *percent = scePowerGetBatteryLifePercent();
        *seconds = scePowerGetBatteryLifeTime()*60;
    } else if (plugged) {
        *state = SDL_POWERSTATE_CHARGED;
        *percent = scePowerGetBatteryLifePercent();
        *seconds = scePowerGetBatteryLifeTime()*60;
    } else {
        *state = SDL_POWERSTATE_ON_BATTERY;
        *percent = scePowerGetBatteryLifePercent();
        *seconds = scePowerGetBatteryLifeTime()*60;
    }


    return SDL_TRUE;            /* always the definitive answer on PSP. */
}
Ejemplo n.º 2
0
static enum frontend_powerstate frontend_psp_get_powerstate(int *seconds, int *percent)
{
   enum frontend_powerstate ret = FRONTEND_POWERSTATE_NONE;
#ifndef VITA
   int battery                  = scePowerIsBatteryExist();
#endif
   int plugged                  = scePowerIsPowerOnline();
   int charging                 = scePowerIsBatteryCharging();

   *percent = scePowerGetBatteryLifePercent();
   *seconds = scePowerGetBatteryLifeTime() * 60;

#ifndef VITA
   if (!battery)
   {
      ret = FRONTEND_POWERSTATE_NO_SOURCE;
      *seconds = -1;
      *percent = -1;
   }
   else
#endif
   if (charging)
      ret = FRONTEND_POWERSTATE_CHARGING;
   else if (plugged)
      ret = FRONTEND_POWERSTATE_CHARGED;
   else
      ret = FRONTEND_POWERSTATE_ON_POWER_SOURCE;

   return ret;
}
Ejemplo n.º 3
0
static JSBool xgg_system_power_propop_pluggedin_get(JSContext *pcxa, JSObject *pobja, jsval id, jsval *vp)
{
#ifdef	XTPF_Linux
	*vp = BOOLEAN_TO_JSVAL(0);
#endif	//XTPF_Linux
#ifdef	XTPF_PSP
	*vp = BOOLEAN_TO_JSVAL(scePowerIsBatteryCharging());
#endif	//XTPF_PSP

	return  JS_TRUE;
}
Ejemplo n.º 4
0
void xrPlayerSetSpeed(int cpu, int bus)
{
	unsigned int k = pspSdkSetK1(0);
	static bool inited = false;

	if (!inited) {
		scePowerSetClockFrequency2 =
			(void *) FindProc("scePower_Service", "scePower", 0x545A7F3C);
		scePowerIsBatteryCharging =
			(void *) FindProc("scePower_Service", "scePower", 0x1E490401);
		scePower_driver_A09FC577 =
			(void *) FindProc("scePower_Service", "scePower_driver",
							  0xA09FC577);
		scePower_driver_191A3848 =
			(void *) FindProc("scePower_Service", "scePower_driver",
							  0x191A3848);
		inited = true;
	}

	if (scePowerSetClockFrequency2 == 0 || scePowerIsBatteryCharging == 0
		|| scePower_driver_A09FC577 == 0 || scePower_driver_191A3848 == 0) {
		inited = false;
		return;
	}

	scePowerSetClockFrequency2(cpu, cpu, bus);
	if (scePowerIsBatteryCharging() != 0) {
		pspSdkSetK1(k);
		return;
	}
	static int ps1 = 0;

	if (ps1 == 0) {
		scePower_driver_A09FC577(1);
		ps1 = 1;
		pspSdkSetK1(k);
		return;
	}

	static int ps2 = 0;

	if (ps2 == 0) {
		ps1 = 0;
		ps2 = 1;
		pspSdkSetK1(k);
		return;
	}
	scePower_driver_191A3848(0);
	ps1 = 0;
	ps2 = 0;
	pspSdkSetK1(k);
}
Ejemplo n.º 5
0
Archivo: ui.c Proyecto: AMSMM/NJEMU
int draw_battery_status(int draw)
{
	static UINT32 counter = 0;
	static int prev_bat = 0, prev_charging = 0;
	int width, icon, update = 0;
	int bat = scePowerGetBatteryLifePercent();
	int charging = scePowerIsBatteryCharging();
	char bat_left[4];

	counter++;

	if (draw)
	{
		if (bat > 66)		icon = ICON_BATTERY1;
		else if (bat > 33)	icon = ICON_BATTERY2;
		else if (bat >= 10) icon = ICON_BATTERY3;
		else				icon = ICON_BATTERY4;

		if ((charging && (counter % 60 < 40)) || !charging)
			small_icon_shadow(407, 3, UI_COLOR(UI_PAL_TITLE), icon);

		uifont_print_shadow(432, 5, UI_COLOR(UI_PAL_TITLE), "[");
		uifont_print_shadow(462, 5, UI_COLOR(UI_PAL_TITLE), "%]");

		if (bat >= 0 && bat <= 100)
			sprintf(bat_left, "%3d", bat);
		else
			strcpy(bat_left, "---");

		width = uifont_get_string_width(bat_left);
		uifont_print_shadow(462 - width, 5, UI_COLOR(UI_PAL_TITLE), bat_left);

		if (!charging && (bat < 10) && (counter % 120 < 40))
		{
			int sx, sy, ex, ey;
			char message[128];

			sprintf(message, TEXT(WARNING_BATTERY_IS_LOW_PLEASE_CHARGE_BATTERY), bat);
			width = uifont_get_string_width(message);

			sx = (SCR_WIDTH - width) >> 1;
			sy = (SCR_HEIGHT - FONTSIZE) >> 1;
			ex = sx + width;
			ey = sy + FONTSIZE;

			draw_dialog(sx - FONTSIZE/2, sy - FONTSIZE/2, ex + FONTSIZE/2, ey + FONTSIZE/2);

			uifont_print_shadow_center(sy, UI_COLOR(UI_PAL_WARNING), message);
		}
	}
Ejemplo n.º 6
0
void LCD::RenderStatusBattery()
{
	// blit background to buffer
	Graphics::BlitAlphaImageToImage(0, 0, _bg->imageWidth, _bg->imageHeight, _bg, 0, 0, _buffer);
	
	int bp = scePowerGetBatteryLifePercent() / 10;
	string out = "Battery: ";
	for (int i=0; i < bp; i++)
		out += "i";
	Font::PrintImage(out.c_str(), 5, textoffsety, _buffer, _textColor, 3);
	if (scePowerIsBatteryCharging() == 1)
		Font::PrintImage("Charging", 85, textoffsety, _buffer, _textColor, 3);
	else
		Font::PrintImage("Not Charging", 85, textoffsety, _buffer, _textColor, 3);
	
}
Ejemplo n.º 7
0
static void show_battery_warning(void)
{
	if (!scePowerIsBatteryCharging())
	{
		int bat = scePowerGetBatteryLifePercent();

		if (bat < 10)
		{
			static UINT32 counter = 0;

			counter++;
			if ((counter % 120) < 80)
			{
				char warning[128];

				boxfill_alpha(0, 254, SCR_WIDTH-1, SCR_HEIGHT-1, COLOR_BLACK, 12);
				sprintf(warning, TEXT(WARNING_BATTERY_IS_LOW_PLEASE_CHARGE_BATTERY), bat);
				uifont_print_center(256, UI_COLOR(UI_PAL_WARNING), warning);
			}
		}
	}
}
Ejemplo n.º 8
0
static int lua_powerIsBatteryCharging(lua_State *L)
{
    if (lua_gettop(L) != 0) return luaL_error(L, "System.powerIsBatteryCharging() takes no arguments");
    lua_pushboolean(L, scePowerIsBatteryCharging());
    return 1;
}
Ejemplo n.º 9
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;
}