Date:2012-02-02 23:36:26 (12 years 1 month ago)
Author:Paul Cercueil
Commit:2d81b13459f092e7178d78d70922b2a743b3b534
Message:Reinitialize the powersaver timer when a suspend has been detected.

Files: src/powersaver.cpp (2 diffs)
src/powersaver.h (1 diff)

Change Details

src/powersaver.cpp
99
1010PowerSaver *PowerSaver::instance = NULL;
1111
12Uint32 screenTimerCallback(Uint32, void *) {
12Uint32 screenTimerCallback(Uint32 timeout, void *d) {
13    unsigned int * old_ticks = (unsigned int *) d;
14    unsigned int new_ticks = SDL_GetTicks();
15
16    if (new_ticks > *old_ticks + timeout + 1000) {
17        DEBUG("Suspend occured, restarting timer\n");
18        *old_ticks = new_ticks;
19        return timeout;
20    }
21
1322    DEBUG("Disable Backlight Event\n");
1423    PowerSaver::getInstance()->disableScreen();
1524    return 0;
...... 
6271        return;
6372    }
6473
65    screenTimer = SDL_AddTimer(screenTimeout * 1000, screenTimerCallback, NULL);
74    timeout_startms = SDL_GetTicks();
75    screenTimer = SDL_AddTimer(screenTimeout * 1000, screenTimerCallback, &timeout_startms);
6676    if (screenTimer == NULL) {
6777        ERROR("Could not initialize SDLTimer: %s\n", SDL_GetError());
6878    }
src/powersaver.h
2323    static PowerSaver *instance;
2424    bool screenState;
2525    unsigned int screenTimeout;
26    unsigned int timeout_startms;
2627    SDL_TimerID screenTimer;
2728};
2829

Archive Download the corresponding diff file



interactive