gmyth-stream/server/main.py
author morphbr
Wed Apr 04 21:18:43 2007 +0100 (2007-04-04)
branchtrunk
changeset 499 9900800a8dd6
parent 497 08a2d7d67ae5
child 504 2b5355061b66
permissions -rwxr-xr-x
[svn r504] Gmyth-Streamer: mencoder stdout bug fix (Chenca's bug)
renatofilho@484
     1
#!/usr/bin/python
renatofilho@484
     2
renatofilho@484
     3
import os
renatofilho@484
     4
import lib
renatofilho@484
     5
import sys
renatofilho@484
     6
import ConfigParser
renatofilho@484
     7
renatofilho@484
     8
config = ConfigParser.ConfigParser()
renatofilho@484
     9
config.read("stream.conf")
renatofilho@484
    10
renatofilho@484
    11
media_plugin = config.get("Media", "engine")
renatofilho@484
    12
exec("from plugins.media.%s import *" % media_plugin)
renatofilho@484
    13
renatofilho@484
    14
media = Media(config)
renatofilho@484
    15
renatofilho@484
    16
comm_plugin = config.get("Comm", "engine")
renatofilho@484
    17
exec("from plugins.comm.%s import *" % comm_plugin)
renatofilho@484
    18
renatofilho@484
    19
# Start Our Server:
renatofilho@484
    20
server = Server(config)
renatofilho@484
    21
renatofilho@484
    22
lib.log("Starting GMyth-Stream server")
renatofilho@484
    23
morphbr@498
    24
while (server.finish == 0):
renatofilho@484
    25
    con, client = server.getRequest()
renatofilho@484
    26
renatofilho@484
    27
    while True:
renatofilho@484
    28
        msg = server.getMsg(1024).strip()
renatofilho@484
    29
renatofilho@484
    30
        if not msg: break
renatofilho@484
    31
renatofilho@484
    32
        lib.log("Received %s from: %s" % (msg, client) )
renatofilho@484
    33
morphbr@498
    34
        if msg == "SETUP":
renatofilho@484
    35
            setup = server.getMsg(1024).strip().split(" ")
renatofilho@484
    36
            size = len(setup)
renatofilho@484
    37
            options = []
renatofilho@484
    38
morphbr@497
    39
            if size < 10:
renatofilho@484
    40
                server.sendMsg(lib.log("Wrong SETUP command from: %s" % client[0]))
renatofilho@484
    41
renatofilho@484
    42
            else:
renatofilho@484
    43
morphbr@497
    44
                if size > 10:
renatofilho@484
    45
                    i = 10
renatofilho@484
    46
                    while (i < size):
renatofilho@484
    47
                        options.append(setup[i])
renatofilho@484
    48
                        i += 1
renatofilho@484
    49
renatofilho@484
    50
                ret = media.setup(setup[0], setup[1], setup[2], \
renatofilho@484
    51
                                  setup[3], setup[4], setup[5],
renatofilho@484
    52
                                  setup[6], setup[7], setup[8],
renatofilho@484
    53
                                  setup[9], options)
renatofilho@484
    54
morphbr@498
    55
                if ret == 0:
renatofilho@484
    56
                    server.Ack("SETUP")
renatofilho@484
    57
                else:
renatofilho@484
    58
                    server.sendMsg(lib.log(ret))
renatofilho@484
    59
renatofilho@484
    60
morphbr@498
    61
        elif msg == "PLAY":
renatofilho@484
    62
            media.play()
renatofilho@484
    63
            server.Ack("PLAY")
renatofilho@484
    64
morphbr@498
    65
        elif msg == "STOP":
renatofilho@484
    66
            media.stop()
renatofilho@484
    67
            server.Ack("STOP")
renatofilho@484
    68
morphbr@498
    69
        elif msg == "CLOSE":
renatofilho@484
    70
            server.finish = 1
renatofilho@484
    71
            media.stop()
renatofilho@484
    72
            server.Ack("CLOSE")
renatofilho@484
    73
            break
renatofilho@484
    74
renatofilho@484
    75
    lib.log("Closing connection with %s" % client[0])
renatofilho@484
    76
    server.disconnect_client(con)
renatofilho@484
    77
renatofilho@484
    78
server.stop()
renatofilho@484
    79
del(server)
renatofilho@484
    80
lib.log("Server stopped. Closing...")
renatofilho@484
    81