Author: duncan
Date: Fri Mar 14 03:10:15 2008
New Revision: 10524
Log:
Fixed a silly typo when locking the surface
Added a shutdown plug-in method to stop the saver
Modified:
branches/rel-1-7/freevo/src/plugins/screensaver/__init__.py
branches/rel-1-7/freevo/src/plugins/screensaver/balls.py
Modified: branches/rel-1-7/freevo/src/plugins/screensaver/__init__.py
==============================================================================
--- branches/rel-1-7/freevo/src/plugins/screensaver/__init__.py (original)
+++ branches/rel-1-7/freevo/src/plugins/screensaver/__init__.py Fri Mar 14
03:10:15 2008
@@ -56,6 +56,7 @@
"""
def __init__(self):
+ _debug_('PluginInterface.__init__()', 2)
plugin.DaemonPlugin.__init__(self)
self.event_listener = True
self.poll_menu_only = True
@@ -81,7 +82,7 @@
eventhandler to handle the events. Always return False since we
are just a listener and really can't send back True.
"""
- _debug_("Saver saw %s" % (event.name), 2)
+ _debug_('eventhandler(event=%r, menuw=%r, arg=%r)' % (event.name,
menuw, arg), 2)
if menuw:
self.menuw = menuw
@@ -110,14 +111,19 @@
def poll(self):
- #_debug_("Saver got polled %f" % time.time())
+ _debug_('poll()', 3)
time_diff = time.time() - self.last_event
if not self.screensaver_showing and time_diff > self.start_delay :
- rc.post_event(Event("SCREENSAVER_START"))
+ rc.post_event(Event('SCREENSAVER_START'))
+
+
+ def shutdown(self):
+ _debug_('shutdown()', 2)
+ self.stop_saver()
def start_saver(self):
- _debug_("start screensaver")
+ _debug_('start_saver()', 2)
self.screensaver_showing = True
if self.plugins is None:
self.plugins = plugin.get('screensaver')
@@ -130,13 +136,17 @@
def stop_saver(self):
- _debug_("stop screensaver")
- self.stop_screensaver = True
- self.thread.join()
+ _debug_('stop_saver()', 2)
+ osd.mutex.acquire()
+ try:
+ self.stop_screensaver = True
+ self.thread.join()
+ finally:
+ osd.mutex.release()
def __run__(self):
- _debug_('Screensaver thread started')
+ _debug_('__run__()', 2)
current_saver = None
index = 0
plugins_count = len(self.plugins)
@@ -170,7 +180,7 @@
def __run_screensaver__(self, screensaver):
- _debug_('Running %s' % screensaver.plugin_name)
+ _debug_('__run_screensaver__(screensaver=%r)' %
(screensaver.plugin_name,), 2)
try:
fps = screensaver.start(osd.width, osd.height)
@@ -200,6 +210,7 @@
class ScreenSaverPlugin(plugin.Plugin):
def __init__(self):
+ _debug_('ScreenSaverPlugin.__init__()', 2)
plugin.Plugin.__init__(self)
self._type = 'screensaver'
@@ -210,6 +221,7 @@
Returns the number of frames per second the saver
wants to run at.
"""
+ _debug_('start(width=%r, height=%r)' % (width, height), 2)
return 25
@@ -217,6 +229,7 @@
"""
Deinitialise the screensaver after each run.
"""
+ _debug_('stop()', 2)
pass
@@ -225,4 +238,5 @@
Draw a frame onto the supplied surface called
every 1/fps seconds (where fps was returned by start())
"""
+ _debug_('draw(surface=%r)' % (surface,), 2)
pass
Modified: branches/rel-1-7/freevo/src/plugins/screensaver/balls.py
==============================================================================
--- branches/rel-1-7/freevo/src/plugins/screensaver/balls.py (original)
+++ branches/rel-1-7/freevo/src/plugins/screensaver/balls.py Fri Mar 14
03:10:15 2008
@@ -67,7 +67,7 @@
for i in range(0,ballcount):
ball = Ball()
- ball.name = "ball " + str(i)
+ ball.name = 'ball ' + str(i)
ball.color = (randint(5, 255), randint(5,255), randint(5,255))
ball.x = randint(0, width - ball.w)
ball.y = randint(0, height - ball.h)
@@ -82,7 +82,7 @@
dirty = []
osd.mutex.acquire()
try:
- screen.unlock()
+ screen.lock()
for ball in self.balls:
ball.clear(screen, black)
dirty.append(ball.rectangle())
@@ -98,7 +98,7 @@
class Ball:
def __init__(self):
- self.name = "ball"
+ self.name = 'ball'
self.x = 100.0
self.y = 100.0
self.w = 40
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog