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

Modified Files:
        tvguide.py 
Log Message:
better handling of very long programs

Index: tvguide.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/tv/tvguide.py,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** tvguide.py  13 Jun 2004 00:28:19 -0000      1.31
--- tvguide.py  20 Jun 2004 12:40:07 -0000      1.32
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.32  2004/06/20 12:40:07  dischi
+ # better handling of very long programs
+ #
  # Revision 1.31  2004/06/13 00:28:19  outlyer
  # Fix a crash.
***************
*** 71,75 ****
  
  import config, skin
! import event as em
  
  # The Electronic Program Guide
--- 74,78 ----
  
  import config, skin
! from event import *
  
  # The Electronic Program Guide
***************
*** 137,141 ****
          _debug_('TVGUIDE EVENT is %s' % event, 2)
  
!         if event == em.MENU_CHANGE_STYLE:
              if skin.toggle_display_style('tv'):
                  start_time    = self.start_time
--- 140,144 ----
          _debug_('TVGUIDE EVENT is %s' % event, 2)
  
!         if event == MENU_CHANGE_STYLE:
              if skin.toggle_display_style('tv'):
                  start_time    = self.start_time
***************
*** 174,210 ****
                  self.menuw.refresh()
              
!         if event == em.MENU_UP:
              self.event_change_channel(-1)
              self.menuw.refresh()
  
!         elif event == em.MENU_DOWN:
              self.event_change_channel(1)
              self.menuw.refresh()
  
!         elif event == em.MENU_LEFT:
              self.event_change_program(-1)
              self.menuw.refresh()
  
!         elif event == em.MENU_RIGHT:
              self.event_change_program(1)
              self.menuw.refresh()
  
!         elif event == em.MENU_PAGEUP:
              self.event_change_channel(-self.n_items)
              self.menuw.refresh()
  
!         elif event == em.MENU_PAGEDOWN:
              self.event_change_channel(self.n_items)
              self.menuw.refresh()
  
!         elif event == em.MENU_SUBMENU:
              
              pass
  
!         elif event == em.TV_START_RECORDING:
              self.event_RECORD()
              self.menuw.refresh()
   
!         elif event == em.MENU_SELECT or event == em.PLAY:
              tvlockfile = config.FREEVO_CACHEDIR + '/record'
  
--- 177,213 ----
                  self.menuw.refresh()
              
!         if event == MENU_UP:
              self.event_change_channel(-1)
              self.menuw.refresh()
  
!         elif event == MENU_DOWN:
              self.event_change_channel(1)
              self.menuw.refresh()
  
!         elif event == MENU_LEFT:
              self.event_change_program(-1)
              self.menuw.refresh()
  
!         elif event == MENU_RIGHT:
              self.event_change_program(1)
              self.menuw.refresh()
  
!         elif event == MENU_PAGEUP:
              self.event_change_channel(-self.n_items)
              self.menuw.refresh()
  
!         elif event == MENU_PAGEDOWN:
              self.event_change_channel(self.n_items)
              self.menuw.refresh()
  
!         elif event == MENU_SUBMENU:
              
              pass
  
!         elif event == TV_START_RECORDING:
              self.event_RECORD()
              self.menuw.refresh()
   
!         elif event == MENU_SELECT or event == PLAY:
              tvlockfile = config.FREEVO_CACHEDIR + '/record'
  
***************
*** 227,231 ****
                  self.player('tv', self.selected.channel_id)
          
!         elif event == em.PLAY_END:
              self.show()
  
--- 230,234 ----
                  self.player('tv', self.selected.channel_id)
          
!         elif event == PLAY_END:
              self.show()
  
***************
*** 351,355 ****
  
  
!     def event_change_program(self, value):
          start_time    = self.start_time
          stop_time     = self.stop_time
--- 354,358 ----
  
  
!     def event_change_program(self, value, full_scan=False):
          start_time    = self.start_time
          stop_time     = self.stop_time
***************
*** 357,370 ****
          last_prg      = self.selected
  
-         if last_prg.stop >= stop_time:
-             start_time += (self.col_time * 60)
-             stop_time += (self.col_time * 60)
- 
-         elif last_prg.start <= start_time:
-             start_time -= (self.col_time * 60)
-             stop_time -= (self.col_time * 60)
-             
          channel = self.guide.chan_dict[last_prg.channel_id]
!         all_programs = self.guide.GetPrograms(start_time+1, stop_time-1, [ 
channel.id ])
  
          # Current channel programs
--- 360,369 ----
          last_prg      = self.selected
  
          channel = self.guide.chan_dict[last_prg.channel_id]
!         if full_scan:
!             all_programs = self.guide.GetPrograms(start_time-24*60*60, 
stop_time+24*60*60,
!                                                   [ channel.id ])
!         else:
!             all_programs = self.guide.GetPrograms(start_time+1, stop_time-1, [ 
channel.id ])
  
          # Current channel programs
***************
*** 379,389 ****
  
              prg = None
              if value > 0:
                  if i + value < len(programs):
                      prg = programs[i+value]
!                 else:
                      prg = programs[-1]
              else:
!                 prg = programs[max(0, i+value)]
  
              if prg.sub_title:
--- 378,398 ----
  
              prg = None
+ 
              if value > 0:
                  if i + value < len(programs):
                      prg = programs[i+value]
!                 elif full_scan:
!                     print 'Oops'
                      prg = programs[-1]
+                 else:
+                     return self.event_change_program(value, True)
              else:
!                 if i+value >= 0:
!                     prg = programs[i+value]
!                 elif full_scan:
!                     print 'Oops'
!                     prg = programs[0]
!                 else:
!                     return self.event_change_program(value, True)
  
              if prg.sub_title:
***************
*** 402,405 ****
--- 411,427 ----
              to_info = CHAN_NO_DATA
  
+         # set new (better) start / stop times
+         extra_space = 0
+         if prg.stop - prg.start > self.col_time * 60:
+             extra_space = self.col_time * 60
+                 
+         while prg.start + extra_space >= stop_time:
+             start_time += (self.col_time * 60)
+             stop_time += (self.col_time * 60)
+ 
+         while prg.start + extra_space <= start_time:
+             start_time -= (self.col_time * 60)
+             stop_time -= (self.col_time * 60)
+ 
          self.rebuild(start_time, stop_time, start_channel, prg)
  



-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to