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