1
0
mirror of git://projects.qi-hardware.com/gmenu2x.git synced 2024-11-23 03:24:38 +02:00

Open battery/USB file handlers only when needed.

This commit is contained in:
Paul Cercueil 2012-06-24 22:48:50 +02:00
parent 7484ad2ef0
commit 0d9977e54c
2 changed files with 11 additions and 26 deletions

View File

@ -241,22 +241,6 @@ void GMenu2X::initCPULimits() {
cpuFreqAppDefault = (cpuFreqAppDefault / cpuFreqMultiple) * cpuFreqMultiple; cpuFreqAppDefault = (cpuFreqAppDefault / cpuFreqMultiple) * cpuFreqMultiple;
} }
void GMenu2X::init() {
batteryHandle = 0;
usbHandle = 0;
acHandle = 0;
batteryHandle = fopen("/sys/class/power_supply/battery/capacity", "r");
usbHandle = fopen("/sys/class/power_supply/usb/online", "r");
acHandle = fopen("/sys/class/power_supply/ac/online", "r");
}
void GMenu2X::deinit() {
if (batteryHandle) fclose(batteryHandle);
if (usbHandle) fclose(usbHandle);
if (acHandle) fclose(acHandle);
}
GMenu2X::GMenu2X() GMenu2X::GMenu2X()
{ {
usbnet = samba = inet = web = false; usbnet = samba = inet = web = false;
@ -274,8 +258,6 @@ GMenu2X::GMenu2X()
path = ""; path = "";
getExePath(); getExePath();
init();
#ifdef UNLOCK_VT #ifdef UNLOCK_VT
unlockVT(); unlockVT();
#endif #endif
@ -348,8 +330,6 @@ void GMenu2X::quit() {
SDL_Quit(); SDL_Quit();
unsetenv("SDL_FBCON_DONT_CLEAR"); unsetenv("SDL_FBCON_DONT_CLEAR");
deinit();
} }
void GMenu2X::initBG() { void GMenu2X::initBG() {
@ -1461,18 +1441,27 @@ typedef struct {
} MMSP2ADC; } MMSP2ADC;
unsigned short GMenu2X::getBatteryLevel() { unsigned short GMenu2X::getBatteryLevel() {
FILE *batteryHandle = NULL,
*usbHandle = NULL;
#if defined(PLATFORM_DINGUX) || defined(PLATFORM_NANONOTE)
usbHandle = fopen("/sys/class/power_supply/usb/online", "r");
#endif
if (usbHandle) { if (usbHandle) {
int usbval = 0; int usbval = 0;
fscanf(usbHandle, "%d", &usbval); fscanf(usbHandle, "%d", &usbval);
rewind(usbHandle); fclose(usbHandle);
if (usbval == 1) if (usbval == 1)
return 6; return 6;
} }
#if defined(PLATFORM_DINGUX) || defined(PLATFORM_NANONOTE)
batteryHandle = fopen("/sys/class/power_supply/battery/capacity", "r");
#endif
if (batteryHandle) { if (batteryHandle) {
int battval = 0; int battval = 0;
fscanf(batteryHandle, "%d", &battval); fscanf(batteryHandle, "%d", &battval);
rewind(batteryHandle); fclose(batteryHandle);
if (battval>90) return 5; if (battval>90) return 5;
if (battval>70) return 4; if (battval>70) return 4;

View File

@ -85,7 +85,6 @@ private:
@return A number representing battery charge. 0 means fully discharged. 5 means fully charged. 6 represents a gp2x using AC power. @return A number representing battery charge. 0 means fully discharged. 5 means fully charged. 6 represents a gp2x using AC power.
*/ */
unsigned short getBatteryLevel(); unsigned short getBatteryLevel();
FILE* batteryHandle, *usbHandle, *acHandle;
void browsePath(const std::string &path, std::vector<std::string>* directories, std::vector<std::string>* files); void browsePath(const std::string &path, std::vector<std::string>* directories, std::vector<std::string>* files);
/*! /*!
Starts the scanning of the nand and sd filesystems, searching for dge and gpu files and creating the links in 2 dedicated sections. Starts the scanning of the nand and sd filesystems, searching for dge and gpu files and creating the links in 2 dedicated sections.
@ -116,10 +115,7 @@ private:
void initServices(); void initServices();
void initFont(); void initFont();
void initMenu(); void initMenu();
void initCPULimits(); void initCPULimits();
void init();
void deinit();
void showManual(); void showManual();