Update of /cvsroot/freevo/freevo/src/record
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13486/src/record

Modified Files:
        server.py 
Log Message:
Changes for new TV_SETTINGS:
-Support multiple recordings on different devices (ie: ivtv0 and dvb0).
-Use some finctions in tv.channels for retrieving settings and using lock files.


Index: server.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/record/server.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** server.py   14 Aug 2004 01:20:08 -0000      1.5
--- server.py   23 Aug 2004 01:33:16 -0000      1.6
***************
*** 8,11 ****
--- 8,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.6  2004/08/23 01:33:16  rshortt
+ # Changes for new TV_SETTINGS:
+ # -Support multiple recordings on different devices (ie: ivtv0 and dvb0).
+ # -Use some finctions in tv.channels for retrieving settings and using lock files.
+ #
  # Revision 1.5  2004/08/14 01:20:08  rshortt
  # Get the channels list / epg from memory or disk cache.
***************
*** 78,82 ****
  import util.popen3
  from   util.videothumb import snapshot
! from tv.channels import get_channels
  
  def _debug_(text):
--- 83,88 ----
  import util.popen3
  from   util.videothumb import snapshot
! from tv.channels import get_channels, is_locked, lock_device, unlock_device, \
!                         get_settings_by_id, get_settings_by_name
  
  def _debug_(text):
***************
*** 89,99 ****
  log.startLogging(open(logfile, 'a'))
  
- # XXX: change this to use tv0.lock (ivtvX/dvbX/etc..) where
- #      it may need it.
- tv_lock_file = config.FREEVO_CACHEDIR + '/record'
  
  
  class RecordServer(xmlrpc.XMLRPC):
  
      # note: add locking and r/rw options to get/save funs
      def getScheduledRecordings(self):
--- 95,107 ----
  log.startLogging(open(logfile, 'a'))
  
  
  
  class RecordServer(xmlrpc.XMLRPC):
  
+     def __init__(self):
+         xmlrpc.XMLRPC.__init__(self)
+         self.current_recordings = {}
+ 
+ 
      # note: add locking and r/rw options to get/save funs
      def getScheduledRecordings(self):
***************
*** 224,228 ****
          if recording:
              _debug_('stopping current recording')
!             eh.post(Event('STOP_RECORDING', arg=prog))
         
          return (TRUE, 'recording removed')
--- 232,236 ----
          if recording:
              _debug_('stopping current recording')
!             self.stop_record(prog)
         
          return (TRUE, 'recording removed')
***************
*** 350,354 ****
                          sr.removeProgram(currently_recording, 
                                           tv_util.getKey(currently_recording))
!                         eh.post(Event('STOP_RECORDING', arg=prog))
  
                          # XXX:  Don't sleep (block) if we don't have to.
--- 358,362 ----
                          sr.removeProgram(currently_recording, 
                                           tv_util.getKey(currently_recording))
!                         self.stop_record(prog)
  
                          # XXX:  Don't sleep (block) if we don't have to.
***************
*** 370,374 ****
                                  sr.removeProgram(currently_recording, 
                                                   tv_util.getKey(currently_recording))
!                                 eh.post(Event('STOP_RECORDING', arg=prog))
                                  # time.sleep(5)
                                  _debug_('CALLED RECORD STOP 2')
--- 378,382 ----
                                  sr.removeProgram(currently_recording, 
                                                   tv_util.getKey(currently_recording))
!                                 self.stop_record(prog)
                                  # time.sleep(5)
                                  _debug_('CALLED RECORD STOP 2')
***************
*** 414,418 ****
                  return
  
!             eh.post(Event('RECORD', arg=rec_prog))
  
  
--- 422,450 ----
                  return
  
!             self.record(rec_prog)
! 
! 
!     def record(self, prog):
!         post_to = None
!         # expect types to be ordered by priority
!         types = get_settings_by_id(prog.channel_id)
! 
!         for which in types:
!             if is_locked(which):
!                 _debug_('Cannot record on %s, it is busy.' % which)
!                 continue
! 
!             else:
!                 post_to = which
!                 break
! 
!         if post_to:
!             eh.post(Event('RECORD', arg=(prog, which)))
! 
! 
!     def stop_record(self, prog):
!         for t, p in self.current_recordings.items():
!             if prog == p:
!                 eh.post(Event('STOP_RECORDING', arg=(p, t)))
  
  
***************
*** 941,954 ****
          elif event == RECORD_START:
              _debug_('Handling event RECORD_START')
!             prog = event.arg
!             open(tv_lock_file, 'w').close()
              self.create_fxd(prog)
              if config.VCR_PRE_REC:
                  util.popen3.Popen3(config.VCR_PRE_REC)
  
          elif event == RECORD_STOP:
              _debug_('Handling event RECORD_STOP')
!             os.remove(tv_lock_file)
!             prog = event.arg
              try:
                  snapshot(prog.filename)
--- 973,992 ----
          elif event == RECORD_START:
              _debug_('Handling event RECORD_START')
!             prog = event.arg[0]
!             which = event.arg[1]
! 
!             lock_device(which)
              self.create_fxd(prog)
+ 
              if config.VCR_PRE_REC:
                  util.popen3.Popen3(config.VCR_PRE_REC)
  
+             self.current_recordings[which] = prog
+ 
          elif event == RECORD_STOP:
              _debug_('Handling event RECORD_STOP')
!             prog = event.arg[0]
!             which = event.arg[1]
!             unlock_device(which)
              try:
                  snapshot(prog.filename)
***************
*** 962,965 ****
--- 1000,1005 ----
                  util.popen3.Popen3(config.VCR_POST_REC)
  
+             del self.current_recordings[which]
+ 
  
  



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to