/** * \file renderer.h * * \author Wesnydy Lima Ribeiro * \date 2015 */ #ifndef RENDERER_H #define RENDERER_H #include #include #include #include #include #include "string.h" #include "jthread.h" #include "logging.h" #include "listenerRenderer.h" #include #include #include #include #include #define HOST "0.0.0.0" #define PORT 5555 #define OK_FLAG "OK" #define END_FLAG "FINALIZE" #define BADSENTENCE "SENTENCACOMBAIXAQUALIDADE" #define BADTEXT "ESCOLHER TEXTO CERTO" #define PATH_RENDERER "vlibras_user/unityVideo/" #define PATH_SCREENS "vlibras_user/.config/unity3d/LAViD/VLibrasVideoMaker/" using namespace jthread; using namespace lavidlib; using namespace std; using namespace util; /** \brief Classe que implementa o Renderizador. * * \headerfile renderer/src/include/renderer.h */ class Renderer : public Thread { public: /** Construtor. * * \param path_contents Abstração do path do vídeo de saída. * \param id Identificação do usuário. */ Renderer(char* path_Contents, char* id); /** Destrutor. */ ~Renderer(); /** Inicia os processos do renderizador. * * Inicia o servidor do Unity Player, * faz a conexão do Core com o Player * e da inicio ao envio das glosas para * a geração do vídeo de LIBRAS. */ void initialize(); /** Adiciona ouvintes do renderer. * * \param listener O ouvinte a ser registrado. */ void addListener(ListenerRenderer* listener); /** Recebe a glosa q será enviada para o player. * * \param glosa A glosa que será enviada. * \param pts A etiqueta de tempo da glosa. */ void receiveGlosa(string glosa, int64_t pts); private: char* userID; char* pathOutVideo; StreamSocket* cSocket; queue glosaQueue; list* listeners; /** Executa o script que inicia o servidor do Player. */ void executeServerScript(); /** Faz a conexão do Core com o Player. */ void connectToUnityPlayer(); /** Envia as glosas para o Player. */ void exportGlosa(); /** Renderiza o vídeo de LIBRAS. */ void renderVideo(); /** Aguarda o Player capturar as screenshots. */ void waitScreenShots(); /** Notifica o fim da renderização. */ void notifyListeners(); /** Deleta os arquivos temporários */ void cleanFiles(); /** Chamado quando a Thread é iniciada. */ void Run(); }; #endif /* RENDERER_H */