Date:2012-06-24 22:48:50 (11 years 9 months ago)
Author:Paul Cercueil
Commit:0d9977e54c48faa890f32e92a2aba1504414d450
Message:Open battery/USB file handlers only when needed.

Files: src/gmenu2x.cpp (4 diffs)
src/gmenu2x.h (2 diffs)

Change Details

src/gmenu2x.cpp
241241    cpuFreqAppDefault = (cpuFreqAppDefault / cpuFreqMultiple) * cpuFreqMultiple;
242242}
243243
244void GMenu2X::init() {
245    batteryHandle = 0;
246    usbHandle = 0;
247    acHandle = 0;
248
249    batteryHandle = fopen("/sys/class/power_supply/battery/capacity", "r");
250    usbHandle = fopen("/sys/class/power_supply/usb/online", "r");
251    acHandle = fopen("/sys/class/power_supply/ac/online", "r");
252}
253
254void GMenu2X::deinit() {
255    if (batteryHandle) fclose(batteryHandle);
256    if (usbHandle) fclose(usbHandle);
257    if (acHandle) fclose(acHandle);
258}
259
260244GMenu2X::GMenu2X()
261245{
262246    usbnet = samba = inet = web = false;
...... 
274258    path = "";
275259    getExePath();
276260
277    init();
278
279261#ifdef UNLOCK_VT
280262    unlockVT();
281263#endif
...... 
348330
349331    SDL_Quit();
350332    unsetenv("SDL_FBCON_DONT_CLEAR");
351
352    deinit();
353333}
354334
355335void GMenu2X::initBG() {
...... 
14611441} MMSP2ADC;
14621442
14631443unsigned short GMenu2X::getBatteryLevel() {
1444    FILE *batteryHandle = NULL,
1445         *usbHandle = NULL;
1446
1447#if defined(PLATFORM_DINGUX) || defined(PLATFORM_NANONOTE)
1448    usbHandle = fopen("/sys/class/power_supply/usb/online", "r");
1449#endif
14641450    if (usbHandle) {
14651451        int usbval = 0;
14661452        fscanf(usbHandle, "%d", &usbval);
1467        rewind(usbHandle);
1453        fclose(usbHandle);
14681454        if (usbval == 1)
14691455            return 6;
14701456    }
14711457
1458#if defined(PLATFORM_DINGUX) || defined(PLATFORM_NANONOTE)
1459    batteryHandle = fopen("/sys/class/power_supply/battery/capacity", "r");
1460#endif
14721461    if (batteryHandle) {
14731462        int battval = 0;
14741463        fscanf(batteryHandle, "%d", &battval);
1475        rewind(batteryHandle);
1464        fclose(batteryHandle);
14761465
14771466        if (battval>90) return 5;
14781467        if (battval>70) return 4;
src/gmenu2x.h
8585    @return A number representing battery charge. 0 means fully discharged. 5 means fully charged. 6 represents a gp2x using AC power.
8686    */
8787    unsigned short getBatteryLevel();
88    FILE* batteryHandle, *usbHandle, *acHandle;
8988    void browsePath(const std::string &path, std::vector<std::string>* directories, std::vector<std::string>* files);
9089    /*!
9190    Starts the scanning of the nand and sd filesystems, searching for dge and gpu files and creating the links in 2 dedicated sections.
...... 
116115    void initServices();
117116    void initFont();
118117    void initMenu();
119
120118    void initCPULimits();
121    void init();
122    void deinit();
123119
124120    void showManual();
125121

Archive Download the corresponding diff file



interactive