gmyth-stream/server/main.py
author rosfran
Wed Apr 04 16:12:16 2007 +0100 (2007-04-04)
branchtrunk
changeset 493 32148e79242d
child 497 08a2d7d67ae5
permissions -rwxr-xr-x
[svn r498] Added function to get the current frame rate.
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
renatofilho@484
    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
renatofilho@484
    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
renatofilho@484
    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
renatofilho@484
    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
renatofilho@484
    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
renatofilho@484
    61
        elif (msg == "PLAY"):
renatofilho@484
    62
            media.play()
renatofilho@484
    63
            server.Ack("PLAY")
renatofilho@484
    64
renatofilho@484
    65
        elif (msg == "STOP"):
renatofilho@484
    66
            media.stop()
renatofilho@484
    67
            server.Ack("STOP")
renatofilho@484
    68
renatofilho@484
    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