renatofilho@484: #!/usr/bin/python renatofilho@484: renatofilho@484: import os renatofilho@484: import lib renatofilho@484: import sys renatofilho@484: import ConfigParser renatofilho@484: renatofilho@484: config = ConfigParser.ConfigParser() renatofilho@484: config.read("stream.conf") renatofilho@484: renatofilho@484: media_plugin = config.get("Media", "engine") renatofilho@484: exec("from plugins.media.%s import *" % media_plugin) renatofilho@484: renatofilho@484: media = Media(config) renatofilho@484: renatofilho@484: comm_plugin = config.get("Comm", "engine") renatofilho@484: exec("from plugins.comm.%s import *" % comm_plugin) renatofilho@484: renatofilho@484: # Start Our Server: renatofilho@484: server = Server(config) renatofilho@484: renatofilho@484: lib.log("Starting GMyth-Stream server") renatofilho@484: morphbr@498: while (server.finish == 0): renatofilho@484: con, client = server.getRequest() renatofilho@484: renatofilho@484: while True: renatofilho@484: msg = server.getMsg(1024).strip() renatofilho@484: renatofilho@484: if not msg: break renatofilho@484: renatofilho@484: lib.log("Received %s from: %s" % (msg, client) ) renatofilho@484: morphbr@498: if msg == "SETUP": renatofilho@484: setup = server.getMsg(1024).strip().split(" ") renatofilho@484: size = len(setup) renatofilho@484: options = [] renatofilho@484: morphbr@497: if size < 10: renatofilho@484: server.sendMsg(lib.log("Wrong SETUP command from: %s" % client[0])) renatofilho@484: renatofilho@484: else: renatofilho@484: morphbr@497: if size > 10: renatofilho@484: i = 10 renatofilho@484: while (i < size): renatofilho@484: options.append(setup[i]) renatofilho@484: i += 1 renatofilho@484: renatofilho@484: ret = media.setup(setup[0], setup[1], setup[2], \ renatofilho@484: setup[3], setup[4], setup[5], renatofilho@484: setup[6], setup[7], setup[8], renatofilho@484: setup[9], options) renatofilho@484: morphbr@498: if ret == 0: renatofilho@484: server.Ack("SETUP") renatofilho@484: else: renatofilho@484: server.sendMsg(lib.log(ret)) renatofilho@484: renatofilho@484: morphbr@498: elif msg == "PLAY": renatofilho@484: media.play() renatofilho@484: server.Ack("PLAY") renatofilho@484: morphbr@498: elif msg == "STOP": renatofilho@484: media.stop() renatofilho@484: server.Ack("STOP") renatofilho@484: morphbr@498: elif msg == "CLOSE": renatofilho@484: server.finish = 1 renatofilho@484: media.stop() renatofilho@484: server.Ack("CLOSE") renatofilho@484: break renatofilho@484: renatofilho@484: lib.log("Closing connection with %s" % client[0]) renatofilho@484: server.disconnect_client(con) renatofilho@484: renatofilho@484: server.stop() renatofilho@484: del(server) renatofilho@484: lib.log("Server stopped. Closing...") renatofilho@484: