[maemo-developers] osso.Context vs. PyGame: osso.DeviceState(context).display_blanking_pause() issue
From: Thomas D. Waelti twaelti at dplanet.chDate: Wed Aug 29 22:13:44 EEST 2007
- Previous message: Is Nokia 770 Supported ?
- Next message: Finding the mmc cards
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Some of you might have seen the screenshot of my (work-in-progress) Python-based "maemoClock" application on the itt forum However, I've now "wasted" too many evenings trying to fix a strange issue and would be very glad for any help/ideas: I'm trying to use the osso.DeviceState(context).display_blanking_pause() in Python to keep the screen from dimming and blanking. However, while the following codesnippet works on Benoit's (pygtkeditor) IT, it just won't work on my N800, freshly flashed, Python 2.5 installed :-( Here is the relevant code "prototype": ################################## #!/usr/bin/python import pygame from pygame.locals import * import os import datetime import math import osso import gobject #from sun import * EVT_STEP = pygame.USEREVENT EVT_STEPSCREEN = pygame.USEREVENT+1 backBottom = pygame.Surface((800, 80)) # Class that handles all display stuff class display: def __init__(self): pygame.init() pygame.display.set_caption('maemoClock') self.scale = False self.screen = pygame.display.set_mode((800,480),FULLSCREEN,16) self.back = pygame.Surface((800, 480)) def UpdateTime(self): #Simply write time and date onto the screen #Reset bottom to black self.screen.blit(backBottom, (0,400)) #Update time font = pygame.font.Font(None, 96) theTime = datetime.datetime.now().strftime("%X") theDate = datetime.datetime.now().strftime("%a %d %b") textTime = font.render(theTime, 1, (128, 128, 255, 192)) textDate = font.render(theDate, 1, (128, 128, 255, 192)) self.screen.blit(textTime, (0,self.screen.get_height()-textTime.get_height())) self.screen.blit(textDate, (self.screen.get_width()-textDate.get_width(),self.screen.get_height()-textTime.get_height())) #Update display pygame.display.flip() #Display--------------------------------------------- def keepDisplayOn(device_state): print "keepDisplayOn() at " + datetime.datetime.now().strftime("%X") if device_state is not None: device_state.display_blanking_pause() print "display_blanking_pause() at " + datetime.datetime.now().strftime("%X") return True #or gobject will stop calling the timeout_add def main(): osso_ctxt = osso.Context("com.tomch.maemoclock", "0.1", False) applic = osso.Application(osso_ctxt) device_state = osso.DeviceState(osso_ctxt) d = display() d.UpdateTime() pygame.time.set_timer(EVT_STEP, 1000) #Update the seconds display every second pygame.time.set_timer(EVT_STEPSCREEN, 8000) #Re-activate the screen every 8 seconds pygame.mouse.set_visible(False) #disable the cursor # Wait for user input while True: event = pygame.event.wait() if (event.type == KEYUP) and (event.key == 287): # Fullscreen button / F6 : Toggle fullscreen pygame.display.toggle_fullscreen() elif (event.type == EVT_STEP): #Timer-Event d.UpdateTime() elif (event.type == EVT_STEPSCREEN) : #Timer-Event keepDisplayOn(device_state) elif (event.type == MOUSEBUTTONDOWN): #Touchscreen-Event break print "Event " + str(event.type) if __name__ == '__main__': main() ################################## While the events get called, nothing ever happens with the display on my N800 - it simply keeps dimming and blanking... OTOH, If I call the display_blanking_pause() in the main() loop, the call will work (for once). So the API does work. If I play around with the examples from the wiki doc (osso_test_device_blank_pause.py, osso_test_device_on.py), they both work, too. However, once I start shifting the timer from a gobject.timeout_add to an pygame.time.set_timer, the calls to display_blanking_pause (in the function called by the timer) won't do anything anymore. My guess is that I'm somehow losing the osso.context. Helpy anbody? Does that code snippet work on your device, keeping your screen from dimming and blanking? Anybody who can explain what is happening? Thanks! -Tom (desperate, bordering towards madness :-)
- Previous message: Is Nokia 770 Supported ?
- Next message: Finding the mmc cards
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]