2 changed files with 12 additions and 85 deletions
@ -1,82 +0,0 @@
@@ -1,82 +0,0 @@
|
||||
#! /usr/bin/env python |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from pulsectl import Pulse |
||||
import SocketServer |
||||
from threading import Thread |
||||
|
||||
LISTEN_ON = ("10.0.0.4", 2000) |
||||
|
||||
def main(): |
||||
pulse = Pulse('mic-control') |
||||
|
||||
sources = pulse.source_list() |
||||
|
||||
sourceNumber = getSourceSelection(sources) |
||||
|
||||
server = SocketServer.TCPServer(LISTEN_ON, RequestHandler) |
||||
|
||||
try: |
||||
server.serve_forever() |
||||
except KeyboardInterrupt: |
||||
server.shutdown() |
||||
server.server_close() |
||||
|
||||
|
||||
def getSourceSelection(sources): |
||||
sourceCount = len(sources) - 1 |
||||
error = False |
||||
while True: |
||||
message = error if error else "Please select a source: " |
||||
print(message) |
||||
for i, source in enumerate(sources): |
||||
print "%i: %s" % (i, source.description) |
||||
selection = raw_input("Enter a number[0-%i]:" % sourceCount) |
||||
print("") |
||||
try : |
||||
return getInt(selection, sourceCount) |
||||
except InputError as e: |
||||
error = e.message |
||||
|
||||
def getInt(value, sourceCount): |
||||
|
||||
number = 0 |
||||
try: |
||||
number = int(value) |
||||
except ValueError as e: |
||||
raise InputError("Enter only a number...") |
||||
|
||||
if number not in range(0, sourceCount): |
||||
raise InputError("Not a valid option...") |
||||
|
||||
return number |
||||
|
||||
class RequestHandler(SocketServer.StreamRequestHandler): |
||||
def handle(self): |
||||
|
||||
for line in self.rfile: |
||||
message = line.strip() |
||||
if message in messageTypes: |
||||
messageTypes[message]() |
||||
self.wfile.write(message) |
||||
print("Closed!") |
||||
self.request.close() |
||||
|
||||
|
||||
def buttonPressed(): |
||||
print("down!") |
||||
|
||||
def buttonReleased(): |
||||
print("up!") |
||||
|
||||
messageTypes = { |
||||
'button_press': buttonPressed, |
||||
'button_release': buttonReleased, |
||||
} |
||||
|
||||
class InputError(Exception): |
||||
def __init__(self, message): |
||||
self.message = message |
||||
|
||||
|
||||
main() |
Loading…
Reference in new issue