/** * \file serviceWindowGenerationFromTXT.h */ #ifndef SERVICEWINDOWGENERATIONFROMTEXT_H #define SERVICEWINDOWGENERATIONFROMTEXT_H #include "listenerTXT.h" #include "extratorFactory.h" #include "serviceWindowGeneration.h" #define MAX_TEXT_SIZE 2048 //FIXME: está restrito a 2K bytes de texto /** \brief Classe que implementa o serviço de extração de texto. * * \headerfile servico/src/include/serviceWindowGenerationFromTXT.h */ class ServiceWindowGenerationFromText : public ServiceWindowGeneration, public ListenerTXT, public ListenerTradutor, public ListenerRenderer, public Thread { private: ExtratorFactory* extrator_factory; ExtratorTXT* extratorTXT; /** Seta o número de linhas. * * \param A quantidade de linhas. * \exception ServiceException Se houver algum erro durante a execução. */ void setSizeOfSubtitles(int sub_size); /** Define o path do vídeo de LIBRAS. */ void setPathLibras(); /** Define o path dos arquivos de saída. * * \exception RuntimeException Se houver algum erro durante a execução. */ void setPathContents(); /** Indica se o serviço está sendo executado. * * \return O status do serviço. */ bool isRunning(); public: /** Construtor. * * \param pathFile Path do arquivo de texto de entrada. * \param sublanguage Linguagem das legendas do arquivo. * \param transparency Transparência do plano de fundo do vídeo. * \param id Identificação do cliente. * \param mode Modo de execução. */ ServiceWindowGenerationFromText(char* pathFile, int sublanguage, int transparency, char* id, int mode); /** Destrutor */ ~ServiceWindowGenerationFromText(); /** Notifica novas linhas extraídas. * * \param line A linha extraída. */ void notifyLine(unsigned char* line); /** Recebe a notificação do fim da renderização do vídeo */ void notifyEndOfRenderization(); /** Recebe a notificação do fim da tradução do texto. * * \param glosa O texto traduzido. */ void notifyTranslation(char* glosa); /** Envia para a tradução a linha obtida. * * \param text A linha obtida. */ void notifyTranslator(unsigned char* text); /** Envia a glosa para o renderizador. * * \param glosa A glosa obtida. * \exception ServiceException Se houver algum erro durante a execução. */ void notifyRenderer(string glosa); /** Notifica o fim da extração do texto. * * \param line_size O número de linhas extraídas. */ void notifyEnd(int line_size); /** Inicia o serviço de extração de texto. * * \exception ServiceException Se houver algum erro durante a execução. */ void initialize(); /** Indica o fim do processo do serviço. * * \return O status do processo. */ bool isFinished(); /** Este método é chamado quando a Thread for iniciada. */ void Run(); }; #endif /* SERVICEWINDOWGENERATIONFROMTEXT_H */