Commit 7724541292051b57c62aad097466e0fcfbba2fee

Authored by Wesnydy Ribeiro
1 parent 421fa204
Exists in master and in 1 other branch devel

Adaptado o padrão de desenvolvimento do componente servico

main.cpp
... ... @@ -177,7 +177,7 @@ void serviceREC(char* path_video, char* sublanguage,
177 177 hasFailed();
178 178 return;
179 179 }
180   - while(service_rec->isRunning()){
  180 + while(!service_rec->isFinished()){
181 181 sleep(2);
182 182 }
183 183 delete service_rec;
... ... @@ -202,7 +202,7 @@ void serviceREC(char* path_video, char* sublanguage,
202 202 hasFailed();
203 203 return;
204 204 }
205   - while(service_rec->isRunning()){
  205 + while(!service_rec->isFinished()){
206 206 sleep(2);
207 207 }
208 208 delete service_rec;
... ... @@ -225,7 +225,7 @@ void serviceSRT(char* path_in, char* path_srt, char* sublanguage,
225 225 hasFailed();
226 226 return;
227 227 }
228   - while(service_srt->isRunning()){
  228 + while(!service_srt->isFinished()){
229 229 sleep(5);
230 230 }
231 231  
... ... @@ -246,7 +246,7 @@ void serviceText(char* path_text, char* transparency, char* id, char* client_typ
246 246 return;
247 247 }
248 248  
249   - while (service_text->isAlive()) {
  249 + while (!service_text->isFinished()) {
250 250 usleep(100000); //100ms
251 251 }
252 252 delete service_text;
... ... @@ -263,7 +263,7 @@ void serviceText(char* path_text, char* transparency, char* id, char* client_typ
263 263 return;
264 264 }
265 265  
266   - while (service_text->isAlive()) {
  266 + while (!service_text->isFinished()) {
267 267 usleep(100000); //100ms
268 268 }
269 269 delete service_text;
... ... @@ -273,7 +273,6 @@ void serviceText(char* path_text, char* transparency, char* id, char* client_typ
273 273  
274 274 void serviceOnlySRT(char* path_file, char* transparency, char* id){
275 275  
276   -
277 276 ServiceWindowGenerationFromSRT * service_srt;
278 277 service_srt = new ServiceWindowGenerationFromSRT(path_file, (int) atoi(transparency), id, 5);
279 278 try{
... ... @@ -284,7 +283,7 @@ void serviceOnlySRT(char* path_file, char* transparency, char* id){
284 283 return;
285 284 }
286 285  
287   - while (!service_srt->finished()) {
  286 + while (!service_srt->isFinished()) {
288 287 usleep(100000); //100ms
289 288 }
290 289 delete service_srt;
... ... @@ -309,7 +308,7 @@ void serviceOnlyAudio(char* path_audio, char* transparency, char* id, char* rate
309 308 hasFailed();
310 309 return;
311 310 }
312   - while(service_rec->isRunning()){
  311 + while(!service_rec->isFinished()){
313 312 sleep(2);
314 313 }
315 314 delete service_rec;
... ... @@ -333,7 +332,7 @@ void serviceOnlyAudio(char* path_audio, char* transparency, char* id){
333 332 hasFailed();
334 333 return;
335 334 }
336   - while(service_rec->isRunning()){
  335 + while(!service_rec->isFinished()){
337 336 sleep(2);
338 337 }
339 338 delete service_rec;
... ... @@ -357,12 +356,12 @@ void hasInvalid(){
357 356 //Help do programa, explicando todos os parâmetros existentes...
358 357 void help() {
359 358 cout <<"\n##################################################################################\n"
360   - <<"# SERVICE_TYPE: 1 - means Closed Caption - doesn't use INPUT_SRT #\n"
361   - <<"# 2 - means With Subtitles (SRT) - requires INPUT_SRT #\n"
362   - <<"# 3 - means Recognize - requires INPUT_VIDEO #\n"
  359 + <<"# SERVICE_TYPE: 1 - means Closed Caption - doesn't use INPUT_SRT #\n"
  360 + <<"# 2 - means With Subtitles (SRT) - requires INPUT_SRT #\n"
  361 + <<"# 3 - means Recognize - requires INPUT_VIDEO #\n"
363 362 <<"# 4 - means Text - requires INPUT_FILE_TEXT #\n"
364   - <<"# 5 - means Subtitles ONLY (SRT) - requires INPUT_SRT #\n"
365   - <<"# 6 - means Audio - requires INPUT_AUDIO #\n"
  363 + <<"# 5 - means Subtitles ONLY (SRT) - requires INPUT_SRT #\n"
  364 + <<"# 6 - means Audio - requires INPUT_AUDIO #\n"
366 365 <<"####################################################################################\n\n"
367 366 /*<<"# INPUT_VIDEO: Path of the video file #\n"
368 367 <<"#----------------------------------------------------------------------------------#\n"
... ...
servico/src/include/serviceWindowGeneration.h
... ... @@ -57,12 +57,10 @@ protected:
57 57 char* path_audio;
58 58 char* path_libras;
59 59 char* client_type;
60   -
61   - bool running;
62   -
63   - bool finish;
64 60 char* user_id;
65 61  
  62 + bool running;
  63 +
66 64 int size, position, transparency, sublanguage, serviceType, numero_legendas, legendas_enviadas;
67 65  
68 66 void setSize(int);
... ... @@ -82,12 +80,12 @@ public:
82 80  
83 81 ServiceWindowGeneration();
84 82 ~ServiceWindowGeneration();
  83 +
85 84 virtual void notifyTranslation(vector<string>* glosas);
86 85 virtual void notifyEndOfSynchronization();
87 86 //virtual void notifyPCRBase(uint64_t pcr_base);
  87 +
88 88 void initialize();
89   - TradutorPortGlosa * getTradutor();
90   - void adicionaPTS(int64_t pts);
91 89 bool isRunning();
92 90  
93 91 char* getPathLibras();
... ... @@ -95,8 +93,11 @@ public:
95 93 char* getClientType();
96 94 char* getPathInput();
97 95 string getPathAPI();
  96 + TradutorPortGlosa * getTradutor();
  97 +
98 98 void setPathLibras();
99 99 void setSizeOfSubtitles(int sub_size);
  100 + void adicionaPTS(int64_t pts);
100 101 };
101 102  
102 103 #endif /* SERVICEWINDOWGENERATION_H */
... ...
servico/src/include/serviceWindowGenerationFromREC.h
... ... @@ -16,25 +16,21 @@ class ServiceWindowGenerationFromREC : public ServiceWindowGeneration, public Re
16 16  
17 17 private:
18 18 Recognize *rec;
  19 + bool finish;
19 20  
20 21 public:
21 22  
22 23 ServiceWindowGenerationFromREC(char* path_video, int sublanguage, int position, int size, int transparency, char* id, int _serviceType, char* rate);
23   -
24 24 ServiceWindowGenerationFromREC(char* path_video, int sublanguage, int position, int size, int transparency, char* id, int _serviceType);
25   -
26 25 ~ServiceWindowGenerationFromREC();
27   - void initialize();
28   -
  26 +
29 27 virtual void notifyTextRecognized(unsigned char* text, int64_t pts);
30 28 virtual void notifyEnd(int sentences_size);
31   -
32   -
33 29 void notifyTranslator(unsigned char *text);
34   - void notifySynchWithoutTranslator(unsigned char *text, int64_t pts);
35   -
  30 +
  31 + void initialize();
  32 + bool isFinished();
36 33 void Run();
37   -
38 34 };
39 35  
40 36 #endif /* SERVICEWINDOWGENERATIONFROMREC_H */
... ...
servico/src/include/serviceWindowGenerationFromSRT.h
... ... @@ -21,33 +21,27 @@ private:
21 21 pthread_mutex_t *mutex_serviceSRT;
22 22 ExtratorSRT * extratorSRT;
23 23 char* path_srt;
24   - bool finish_srt;
  24 + bool finish;
25 25  
26 26 public:
27 27  
28 28 /* Construtor 1 - legenda e vídeo */
29   - ServiceWindowGenerationFromSRT(
30   - char* path_video, char* path_srt, int sublanguage,
  29 + ServiceWindowGenerationFromSRT(char* path_video, char* path_srt, int sublanguage,
31 30 int position, int size, int transparency, char* id, int _serviceType);
32   -
33 31 /* Construtor 2 - só legenda */
34 32 ServiceWindowGenerationFromSRT(char* path_srt, int transparency, char* id, int _serviceType);
35   -
36   - /* Destrutor */
37 33 ~ServiceWindowGenerationFromSRT();
38 34  
39 35 virtual void notifySubtitle(unsigned char* subtitle, int64_t pts);
40 36 virtual void notifyEnd(int sub_size);
41   -
42   - void notificaTradutor(unsigned char *legenda);
43   -
44   - bool finished();
  37 + void notifyTranslator(unsigned char* subtitle);
45 38  
46   - void notificaSincronizadorSemTradutor(unsigned char *legenda, int64_t pts);
47 39 void initialize();
48   - void setPathSRT(char* path_srt);
  40 + bool isFinished();
49 41 void Run();
50 42  
  43 + void setPathSRT(char* path_srt);
  44 +
51 45 };
52 46  
53 47 #endif /* SERVICEWINDOWGENERATIONFROMSRT_H */
... ...
servico/src/include/serviceWindowGenerationFromText.h
... ... @@ -12,17 +12,19 @@
12 12 class ServiceWindowGenerationFromText : public ServiceWindowGeneration, public ListenerTXT, public Thread {
13 13  
14 14 private:
15   - ExtratorTXT * extratorTXT;
16   - bool alive;
  15 + ExtratorTXT * extratorTXT;
  16 + bool finish;
17 17  
18 18 public:
19 19 ServiceWindowGenerationFromText (char* _path_file, char* _video_path_file,
20 20 int _transp, int _serviceType, char* _client_type);
21 21 ~ServiceWindowGenerationFromText ();
  22 +
22 23 void notifyLine(unsigned char* line);
23 24 void notifyEnd(int line_size);
  25 +
24 26 void initialize();
25   - bool isAlive();
  27 + bool isFinished();
26 28 void Run();
27 29 };
28 30  
... ...
servico/src/serviceWindowGeneration.cpp
... ... @@ -20,57 +20,13 @@ ServiceWindowGeneration::~ServiceWindowGeneration() {
20 20 if (mixer) delete mixer;
21 21 if (tradutor) delete tradutor;
22 22 if (sincronizador) delete sincronizador;
23   -
24 23 DDDPRINTF("Service finalized!\n");
25   -
26   -}
27   -
28   -void ServiceWindowGeneration::adicionaPTS(int64_t pts) {
29   - vetor_pts->push_back(pts);
30   -}
31   -
32   -/* Checado pela subclasse para saber quando o sincronizador terminar. */
33   -bool ServiceWindowGeneration::isRunning() {
34   - return this->running;
35   -}
36   -
37   -/* Quando o sincronizador termina, ele invoca esse método para avisar! */
38   -void ServiceWindowGeneration::notifyEndOfSynchronization() {
39   - if (serviceType == SERVICE_TYPE_REC || serviceType == SERVICE_TYPE_SRT) {
40   - mixer = new Mixer();
41   - mixer->initialize(this->path_input, this->path_libras,this->position,this->size,this->transparency, this->user_id);
42   - createThumbnail();
43   - }else
44   - transcodeVideoToMp4();
45   - this->running = false;
46   -
47   -}
48   -
49   -void ServiceWindowGeneration::setSizeOfSubtitles(int sub_size) {
50   - numero_legendas = sub_size;
51   - if (legendas_enviadas >= numero_legendas) {
52   - sincronizador->stop();
53   - }
54   -}
55   -
56   -void ServiceWindowGeneration::setPathLibras() {
57   - char* final_path = new char[MAX_SIZE_PATH];
58   - strcpy(final_path, "vlibras_user/vlibras-api/uploads/");
59   - strcat(final_path, this->user_id);
60   - strcat(final_path, "/libras.ts");
61   -
62   - this->path_libras = final_path;
63   - //DDPRINTF("Path TS File: %s\n", this->path_libras);
64 24 }
65 25  
66 26 char* ServiceWindowGeneration::getPathLibras() {
67 27 return path_libras;
68 28 }
69 29  
70   -void ServiceWindowGeneration::setPathInput(char* _path_input) {
71   - this->path_input = _path_input;
72   -}
73   -
74 30 char* ServiceWindowGeneration::getPathInput() {
75 31 return path_input;
76 32 }
... ... @@ -79,10 +35,6 @@ string ServiceWindowGeneration::getPathAPI() {
79 35 return PATH_API;
80 36 }
81 37  
82   -void ServiceWindowGeneration::setUserId(char* _userId) {
83   - this->user_id = _userId;
84   -}
85   -
86 38 char* ServiceWindowGeneration::getClientType(){
87 39 return client_type;
88 40 }
... ... @@ -91,14 +43,26 @@ char* ServiceWindowGeneration::getUserId() {
91 43 return user_id;
92 44 }
93 45  
94   -void ServiceWindowGeneration::setServiceType(int type) {
95   - serviceType = type;
  46 +void ServiceWindowGeneration::setPathInput(char* _path_input) {
  47 + this->path_input = _path_input;
96 48 }
97 49  
98 50 void ServiceWindowGeneration::setClientType(char* client_type) {
99 51 this->client_type = client_type;
100 52 }
101 53  
  54 +void ServiceWindowGeneration::setUserId(char* _userId) {
  55 + this->user_id = _userId;
  56 +}
  57 +
  58 +void ServiceWindowGeneration::setServiceType(int type) {
  59 + serviceType = type;
  60 +}
  61 +
  62 +void ServiceWindowGeneration::setSubLanguage(int sublang){
  63 + this->sublanguage = sublang;
  64 +}
  65 +
102 66 void ServiceWindowGeneration::setSize(int size){
103 67 this->size = size;
104 68 }
... ... @@ -111,15 +75,47 @@ void ServiceWindowGeneration::setTransparency(int transparency){
111 75 this->transparency = transparency;
112 76 }
113 77  
114   -void ServiceWindowGeneration::setSubLanguage(int sublang){
115   - this->sublanguage = sublang;
  78 +void ServiceWindowGeneration::setPathLibras() {
  79 + char* final_path = new char[MAX_SIZE_PATH];
  80 + strcpy(final_path, "vlibras_user/vlibras-api/uploads/");
  81 + strcat(final_path, this->user_id);
  82 + strcat(final_path, "/libras.ts");
  83 +
  84 + this->path_libras = final_path;
  85 + //DDPRINTF("Path TS File: %s\n", this->path_libras);
  86 +}
  87 +
  88 +void ServiceWindowGeneration::setSizeOfSubtitles(int sub_size) {
  89 + numero_legendas = sub_size;
  90 + if (legendas_enviadas >= numero_legendas)
  91 + sincronizador->stop();
  92 +}
  93 +
  94 +void ServiceWindowGeneration::adicionaPTS(int64_t pts) {
  95 + vetor_pts->push_back(pts);
  96 +}
  97 +
  98 +/* Checado pela subclasse para saber quando o sincronizador terminar. */
  99 +bool ServiceWindowGeneration::isRunning() {
  100 + return this->running;
  101 +}
  102 +
  103 +/* Quando o sincronizador termina, ele invoca esse método para avisar! */
  104 +void ServiceWindowGeneration::notifyEndOfSynchronization() {
  105 + if (serviceType == SERVICE_TYPE_REC || serviceType == SERVICE_TYPE_SRT) {
  106 + mixer = new Mixer();
  107 + mixer->initialize(this->path_input, this->path_libras,this->position,this->size,this->transparency, this->user_id);
  108 + createThumbnail();
  109 + }else{
  110 + transcodeVideoToMp4();
  111 + }
  112 + this->running = false;
116 113 }
117 114  
118 115 void ServiceWindowGeneration::initialize() {
119 116  
120 117 setPathLibras();
121 118  
122   - this->finish = false;
123 119 if (this->sublanguage == 1) {
124 120 tradutor->addListener(this);
125 121 }
... ...
servico/src/serviceWindowGenerationFromREC.cpp
... ... @@ -11,6 +11,7 @@ ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC(
11 11 setServiceType(serviceType);
12 12 setUserId(id);
13 13 rec = new Recognize(path_video, id, rate);
  14 + finish = false;
14 15 DPRINTF("Done!\n");
15 16 }
16 17  
... ... @@ -25,6 +26,7 @@ ServiceWindowGenerationFromREC::ServiceWindowGenerationFromREC(
25 26 setServiceType(serviceType);
26 27 setUserId(id);
27 28 rec = new Recognize(path_video, id);
  29 + finish = false;
28 30 DPRINTF("Done!\n");
29 31 }
30 32  
... ... @@ -33,6 +35,24 @@ ServiceWindowGenerationFromREC::~ServiceWindowGenerationFromREC() {
33 35 DDDPRINTF("Service REC finished!\n");
34 36 }
35 37  
  38 +void ServiceWindowGenerationFromREC::notifyTranslator(unsigned char *text) {
  39 + tradutor->traduz(text);
  40 +}
  41 +
  42 +void ServiceWindowGenerationFromREC::notifyTextRecognized(unsigned char* text, int64_t pts) {
  43 + adicionaPTS(pts);
  44 + notifyTranslator(text);
  45 +}
  46 +
  47 +bool ServiceWindowGenerationFromREC::isFinished(){
  48 + return finish;
  49 +}
  50 +
  51 +void ServiceWindowGenerationFromREC::notifyEnd(int sentences_size) {
  52 + DDPRINTF("Service REC recebeu: %d sentenças.\n", sentences_size);
  53 + setSizeOfSubtitles(sentences_size);
  54 +}
  55 +
36 56 void ServiceWindowGenerationFromREC::initialize() {
37 57  
38 58 rec->addListener(this);
... ... @@ -67,23 +87,10 @@ void ServiceWindowGenerationFromREC::initialize() {
67 87 this->Start();
68 88 }
69 89  
70   -void ServiceWindowGenerationFromREC::notifyTextRecognized(unsigned char* text, int64_t pts) {
71   - adicionaPTS(pts);
72   - notifyTranslator(text);
73   -}
74   -
75   -void ServiceWindowGenerationFromREC::notifyTranslator(unsigned char *text) {
76   - tradutor->traduz(text);
77   -}
78   -
79   -void ServiceWindowGenerationFromREC::notifyEnd(int sentences_size) {
80   - DDPRINTF("Service REC recebeu: %d sentenças.\n", sentences_size);
81   - setSizeOfSubtitles(sentences_size);
82   -}
83   -
84 90 void ServiceWindowGenerationFromREC::Run() {
85 91  
86   - while (!rec->isFinished()) {
87   - sleep(200000);
  92 + while (isRunning()) {
  93 + usleep(200000);
88 94 }
  95 + finish = true;
89 96 }
... ...
servico/src/serviceWindowGenerationFromSRT.cpp
... ... @@ -12,7 +12,7 @@ ServiceWindowGenerationFromSRT::ServiceWindowGenerationFromSRT(
12 12 setSubLanguage(sublanguage);
13 13 setServiceType(serviceType);
14 14 setUserId(id);
15   - this->finish = false;
  15 + finish = false;
16 16 DPRINTF("Done!\n");
17 17 }
18 18  
... ... @@ -22,7 +22,7 @@ ServiceWindowGenerationFromSRT::ServiceWindowGenerationFromSRT(char* path_srt, i
22 22 setTransparency(transparency);
23 23 setServiceType(serviceType);
24 24 setUserId(id);
25   - finish_srt = false;
  25 + finish = false;
26 26 DPRINTF("Done!\n");
27 27 }
28 28  
... ... @@ -32,29 +32,31 @@ ServiceWindowGenerationFromSRT::~ServiceWindowGenerationFromSRT() {
32 32 DDDPRINTF("Service SRT finalized!\n");
33 33 }
34 34  
35   -void ServiceWindowGenerationFromSRT::setPathSRT(char* path_srt) {
36   - this->path_srt = path_srt;
37   -}
  35 +void ServiceWindowGenerationFromSRT::notifyTranslator(unsigned char* subtitle) {
38 36  
39   -void ServiceWindowGenerationFromSRT::notifyEnd(int sub_size) {
40   - DDPRINTF("Service SRT recebeu: %d legendas.\n", sub_size);
41   - setSizeOfSubtitles(sub_size);
  37 + const char* constchar = (const char*) subtitle;
  38 + char* legenda_copy = new char[strlen(constchar)+1];
  39 + strcpy(legenda_copy, constchar);
  40 + tradutor->traduz((unsigned char*) legenda_copy);
  41 + free(legenda_copy);
42 42 }
43 43  
44   -
45   -void ServiceWindowGenerationFromSRT::notifySubtitle(unsigned char *legenda, int64_t pts){
  44 +void ServiceWindowGenerationFromSRT::notifySubtitle(unsigned char *subtitle, int64_t pts){
46 45 adicionaPTS(pts);
47   - notificaTradutor(legenda);
48   -
  46 + notifyTranslator(subtitle);
49 47 }
50 48  
51   -void ServiceWindowGenerationFromSRT::notificaTradutor(unsigned char* legenda) {
  49 +bool ServiceWindowGenerationFromSRT::isFinished(){
  50 + return finish;
  51 +}
52 52  
53   - const char* constchar = (const char*) legenda;
54   - char* legenda_copy = new char[strlen(constchar)+1];
55   - strcpy(legenda_copy, constchar);
56   - tradutor->traduz((unsigned char*) legenda_copy);
57   - free(legenda_copy);
  53 +void ServiceWindowGenerationFromSRT::notifyEnd(int sub_size) {
  54 + DDPRINTF("Service SRT recebeu: %d legendas.\n", sub_size);
  55 + setSizeOfSubtitles(sub_size);
  56 +}
  57 +
  58 +void ServiceWindowGenerationFromSRT::setPathSRT(char* path_srt) {
  59 + this->path_srt = path_srt;
58 60 }
59 61  
60 62 void ServiceWindowGenerationFromSRT::initialize() {
... ... @@ -62,29 +64,23 @@ void ServiceWindowGenerationFromSRT::initialize() {
62 64 DDPRINTF("Service SRT Initialize.\n");
63 65  
64 66 if(serviceType == 2){
65   -
66   - /*
67   - Este serviço utiliza o arquivo de vídeo (em formato TS) do usuário para
68   - capturar as informações referente ao relógio (PCR) para calcular as
69   - etiquetas de apresentação (PTS) dos sinais em Libras.
70   - */
  67 + /*Este serviço utiliza o arquivo de vídeo (em formato TS) do usuário para
  68 + capturar as informações referente ao relógio (PCR) para calcular as
  69 + etiquetas de apresentação (PTS) dos sinais em Libras.*/
71 70  
72 71 inputfile = new InputFile(this->path_input);
73 72 extratorSRT = new ExtratorSRT();
  73 + monitor_pcr_base = new MonitorPCR();
74 74  
75   - monitor_pcr_base = new MonitorPCR();
76   -
77   - /* [Temporário]: como o monitor do PCR não estava encontrando a extensão do
78   - vídeo, este está sendo analisado e infomado no trecho de código a seguir.
79   - */
80   - if (strstr(path_input, "ts") != NULL) {
81   - char* format_video = new char[3];
82   - strcpy(format_video, "ts");
83   - monitor_pcr_base->setFormatVideo(format_video);
84   - }
  75 + /* [Temporário]: como o monitor do PCR não estava encontrando a extensão do
  76 + vídeo, este está sendo analisado e infomado no trecho de código a seguir.*/
  77 + if (strstr(path_input, "ts") != NULL) {
  78 + char* format_video = new char[3];
  79 + strcpy(format_video, "ts");
  80 + monitor_pcr_base->setFormatVideo(format_video);
  81 + }
85 82  
86 83 monitor_pcr_base->addListenerPCRBase(extratorSRT);
87   -
88 84 inputfile->addListener(monitor_pcr_base);
89 85 extratorSRT->addListener(this);
90 86 extratorSRT->setFilePath((char*) path_srt);
... ... @@ -102,13 +98,9 @@ void ServiceWindowGenerationFromSRT::initialize() {
102 98 this->Start();
103 99  
104 100 } else{
105   -
106   - /**
107   - Este serviço utiliza apenas o arquivo de legendas (SRT) como entrada,
108   - portanto, não é preciso monitorar as informações do PCR a partir do
109   - objeto InputFile().
110   - */
111   -
  101 + /*Este serviço utiliza apenas o arquivo de legendas (SRT) como entrada,
  102 + portanto, não é preciso monitorar as informações do PCR a partir do
  103 + objeto InputFile().*/
112 104 extratorSRT = new ExtratorSRT();
113 105 monitor_pcr_base = new MonitorPCR();
114 106 monitor_pcr_base->addListenerPCRBase(extratorSRT);
... ... @@ -128,13 +120,9 @@ void ServiceWindowGenerationFromSRT::initialize() {
128 120  
129 121 }
130 122  
131   -bool ServiceWindowGenerationFromSRT::finished() {
132   - return finish_srt;
133   -}
134   -
135 123 void ServiceWindowGenerationFromSRT::Run() {
136 124 while (isRunning()) {
137 125 usleep(200000); //200ms
138 126 }
139   - finish_srt = true;
  127 + finish = true;
140 128 }
... ...
servico/src/serviceWindowGenerationFromText.cpp
... ... @@ -8,7 +8,7 @@ ServiceWindowGenerationFromText::ServiceWindowGenerationFromText (
8 8 setUserId(username);
9 9 setTransparency(transp);
10 10 setServiceType(serviceType);
11   - alive = true;
  11 + finish = false;
12 12 DPRINTF("Done!\n");
13 13 }
14 14  
... ... @@ -17,6 +17,19 @@ ServiceWindowGenerationFromText::~ServiceWindowGenerationFromText() {
17 17 DDDPRINTF("Service Text finished!\n");
18 18 }
19 19  
  20 +void ServiceWindowGenerationFromText::notifyLine(unsigned char* line) {
  21 + tradutor->traduz(line);
  22 +}
  23 +
  24 +void ServiceWindowGenerationFromText::notifyEnd(int line_size) {
  25 + DDPRINTF("Service TXT recebeu: %d linhas.\n", line_size);
  26 + setSizeOfSubtitles(line_size);
  27 +}
  28 +
  29 +bool ServiceWindowGenerationFromText::isFinished() {
  30 + return finish;
  31 +}
  32 +
20 33 void ServiceWindowGenerationFromText::initialize() {
21 34 DDPRINTF("Service Text Initialize.\n");
22 35  
... ... @@ -34,22 +47,9 @@ void ServiceWindowGenerationFromText::initialize() {
34 47 this->Start();
35 48 }
36 49  
37   -void ServiceWindowGenerationFromText::notifyEnd(int line_size) {
38   - DDPRINTF("Service TXT recebeu: %d linhas.\n", line_size);
39   - setSizeOfSubtitles(line_size);
40   -}
41   -
42   -void ServiceWindowGenerationFromText::notifyLine(unsigned char* line) {
43   - tradutor->traduz(line);
44   -}
45   -
46   -bool ServiceWindowGenerationFromText::isAlive() {
47   - return alive;
48   -}
49   -
50 50 void ServiceWindowGenerationFromText::Run() {
51 51 while (isRunning()) {
52 52 usleep(200000); //200ms
53 53 }
54   - alive = false;
  54 + finish = true;
55 55 }
... ...