Update of /cvsroot/freevo/freevo/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17658
Modified Files:
rc.py
Log Message:
Move input classes into input plugins.
Index: rc.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/rc.py,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** rc.py 22 Aug 2004 20:15:56 -0000 1.40
--- rc.py 25 Sep 2004 04:47:05 -0000 1.41
***************
*** 10,13 ****
--- 10,16 ----
# -----------------------------------------------------------------------
# $Log$
+ # Revision 1.41 2004/09/25 04:47:05 rshortt
+ # Move input classes into input plugins.
+ #
# Revision 1.40 2004/08/22 20:15:56 dischi
# remove keyboard auto append
***************
*** 50,61 ****
import types
- import config
-
- from event import Event, BUTTON
import eventhandler
SHUTDOWN = -1
- PYLIRC = False
_singleton = None
--- 53,60 ----
***************
*** 99,267 ****
# --------------------------------------------------------------------------------
- # --------------------------------------------------------------------------------
- # internal classes of this module
- # --------------------------------------------------------------------------------
-
- class Lirc:
- """
- Class to handle lirc events
- """
- def __init__(self):
- try:
- import pylirc
- except ImportError:
- print 'WARNING: PyLirc not found, lirc remote control disabled!'
- raise Exception
- try:
- if os.path.isfile(config.LIRCRC):
- pylirc.init('freevo', config.LIRCRC)
- pylirc.blocking(0)
- else:
- raise IOError
- except RuntimeError:
- print 'WARNING: Could not initialize PyLirc!'
- raise Exception
- except IOError:
- print 'WARNING: %s not found!' % config.LIRCRC
- raise Exception
-
- self.nextcode = pylirc.nextcode
-
- self.previous_returned_code = None
- self.previous_code = None;
- self.repeat_count = 0
- self.firstkeystroke = 0.0
- self.lastkeystroke = 0.0
- self.lastkeycode = ''
- self.default_keystroke_delay1 = 0.25 # Config
- self.default_keystroke_delay2 = 0.25 # Config
-
- global PYLIRC
- PYLIRC = True
-
-
- def get_last_code(self):
- """
- read the lirc interface
- """
- result = None
-
- if self.previous_code != None:
- # Let's empty the buffer and return the most recent code
- while 1:
- list = self.nextcode();
- if list != []:
- break
- else:
- list = self.nextcode()
-
- if list == []:
- # It's a repeat, the flag is 0
- list = self.previous_returned_code
- result = list
-
- elif list != None:
- # It's a new code (i.e. IR key was released), the flag is 1
- self.previous_returned_code = list
- result = list
-
- self.previous_code = result
- return result
-
-
-
- def poll(self):
- """
- return next event
- """
- list = self.get_last_code()
-
- if list == None:
- nowtime = 0.0
- nowtime = time.time()
- if (self.lastkeystroke + self.default_keystroke_delay2 < nowtime) and \
- (self.firstkeystroke != 0.0):
- self.firstkeystroke = 0.0
- self.lastkeystroke = 0.0
- self.repeat_count = 0
-
- if list != None:
- nowtime = time.time()
-
- if list:
- for code in list:
- if ( self.lastkeycode != code ):
- self.lastkeycode = code
- self.lastkeystroke = nowtime
- self.firstkeystoke = nowtime
-
- if self.firstkeystroke == 0.0 :
- self.firstkeystroke = time.time()
- else:
- if (self.firstkeystroke + self.default_keystroke_delay1 > nowtime):
- list = []
- else:
- if (self.lastkeystroke + self.default_keystroke_delay2 <
nowtime):
- self.firstkeystroke = nowtime
-
- self.lastkeystroke = nowtime
- self.repeat_count += 1
-
- for code in list:
- eventhandler.post_key(code)
-
-
- # --------------------------------------------------------------------------------
-
- class Keyboard:
- """
- Class to handle keyboard input
- """
- def __init__(self, callback):
- """
- init the keyboard event handler
- """
- self.callback = callback
-
-
- def poll(self):
- """
- return next event
- """
- e = self.callback()
- if e:
- eventhandler.post_key(e)
-
-
- # --------------------------------------------------------------------------------
-
- class Network:
- """
- Class to handle network control
- """
- def __init__(self):
- """
- init the network event handler
- """
- import socket
- self.port = config.REMOTE_CONTROL_PORT
- self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- self.sock.setblocking(0)
- self.sock.bind(('', self.port))
-
-
- def poll(self):
- """
- return next event
- """
- try:
- return self.sock.recv(100)
- except:
- # No data available
- return None
-
-
- # --------------------------------------------------------------------------------
class MainLoop:
--- 98,101 ----
***************
*** 273,286 ****
self.inputs = []
- if use_pylirc:
- try:
- self.inputs.append(Lirc())
- except:
- pass
-
- if use_netremote and config.ENABLE_NETWORK_REMOTE and \
- config.REMOTE_CONTROL_PORT:
- self.inputs.append(Network())
-
self.callbacks = []
self.shutdown_callbacks = []
--- 107,110 ----
-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog