serviceWindowGenerationFromSRT.h
4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
* \file serviceWindowGenerationFromSRT.h
*/
#ifndef SERVICEWINDOWGENERATIONFROMSRT_H
#define SERVICEWINDOWGENERATIONFROMSRT_H
#include "listenerSRT.h"
#include "extratorFactory.h"
#include "serviceWindowGeneration.h"
#define SERVICE_TYPE_SRT 1
#define SERVICE_TYPE_SRT_ONLY 4
/** \brief Classe que implementa o serviço de extração de legendas.
*
* \headerfile servico/src/include/serviceWindowGenerationFromSRT.h
*/
class ServiceWindowGenerationFromSRT : public ServiceWindowGeneration, public ListenerSRT, public ListenerTradutor, public ListenerRenderer, public Thread {
private:
ExtratorFactory* extrator_factory;
ExtratorSRT* extratorSRT;
char* path_srt;
/** Adiciona a etiqueta de tempo.
*
* Cada sentença conterá sua respectiva de tempo.
* \param pts A etiqueta de tempo.
*/
void addPTS(int64_t pts);
/** Seta o número de legendas.
*
* \param A quantidade de legendas.
* \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 do serviço de vídeo com legendas.
*
* \param pathVideo Path do vídeo de entrada.
* \param pathSRT Path do arquivo de legendas.
* \param sublanguage Linguagem das legendas do arquivo.
* \param pos Posição do vídeo de LIBRAS em relação ao vídeo original.
* \param size Tamanho do vídeo de LIBRAS.
* \param transp Transparência do plano de fundo do vídeo.
* \param id Identificação do cliente.
* \param mode Modo de execução.
* \param serviceType Tipo do serviço.
*/
ServiceWindowGenerationFromSRT(char* pathVideo, char* pathSRT, int sublanguage, int pos,
int size, int transp, char* id, int mode, int serviceType);
/** Construtor do serviço de legendas.
*
* \param pathSRT Path do arquivo de legendas.
* \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.
* \param serviceType Tipo do serviço.
*/
ServiceWindowGenerationFromSRT(char* pathSRT, int sublanguage, int transparency, char* id, int mode, int serviceType);
/** Destrutor */
~ServiceWindowGenerationFromSRT();
/** Notifica novas legendas extraídas.
*
* \param subtitle A legenda extraída.
* \param pts A etiqueta de tempo da legenda.
*/
void notifySubtitle(unsigned char* subtitle, int64_t pts);
/** Recebe a notificação do fim da renderização do vídeo */
void notifyEndOfRenderization();
/** Recebe a notificação do fim da tradução da legenda.
*
* \param glosa A legenda traduzida.
*/
void notifyTranslation(char* glosas);
/** Envia para a tradução a legenda obtida.
*
* \param text A legenda 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 de legendas.
*
* \param sub_size O número de legendas extraídas.
*/
void notifyEnd(int sub_size);
/** Inicia o serviço de extração de legendas.
*
* \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 /* SERVICEWINDOWGENERATIONFROMSRT_H_ */