'''
Minimal VLC client for AceProxy. Messages class.
'''


class VlcMessage(object):

    class request(object):
        SHUTDOWN = 'shutdown'

        @staticmethod
        def startBroadcast(stream_name, input, out_port, muxer='ts', pre_access='',qtype='default'):
            command = 'new "' + stream_name + '" broadcast input "' + input + '" output ' + (pre_access + ':' if pre_access else '#')
            if qtype=='mp4':
                command = command + 'transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:'
            elif qtype=='ogg':
                command = command + 'transcode{vcodec=theora,acodec=vorbis,vb=800,ab=128}:'    
                muxer='ogg'
            elif qtype=='ogv':
                command = command + 'transcode{vcodec=theora,acodec=vorbis,vb=8192,ab=256}:'    
                muxer='ogg'
#            elif qtype=='webm':
#                command = command + 'transcode{vcodec=VP80,acodec=vorbis,vb=512,ab=64}:'
#                muxer='ffmpeg{mux=ogg}'
            command = command +'http{mux=' + muxer + ',dst=:' + \
                str(out_port) + '/' + stream_name + '} option sout-keep option sout-all enabled' + \
                "\r\n" + 'control "' + stream_name + '" play'
            return command    

        @staticmethod
        def stopBroadcast(stream_name):
            return 'del "' + stream_name + '"'

        @staticmethod
        def pauseBroadcast(stream_name):
            return 'control "' + stream_name + '" pause'

        @staticmethod
        def playBroadcast(stream_name):
            return 'control "' + stream_name + '" play'

    class response(object):
        WRONGPASS = 'Wrong password'
        AUTHOK = 'Welcome, Master'
        BROADCASTEXISTS = 'Name already in use'
        SYNTAXERR = 'Wrong command syntax'
        STARTOK = 'new'
        STOPOK = 'del'
        STOPERR = 'media unknown'
        SHUTDOWN = 'Bye-bye!'
