#include "include/serviceWindowGenerationFromCC.h" using namespace std; ServiceWindowGenerationFromCC::ServiceWindowGenerationFromCC( char* path, int position, int size, int transparency, int _serviceType) { setPathInput(path); numero_legendas = 0; setPosition(position); setSize(size); setTransparency(transparency); setServiceType(_serviceType); //this->fisish = false; //initialize(); } ServiceWindowGenerationFromCC::~ServiceWindowGenerationFromCC() { } void ServiceWindowGenerationFromCC::setPathInput(char* path) { this->path_input = path; } void ServiceWindowGenerationFromCC::notificaCC(unsigned char* cc, int64_t pts) { cout << "1-Chegou LEGENDA no ServiceFromCC\n" << endl; printf("Glosa: %s PTS: %lld\n", cc, pts); if (!strcmp((const char*) cc, "Homem supermercado falar nao vender.")) { printf("\nIGUAL\n"); return; } else { //printf("\nDIFERENTE\n"); } numero_legendas++; char op = this->getRunningOption(); if (op == '3') { notificaSincronizadorSemTradutor(cc, pts); } else { adicionaPTS(pts); notificaTradutor(cc); } } void ServiceWindowGenerationFromCC::notificaSincronizadorSemTradutor(unsigned char * cc, int64_t pts) { char* pch = strtok((char*) cc, " "); while (pch != NULL) { string pch_string = (string) pch; sincronizador->recebeglosa(pch_string, pts); printf("%s\n", pch); pch = strtok(NULL, " "); } } void ServiceWindowGenerationFromCC::notificaTradutor(unsigned char* cc) { const char* constchar = (const char*) cc; char* cc_copy = new char[strlen(constchar)]; strcpy(cc_copy, constchar); tradutor->traduz((unsigned char*) cc_copy); } void ServiceWindowGenerationFromCC::initialize() { inputfile = new InputFile(this->path_input); extratorCC = new ExtratorCC(); monitor_pcr_base = new MonitorPCR(); demux = new Demux(278, (DemuxListener*) extratorCC); inputfile->registraOuvinte(demux); extratorCC->registraOuvinte(this); inputfile->registraOuvinte(monitor_pcr_base); ServiceWindowGeneration::initialize(); inputfile->initialize(); this->Start(); } void ServiceWindowGenerationFromCC::Run() { while (true) { if (inputfile->isFinished()) { this->finish = true; if (getRunningOption() == '3') { //printf("\n\n\nEncerrei\n\n\n"); sincronizador->stop(); } } sleep(5); } }