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

Modified Files:
        main.py rc.py 
Log Message:
Added Matthew Weber's "rc repeat" patch; it requires pylirc 0.0.4 or newer (CVS)



Index: main.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/main.py,v
retrieving revision 1.54
retrieving revision 1.55
diff -C2 -d -r1.54 -r1.55
*** main.py     30 Jul 2003 15:13:00 -0000      1.54
--- main.py     1 Aug 2003 13:17:48 -0000       1.55
***************
*** 11,14 ****
--- 11,17 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.55  2003/08/01 13:17:48  outlyer
+ # Added Matthew Weber's "rc repeat" patch; it requires pylirc 0.0.4 or newer (CVS)
+ #
  # Revision 1.54  2003/07/30 15:13:00  outlyer
  # Add encoding to remove some warnings from Python 2.3. Has no effect on
***************
*** 317,321 ****
          while 1:
  
!             event = rc_object.poll()
              if event:
                  break
--- 320,325 ----
          while 1:
  
!             event, event_repeat_count = rc_object.poll()
!             # OK, now we have a repeat_count... to whom could we give it?
              if event:
                  break
***************
*** 328,332 ****
                          p.poll()
  
!             time.sleep(0.1)
  
          for p in poll_plugins:
--- 332,336 ----
                          p.poll()
  
!             time.sleep(0.01)
  
          for p in poll_plugins:

Index: rc.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/rc.py,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** rc.py       24 Jul 2003 00:12:05 -0000      1.20
--- rc.py       1 Aug 2003 13:17:48 -0000       1.21
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.21  2003/08/01 13:17:48  outlyer
+ # Added Matthew Weber's "rc repeat" patch; it requires pylirc 0.0.4 or newer (CVS)
+ #
  # Revision 1.20  2003/07/24 00:12:05  rshortt
  # Network remote bugfix.
***************
*** 91,94 ****
--- 94,98 ----
  #endif
  
+ import copy
  import socket
  import config
***************
*** 169,172 ****
--- 173,187 ----
          self.context = 'menu'
          self.queue = []
+         self.previous_returned_code = None
+         self.previous_code = None;
+         self.repeat_count = 0
+ 
+         # Take into consideration only 1 event out of ``modulo''
+         self.default_repeat_modulo = 4 # Config
+ 
+         # After how many repeats do we decrease the modulo?
+         self.repeat_modulo_decrease_threshhold = 5 # Config
+         
+         self.repeat_modulo = self.default_repeat_modulo
  
  
***************
*** 205,208 ****
--- 220,243 ----
          return Event(BUTTON, arg=key)
      
+     def get_last_code(self):
+         result = (None, None) # (Code, is_it_new?)
+         if self.previous_code != None:
+             # Let's empty the buffer and return the most recent code
+             while 1:
+                 list = pylirc.nextcode();
+                 if list != []:
+                     break
+         else:
+             list = pylirc.nextcode()
+         if list == []:
+             # It's a repeat, the flag is 0
+             list = self.previous_returned_code
+             result = (list, 0)
+         elif list != None:
+             self.previous_returned_code = list
+             # It's a new code (i.e. IR key was released), the flag is 1
+             result = (list, 1)
+         self.previous_code = list
+         return result
          
      def poll(self):
***************
*** 210,225 ****
              ret = self.queue[0]
              del self.queue[0]
!             return ret
  
          e = self.key_event_mapper(self.osd._cb())
!         if e:
!             return e
          
          if self.pylirc:
!             list = pylirc.nextcode()
!             if list:
                  for code in list:
!                     e = self.key_event_mapper(code)
!                   if not e:  e = self.key_event_mapper(self.osd._cb)
                      if e:
                          return e
--- 245,273 ----
              ret = self.queue[0]
              del self.queue[0]
!             return (ret, None)
  
          e = self.key_event_mapper(self.osd._cb())
!         if e != None:
!             return (e, None)
          
          if self.pylirc:
!             list, flag = self.get_last_code()
!             if flag == 1:
!                 self.repeat_count = 0
!                 self.repeat_modulo = self.default_repeat_modulo
! 
!             if list != None:
!                 if self.repeat_count > self.repeat_modulo_decrease_threshhold * \
!                   (self.default_repeat_modulo - self.repeat_modulo + 1) \
!                   and self.repeat_modulo > 1:
!                       self.repeat_modulo -= 1
!                 if self.repeat_count % self.repeat_modulo != 0:
!                     list = []
!                 self.repeat_count += 1
! 
                  for code in list:
!                     e = (self.key_event_mapper(code), self.repeat_count)
! 
!                   if not e:  e = (self.key_event_mapper(self.osd._cb), None)
                      if e:
                          return e
***************
*** 237,239 ****
                  pass
  
!         return None
--- 285,287 ----
                  pass
  
!         return (None, None)




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to