import json

import base
import rest
from config import cfg


RelayActURL = base.joinURL(cfg.get("relay","addr"), "relay/set")
PlayAudioURL = base.joinURL(cfg.get("audio","addr"), "audio/play")
RecorderURL = base.joinURL(cfg.get("audio","addr"), "recorder")
RecordAudioURL = base.joinURL(cfg.get("audio","addr"), "audio/record")
RecognizeAudioURL = base.joinURL(cfg.get("audiotext","addr"), "recognize")

class _audiocontroller():    
    def Play(self, token, directory):
        param = json.dumps({"directory": directory})
        (hr, resp) = rest.post(PlayAudioURL, param, token)
        return hr
        
    def AsynPlay(self, token, directory):
        param = json.dumps({"directory": directory})
        (hr, resp) = rest.put(PlayAudioURL, param, token)
        return hr
           
    def ForceStop(self, token):
        (hr, resp) = rest.delete(PlayAudioURL, "", token)
        return hr
        
    def OpenMic(self, token):
        (hr, resp) = rest.put(RecorderURL, "", token)
        return hr
     
    def CloseMic(self, token):
        (hr, resp) = rest.delete(RecorderURL, "", token)
        return hr

    def Record(self, token, humanonly, directory, maxtime):
        param = json.dumps({"humanonly": humanonly, "directory": directory, "maxtime": maxtime})
        (hr, resp) = rest.post(RecordAudioURL, param, token)
        return hr

    def Recognize(self, token, directory):
        param = json.dumps({"directory": directory})
        return rest.post(RecognizeAudioURL, param, token)


AudioController = _audiocontroller()
        