Update of /cvsroot/freevo/freevo/src/audio/plugins
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2058/plugins

Modified Files:
        detach.py detachbar.py 
Log Message:
better detachbar plugin, does not need stuff in other files now

Index: detach.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/audio/plugins/detach.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** detach.py   6 Feb 2004 18:33:06 -0000       1.13
--- detach.py   15 Feb 2004 11:18:47 -0000      1.14
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.14  2004/02/15 11:18:47  dischi
+ # better detachbar plugin, does not need stuff in other files now
+ #
  # Revision 1.13  2004/02/06 18:33:06  dischi
  # fix mimetype handling
***************
*** 74,86 ****
          self.show_item.type = 'detached_player'
  
      def detach(self):
-         # start detachbar
-         self.detachbar = plugin.getbyname('audio.detachbar')
-         if self.detachbar == None:
-             plugin.activate('audio.detachbar')
-             self.detachbar = plugin.getbyname('audio.detachbar')
-            
          gui  = audio.player.get()
-         gui.detachbar = self.detachbar
  
          # hide the player and show the menu
--- 77,83 ----
          self.show_item.type = 'detached_player'
  
+ 
      def detach(self):
          gui  = audio.player.get()
  
          # hide the player and show the menu
***************
*** 94,97 ****
--- 91,95 ----
          if gui.item.parent:
              gui.item.parent.menuw = None
+         rc.post_event(plugin.event('DETACH'))
          
  

Index: detachbar.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/audio/plugins/detachbar.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** detachbar.py        14 Feb 2004 13:05:04 -0000      1.5
--- detachbar.py        15 Feb 2004 11:18:47 -0000      1.6
***************
*** 29,43 ****
  
  # freevo specific
! import skin,audio.player,plugin
  from event import *
  
  # barstates
! BAR_HIDE=0 # timedout, reset and change poll interval
! BAR_SHOW=1 # show the bar
! BAR_IDLE=2 # wait for new track
  
  class PluginInterface(plugin.DaemonPlugin):
      """
!     detachbar plugin.
      """
      def __init__(self):
--- 29,51 ----
  
  # freevo specific
! import skin
! import audio.player
! import plugin
  from event import *
  
+ 
  # barstates
! BAR_HIDE=0            # timedout, reset and change poll interval
! BAR_SHOW=1            # show the bar
! BAR_IDLE=2            # wait for new track
  
  class PluginInterface(plugin.DaemonPlugin):
      """
!     This plugin enables a small bar showing information about audio being played
!     when detached with the detach plugin.
! 
!     If the idlebar is loaded and there is enough space left there, this plugin
!     will draw itself there, otherwise it will draw at the right bottom of the
!     screen.
      """
      def __init__(self):
***************
*** 46,78 ****
          # tunables
          self.TimeOut  = 3  # 3 seconds till we hide the bar
!         self.reset()
!         
!         # register in list (is this necessery?)
!         self.plugin_name = 'audio.detachbar'       
!         plugin.register(self, self.plugin_name)
!         self.image = None
! 
!     def reset(self):
!         self.status=BAR_HIDE
!         self.render = []
!         self.player = None
!         self.Timer = None
!         self.bar = None
!         self.setPoll(999999)
  
-     def eventhandler(self, event, menuw=None):
-         """
-         Needed to catch the PLAY_START event,
-         since it now integrates with player.py, 
-         this should probably be removed in the future
-         (don't have to many dependencies)
-         """
-         print event
-         if self.player and event == PLAY_START:
-             if self.status == BAR_IDLE:
-                 self.refresh()
-             else:
-                 self.show()
-         return False
  
      def timer(self):
--- 54,59 ----
          # tunables
          self.TimeOut  = 3  # 3 seconds till we hide the bar
!         self.hide()
  
  
      def timer(self):
***************
*** 88,112 ****
                  return BAR_IDLE
      
      def hide(self):
          """
          used when hiding the bar
          """
!         self.reset()
      
      def show(self):
          """
          used when showing for the first time
          """
!         self.player = audio.player.get().player
          self.setPoll(10)       
-         self.refresh()
-     
-     def refresh(self):
-         """
-         used when updating new songinfo
-         """
          self.getInfo()
          self.status = BAR_SHOW
      
      def stop(self):
          """
--- 69,105 ----
                  return BAR_IDLE
      
+ 
+     def eventhandler(self, event, menuw=None):
+         """
+         Needed to catch the plugin DETACH event
+         """
+         if plugin.isevent(event) == 'DETACH':
+             self.show()
+             return True
+         return False
+ 
+ 
      def hide(self):
          """
          used when hiding the bar
          """
!         self.status = BAR_HIDE
!         self.render = []
!         self.player = None
!         self.Timer  = None
!         self.bar    = None
!         self.setPoll(999999)
      
+ 
      def show(self):
          """
          used when showing for the first time
          """
!         self.player = audio.player.get()
          self.setPoll(10)       
          self.getInfo()
          self.status = BAR_SHOW
      
+ 
      def stop(self):
          """
***************
*** 114,118 ****
          """
          self.status = BAR_IDLE
!         self.Timer = time.time()
  
      def poll(self):
--- 107,112 ----
          """
          self.status = BAR_IDLE
!         self.Timer  = time.time()
! 
  
      def poll(self):
***************
*** 122,139 ****
          if self.status == BAR_SHOW:
              skin.redraw()
          elif self.status == BAR_IDLE:
              self.status = self.timer()
              if self.status == BAR_HIDE:
!                 self.reset()
              skin.redraw()
      
      def draw(self, (type, object), osd):
          """
          draws the bar
          """
          if self.status == BAR_SHOW:
              font = osd.get_font('detachbar')
  
!             if font==osd.get_font('default'):
                  font = osd.get_font('info value')
         
--- 116,153 ----
          if self.status == BAR_SHOW:
              skin.redraw()
+ 
          elif self.status == BAR_IDLE:
              self.status = self.timer()
              if self.status == BAR_HIDE:
!                 self.hide()
              skin.redraw()
      
+ 
      def draw(self, (type, object), osd):
          """
          draws the bar
          """
+         if self.status == BAR_IDLE:
+             # when idle, wait for a new player
+             if audio.player.get():
+                 self.show()
+                 
          if self.status == BAR_SHOW:
+             if not self.player.running:
+                 # player stopped, we also stop
+                 # and wait for a new one
+                 self.player = None
+                 self.stop()
+                 return
+ 
+             if type == 'player':
+                 # Oops, showing the player again, stop me
+                 self.stop()
+                 self.hide()
+                 return
+ 
              font = osd.get_font('detachbar')
  
!             if font == osd.get_font('default'):
                  font = osd.get_font('info value')
         
***************
*** 169,175 ****
              osd.write_text( progress, font, None, self.t_x, y,
                              self.t_w, self.font_h , 'center', 'center')
- 
          return 0
     
      def getInfo(self):
          """
--- 183,189 ----
              osd.write_text( progress, font, None, self.t_x, y,
                              self.t_w, self.font_h , 'center', 'center')
          return 0
     
+ 
      def getInfo(self):
          """
***************
*** 199,202 ****
--- 213,217 ----
              self.render += [ self.player.item.name ]
      
+ 
      def calculatesizes(self,osd,font):
          """
***************
*** 230,234 ****
              for r in self.render:
                  bar_height += self.font_h
!                 bar_width = self.longest(bar_width,font.font.stringsize(r))
                  
              self.y = (total_height - bar_height) - osd.y - pad - pad_internal
--- 245,249 ----
              for r in self.render:
                  bar_height += self.font_h
!                 bar_width = max(bar_width,font.font.stringsize(r))
                  
              self.y = (total_height - bar_height) - osd.y - pad - pad_internal
***************
*** 254,265 ****
          helper to set the poll_interval
          """
!         self.poll_counter = 0
          self.poll_interval = interval
      
!     def longest(self,a,b):
!         if a>b:
!             return a
!         return b
!         
      def formattime(self,seconds):
          """
--- 269,276 ----
          helper to set the poll_interval
          """
!         self.poll_counter  = 0
          self.poll_interval = interval
      
! 
      def formattime(self,seconds):
          """



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to