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

Reply via email to