Author: duncan
Date: Thu Oct  5 17:22:48 2006
New Revision: 8321

Modified:
   branches/rel-1-5/freevo/src/plugins/upsoon.py

Log:
Added code to stop the player when recording will start in less than 60 seconds

Modified: branches/rel-1-5/freevo/src/plugins/upsoon.py
==============================================================================
--- branches/rel-1-5/freevo/src/plugins/upsoon.py       (original)
+++ branches/rel-1-5/freevo/src/plugins/upsoon.py       Thu Oct  5 17:22:48 2006
@@ -1,6 +1,6 @@
 # -*- coding: iso-8859-1 -*-
 # -----------------------------------------------------------------------
-# wakeup client
+# interrupt player
 # -----------------------------------------------------------------------
 # $Id: upsoon.py $
 #
@@ -34,10 +34,11 @@
 
 import plugin
 import config
-import time, sys, socket, traceback, string
+import time, sys, os, socket, traceback, string
 import xmlrpclib
 import rc
 import thread
+import tv.v4l2
 from event import *
 from util.marmalade import jellyToXML, unjellyFromXML
 
@@ -172,17 +173,43 @@
         """
         Sends a poll message to the record server
         """
+        now=time.time()
         _debug_('poll(self)', dbglvl+1)
 
-        self.player_running = self.isPlayerRunning()
-        _debug_('player_running=%s' % self.player_running, dbglvl)
         self.next_program  = self.findNextProgram()
-        _debug_('next_program=%s' % self.next_program, dbglvl)
-        if self.next_program != None:
-            # may need to ensure message is not too long
-            start_time = time.strftime('%a %H:%M', 
time.localtime(self.next_program.start))
-            message = '%s %s' % (self.next_program.title, start_time)
-            rc.post_event(Event(OSD_MESSAGE, message))
+        _debug_('now=%s next_program=%s ' % (time.strftime('%T', 
time.localtime(now)), self.next_program), dbglvl)
+        if self.next_program == None:
+            return None
+
+        secs_to_next = self.next_program.start -  now
+        _debug_('next recording in %s secs' % (int(secs_to_next+0.5)), dbglvl)
+        # stop the player 60 seconds before recording is due to start
+        if (secs_to_next > config.TV_RECORD_PADDING_PRE+60):
+            return None
+
+        _debug_('recording in less that a minute (%s secs)' % (secs_to_next), 
dbglvl)
+        try:
+            # check the video
+            viddev = tv.v4l2.Videodev('/dev/video0')
+            try:
+                print os.read(viddev.getdevice(), 1)
+            except OSError:
+                rc.post_event(STOP)
+                print 'device %s in use' % ('/dev/video0')
+            viddev.close()
+        except:
+            pass
+        try:
+            # check the radio
+            viddev = tv.v4l2.Videodev('/dev/video24')
+            try:
+                print os.read(viddev.getdevice(), 1)
+            except OSError:
+                rc.post_event(STOP)
+                print 'device %s in use' % ('/dev/video24')
+            viddev.close()
+        except:
+            pass
 
 
     def eventhandler( self, event, menuw=None ):
@@ -191,18 +218,13 @@
         TODO
             something useful
         """
+        self.lock.acquire()
+
         _debug_('eventhandler(self, %s, %s) name=%s arg=%s context=%s 
handler=%s' % \
             (event, menuw, event.name, event.arg, event.context, 
event.handler), dbglvl+2)
 
         _debug_('event name=%s arg=%s' % (event.name, event.arg), dbglvl)
 
-        self.lock.acquire()
-        if event == BUTTON:
-            if event.arg == 'POWER':
-                if self.isPlayerRunning():
-                    rc.post_event(Event(OSD_MESSAGE, arg=_('Playing')))
-                else:
-                    rc.post_event(Event(OSD_MESSAGE, arg=_('Not Playing')))
         self.lock.release()
 
         return 0

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to