Update of /cvsroot/freevo/freevo/src/audio
In directory sc8-pr-cvs1:/tmp/cvs-serv5422

Modified Files:
        player.py 
Log Message:
support more than one player

Index: player.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/audio/player.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** player.py   8 Nov 2003 13:19:06 -0000       1.9
--- player.py   22 Nov 2003 15:30:55 -0000      1.10
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.10  2003/11/22 15:30:55  dischi
+ # support more than one player
+ #
  # Revision 1.9  2003/11/08 13:19:06  dischi
  # add AUDIOCD as plugin type
***************
*** 62,65 ****
--- 65,69 ----
  from gui.GUIObject import GUIObject
  
+ import config
  import skin
  import rc
***************
*** 81,96 ****
          self.item = item
  
!         if item.type == 'radio':
!             self.player = plugin.getbyname(plugin.RADIO_PLAYER)
!         elif item.filename.startswith('cdda:/'):
!             self.player = plugin.getbyname(plugin.AUDIOCD_PLAYER)
!         else:
!             self.player = plugin.getbyname(plugin.AUDIO_PLAYER)
          self.running = False
          
!     def play(self):
!         if self.player.is_playing():
              self.stop()
              
          if self.menuw and self.menuw.visible:
              self.menuw.hide(clear=False)
--- 85,109 ----
          self.item = item
  
!         self.player  = None
          self.running = False
+ 
          
!     def play(self, player=None):
! 
!         if self.player and self.player.is_playing():
              self.stop()
              
+         if player:
+             self.player = player
+         else:
+             self.possible_player = []
+             for p in plugin.getbyname(plugin.AUDIO_PLAYER, True):
+                 rating = p.rate(self.item) * 10
+                 if config.AUDIO_PREFERED_PLAYER == p.name:
+                     rating += 1
+                 self.possible_player.append((rating, p))
+             self.possible_player.sort(lambda l, o: -cmp(l[0], o[0]))
+             self.player = self.possible_player[0][1]
+         
          if self.menuw and self.menuw.visible:
              self.menuw.hide(clear=False)
***************
*** 110,113 ****
--- 123,144 ----
              self.refresh()
  
+     def try_next_player(self):
+         self.stop()
+         _debug_('error, try next player')
+         player = None
+         next   = False
+         for r, p in self.possible_player:
+             if next:
+                 player = p
+                 break
+             if p == self.player:
+                 next = True
+ 
+         if player:
+             self.play(player=player)
+             return 1
+         _debug_('no more players found')
+         return 0
+         
      def stop(self):
          self.player.stop()
***************
*** 116,119 ****
--- 147,151 ----
              rc.app(None)
          
+ 
      def show(self):
          if not self.visible:
***************
*** 122,125 ****
--- 154,158 ----
              rc.app(self.player)
              
+ 
      def hide(self):
          if self.visible:
***************
*** 128,131 ****
--- 161,165 ----
              rc.app(None)
              
+ 
      def refresh(self):
          """




-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to