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

Modified Files:
        mplayer.py xine.py 
Log Message:
move to new ChildApp2 and remove the internal thread

Index: mplayer.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/audio/plugins/mplayer.py,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** mplayer.py  6 Dec 2003 13:43:35 -0000       1.27
--- mplayer.py  10 Dec 2003 19:02:38 -0000      1.28
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.28  2003/12/10 19:02:38  dischi
+ # move to new ChildApp2 and remove the internal thread
+ #
  # Revision 1.27  2003/12/06 13:43:35  dischi
  # expand the <audio> parsing in fxd files
***************
*** 50,64 ****
  #endif
  
! import time, os
! import string
! import threading, signal
  import re
  
  import config     # Configuration handler. reads config file.
- import util       # Various utilities
  import childapp   # Handle child applications
  
  import rc
  import plugin
  from event import *
  
--- 53,65 ----
  #endif
  
! import os
  import re
  
  import config     # Configuration handler. reads config file.
  import childapp   # Handle child applications
  
  import rc
  import plugin
+ 
  from event import *
  
***************
*** 72,79 ****
          # create the mplayer object
          plugin.Plugin.__init__(self)
-         mplayer = util.SynchronizedObject(MPlayer())
  
!         # register it as the object to play audio
!         plugin.register(mplayer, plugin.AUDIO_PLAYER, True)
  
  
--- 73,79 ----
          # create the mplayer object
          plugin.Plugin.__init__(self)
  
!         # register mplayer as the object to play audio
!         plugin.register(MPlayer(), plugin.AUDIO_PLAYER, True)
  
  
***************
*** 84,91 ****
      
      def __init__(self):
!         self.name = 'mplayer'
!         self.thread = childapp.ChildThread()
!         self.mode = None
          self.app_mode = 'audio'
  
  
--- 84,90 ----
      
      def __init__(self):
!         self.name     = 'mplayer'
          self.app_mode = 'audio'
+         self.app      = None
  
  
***************
*** 106,112 ****
          DEMUXER_OGG = 18
          rest, extension     = os.path.splitext(filename)
!         if string.lower(extension) == '.mp3':
              return "-demuxer " + str(DEMUXER_MP3)
!         if string.lower(extension) == '.ogg':
              return "-demuxer " + str(DEMUXER_OGG)
          else:
--- 105,111 ----
          DEMUXER_OGG = 18
          rest, extension     = os.path.splitext(filename)
!         if extension.lower() == '.mp3':
              return "-demuxer " + str(DEMUXER_MP3)
!         if extension.lower() == '.ogg':
              return "-demuxer " + str(DEMUXER_OGG)
          else:
***************
*** 184,190 ****
              return _('Invalid audio file')
  
!         _debug_('MPlayer.play(): Starting thread, cmd=%s' % command)
              
!         self.thread.start(MPlayerApp, (command, item, self.refresh))
          return None
      
--- 183,189 ----
              return _('Invalid audio file')
  
!         _debug_('MPlayer.play(): Starting cmd=%s' % command)
              
!         self.app = MPlayerApp(command, self)
          return None
      
***************
*** 192,202 ****
      def stop(self):
          """
!         Stop mplayer and set thread to idle
          """
!         self.thread.stop('quit\n')
  
  
      def is_playing(self):
!         return self.thread.mode != 'idle'
  
  
--- 191,201 ----
      def stop(self):
          """
!         Stop mplayer
          """
!         self.app.stop('quit\n')
  
  
      def is_playing(self):
!         return self.app.isAlive()
  
  
***************
*** 219,223 ****
              
          if event == AUDIO_SEND_MPLAYER_CMD:
!             self.thread.app.write('%s\n' % event.arg)
              return True
  
--- 218,222 ----
              
          if event == AUDIO_SEND_MPLAYER_CMD:
!             self.app.write('%s\n' % event.arg)
              return True
  
***************
*** 227,235 ****
  
          elif event == PAUSE or event == PLAY:
!             self.thread.app.write('pause\n')
              return True
  
          elif event == SEEK:
!             self.thread.app.write('seek %s\n' % event.arg)
              return True
  
--- 226,234 ----
  
          elif event == PAUSE or event == PLAY:
!             self.app.write('pause\n')
              return True
  
          elif event == SEEK:
!             self.app.write('seek %s\n' % event.arg)
              return True
  
***************
*** 241,261 ****
  # ======================================================================
  
! class MPlayerApp(childapp.ChildApp):
      """
      class controlling the in and output from the mplayer process
      """
! 
!     def __init__(self, (app, item, refresh)):
!         self.item = item
!         self.elapsed = 0
!         childapp.ChildApp.__init__(self, app)
!         self.RE_TIME = re.compile("^A: *([0-9]+)").match
!       self.RE_TIME_NEW = re.compile("^A: *([0-9]+):([0-9]+)").match
!         self.refresh = refresh
          self.stop_reason = 0 # 0 = ok, 1 = error
  
  
!     def stopped(self):
!         rc.post_event(Event(AUDIO_PLAY_END, self.stop_reason))
  
          
--- 240,259 ----
  # ======================================================================
  
! class MPlayerApp(childapp.ChildApp2):
      """
      class controlling the in and output from the mplayer process
      """
!     def __init__(self, app, player):
!         self.item        = player.item
!         self.player      = player
!         self.elapsed     = 0
          self.stop_reason = 0 # 0 = ok, 1 = error
+         self.RE_TIME     = re.compile("^A: *([0-9]+)").match
+       self.RE_TIME_NEW = re.compile("^A: *([0-9]+):([0-9]+)").match
+         childapp.ChildApp2.__init__(self, app)
  
  
!     def stop_event(self):
!         return Event(PLAY_END, self.stop_reason, handler=self.player.eventhandler)
  
          
***************
*** 265,269 ****
              if m:
                  self.stop_reason = 0
!               timestrs = string.split(m.group(),":")
                if len(timestrs) == 5:
                    # playing for days!
--- 263,267 ----
              if m:
                  self.stop_reason = 0
!               timestrs = m.group().split(":")
                if len(timestrs) == 5:
                    # playing for days!
***************
*** 289,293 ****
  
              if self.item.elapsed != self.elapsed:
!                 self.refresh()
              self.elapsed = self.item.elapsed
  
--- 287,291 ----
  
              if self.item.elapsed != self.elapsed:
!                 self.player.refresh()
              self.elapsed = self.item.elapsed
  

Index: xine.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/audio/plugins/xine.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** xine.py     22 Nov 2003 15:30:55 -0000      1.9
--- xine.py     10 Dec 2003 19:02:38 -0000      1.10
***************
*** 8,16 ****
  #        xine-ui > 0.9.22 (when writing this plugin this means cvs)
  #
! # Todo:  test it
  #
  #
  # -----------------------------------------------------------------------
  # $Log$
  # Revision 1.9  2003/11/22 15:30:55  dischi
  # support more than one player
--- 8,19 ----
  #        xine-ui > 0.9.22 (when writing this plugin this means cvs)
  #
! # Todo:
  #
  #
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.10  2003/12/10 19:02:38  dischi
+ # move to new ChildApp2 and remove the internal thread
+ #
  # Revision 1.9  2003/11/22 15:30:55  dischi
  # support more than one player
***************
*** 22,41 ****
  # fix cd playback
  #
- # Revision 1.6  2003/10/21 21:17:41  gsbarbieri
- # Some more i18n improvements.
- #
- # Revision 1.5  2003/09/19 22:09:16  dischi
- # use new childapp thread function
- #
- # Revision 1.4  2003/09/01 19:46:02  dischi
- # add menuw to eventhandler, it may be needed
- #
- # Revision 1.3  2003/08/26 20:24:07  outlyer
- # Apparently some files have spaces in them... D'oh :)
- #
- # Revision 1.2  2003/08/23 12:51:42  dischi
- # removed some old CVS log messages
- #
- #
  # -----------------------------------------------------------------------
  # Freevo - A Home Theater PC framework
--- 25,28 ----
***************
*** 61,70 ****
  
  
- import time, os
- import signal
  import popen2, re
  
  import config     # Configuration handler. reads config file.
- import util       # Various utilities
  import childapp   # Handle child applications
  import rc         # The RemoteControl class.
--- 48,54 ----
***************
*** 114,122 ****
              return
              
!         # create the xine object
!         xine = util.SynchronizedObject(Xine(xine_version))
! 
!         # register it as the object to play
!         plugin.register(xine, plugin.AUDIO_PLAYER, True)
  
  
--- 98,103 ----
              return
              
!         # register xine as the object to play
!         plugin.register(Xine(xine_version), plugin.AUDIO_PLAYER, True)
  
  
***************
*** 129,138 ****
      
      def __init__(self, version):
!         self.name = 'xine'
!         self.thread = childapp.ChildThread()
!         self.mode = None
          self.xine_version = version
!         self.app_mode = 'audio'
! 
          self.command = '%s -V none -A %s --stdctl' % (config.CONF.fbxine, 
config.XINE_AO_DEV)
          if rc.PYLIRC:
--- 110,117 ----
      
      def __init__(self, version):
!         self.name         = 'xine'
          self.xine_version = version
!         self.app_mode     = 'audio'
!         self.app          = None
          self.command = '%s -V none -A %s --stdctl' % (config.CONF.fbxine, 
config.XINE_AO_DEV)
          if rc.PYLIRC:
***************
*** 172,182 ****
              
          command = '%s %s "%s"' % (self.command, add_args, filename)
!         _debug_('Xine.play(): Starting thread, cmd=%s' % command)
  
!         self.thread.start(XineApp, (command, item, self.refresh))
      
  
      def is_playing(self):
!         return self.thread.mode != 'idle'
  
  
--- 151,161 ----
              
          command = '%s %s "%s"' % (self.command, add_args, filename)
!         _debug_('Xine.play(): Starting cmd=%s' % command)
  
!         self.app = XineApp(command, self)
      
  
      def is_playing(self):
!         return self.app.isAlive()
  
  
***************
*** 187,193 ****
      def stop(self):
          """
!         Stop xine and set thread to idle
          """
!         self.thread.stop('quit\n')
              
  
--- 166,172 ----
      def stop(self):
          """
!         Stop xine
          """
!         self.app.stop('quit\n')
              
  
***************
*** 197,206 ****
          function it will be passed over to the items eventhandler
          """
!         if event == AUDIO_PLAY_END:
!             if event.arg:
!                 self.stop()
!                 if self.playerGUI.try_next_player():
!                     return True
!             event = PLAY_END
  
          if event in ( PLAY_END, USER_END ):
--- 176,183 ----
          function it will be passed over to the items eventhandler
          """
!         if event == PLAY_END and event.arg:
!             self.stop()
!             if self.playerGUI.try_next_player():
!                 return True
  
          if event in ( PLAY_END, USER_END ):
***************
*** 209,213 ****
  
          if event == PAUSE or event == PLAY:
!             self.thread.app.write('pause\n')
              return True
  
--- 186,190 ----
  
          if event == PAUSE or event == PLAY:
!             self.app.write('pause\n')
              return True
  
***************
*** 229,233 ****
              else:
                  pos = 30
!             self.thread.app.write('%s%s\n' % (action, pos))
              return True
  
--- 206,210 ----
              else:
                  pos = 30
!             self.app.write('%s%s\n' % (action, pos))
              return True
  
***************
*** 239,256 ****
  # ======================================================================
  
! class XineApp(childapp.ChildApp):
      """
      class controlling the in and output from the xine process
      """
  
!     def __init__(self, (app, item, refresh)):
!         self.item = item
!         childapp.ChildApp.__init__(self, app)
!         self.elapsed = 0
!         self.refresh = refresh
          self.stop_reason = 0 # 0 = ok, 1 = error
  
!     def stopped(self):
!         rc.post_event(Event(AUDIO_PLAY_END, self.stop_reason))
  
  
--- 216,234 ----
  # ======================================================================
  
! class XineApp(childapp.ChildApp2):
      """
      class controlling the in and output from the xine process
      """
  
!     def __init__(self, app, player):
!         self.item        = player.item
!         self.player      = player
!         self.elapsed     = 0
          self.stop_reason = 0 # 0 = ok, 1 = error
+         childapp.ChildApp2.__init__(self, app)
  
! 
!     def stop_event(self):
!         return Event(PLAY_END, self.stop_reason, handler=self.player.eventhandler)
  
  
***************
*** 260,264 ****
  
              if self.item.elapsed != self.elapsed:
!                 self.refresh()
              self.elapsed = self.item.elapsed
  
--- 238,242 ----
  
              if self.item.elapsed != self.elapsed:
!                 self.player.refresh()
              self.elapsed = self.item.elapsed
  




-------------------------------------------------------
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