#include "serviceWindowGenerationFromREC.h" using namespace std; ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( char* path_video, int sublanguage, int position, int size, int transparency, char* id, int _serviceType, char* rate) { path_input = path_video; setSubLanguage(sublanguage); setPosition(position); setSize(size); setTransparency(transparency); setServiceType(_serviceType); setUserId(id); rec = new Recognize(path_input, id, rate); DPRINTF("Done!\n"); } ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC( char* path_video, int sublanguage, int position, int size, int transparency, char* id, int _serviceType) { path_input = path_video; setSubLanguage(sublanguage); setPosition(position); setSize(size); setTransparency(transparency); setServiceType(_serviceType); setUserId(id); rec = new Recognize(path_input, id); DPRINTF("Done!\n"); } ServiceWindowGenerationFromREC::~ServiceWindowGenerationFromREC() { delete rec; DDDPRINTF("Service REC finished!\n"); } void ServiceWindowGenerationFromREC::initialize() { rec->addListener(this); ServiceWindowGeneration::initialize(); try{ rec->initialize(); }catch(RecognizeException ex){ throw ServiceException(ex.getMessage()); } this->Start(); } void ServiceWindowGenerationFromREC::notifyTextRecognized(unsigned char* text, int64_t pts) { if (getRunningOption() == '3') { notifySynchWithoutTranslator(text, pts); } else { adicionaPTS(pts); notifyTranslator(text); } } void ServiceWindowGenerationFromREC::notifyTranslator(unsigned char *text) { tradutor->traduz(text); } void ServiceWindowGenerationFromREC::notifySynchWithoutTranslator(unsigned char *text, int64_t pts) { char* pch = strtok((char*) text, " "); while (pch != NULL) { string pch_string = (string) pch; sincronizador->recebeglosa(pch_string, pts); pch = strtok(NULL, " "); } free(pch); } void ServiceWindowGenerationFromREC::Run() { while (!rec->isFinished()) { sleep(2); } sincronizador->stop(); }