Skip to content
Snippets Groups Projects
osc.py 1.29 KiB
Newer Older
  • Learn to ignore specific revisions
  • import liblo, sys
    
    
    class Client:
    
        def __init__(self, host = '127.0.0.1', port = 1234):
            try:
                self.target = liblo.Address(host, port)
            except:
                print >>sys.stderr, 'OSC: Could not connect to server %s:%p' % (host, port)
    
        def send(self, message):
            try:
                liblo.send(self.target, str(message))
            except:
                print >>sys.stderr, 'OSC: failed to send message [%s]' % str(message)
    
    
        def send_action(self, action):
            self.send('ACTION: %s' % action.text)
    
        def send_words(self, start, words):
            self.send('WORDS(%d): %s' % (start, words))
    
    class Server:
    
        def __init__(self, host = '127.0.0.1', port = 1234):
            print 'OSC: Creating server at %s:%d' % (host, port)
            self.server = liblo.Server(port)
            self.server.add_method(None, None, self.callback)
    
        def callback(self, message):
    
            print 'OSC: Received [%s]' % message
    
    
        def run(self):
            print 'OSC: Waiting for messages'
            while True:
                self.server.recv(100)
    
    
    client = None
    def setup(host, port):
        global client
        client = Client(host, port)
    
    
    if __name__ == '__main__':
        if len(sys.argv) > 1:
    
            client = Client()
    
            client.send(' '.join(sys.argv[1:]))
        else:
    
            server = Server()
    
            server.run()