argParser.h
3.75 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
/**
* \file argParser.h
*
* \author Wesnydy Lima Ribeiro <wesnydy@lavid.ufpb.br>
* \date 2015
*/
#ifndef ARG_PARSER_H
#define ARG_PARSER_H
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#include "logging.h"
#include <lavidlib/base/RuntimeException.h>
#define MAX_SIZE_PATH 256
using namespace std;
using namespace util;
/** \brief Analizador de argumentos de linha de comando.
*
* \headerfile util/src/include/argParser.h
*/
class ArgParser {
public:
/** Construtor */
ArgParser();
/** Destrutor */
~ArgParser();
/** Analiza os argumentos da linha de comando.
*
* \param argv Os argumentos.
* \param arc O número de argumentos.
* \exception RuntimeException Se forem encontrados argumentos inválidos ou na falta de argumentos.
*/
void readArgs(char** argv, int argc);
/** Retorna o serviço requisitado.
*
* \return O serviço.
*/
int getService();
/** Retorna a linguagem do arquivo de entrada.
*
* \return A linguagem do arquivo.
*/
int getLanguage();
/** Retorna a posição do vídeo de LIBRAS.
*
* \return A posição do vídeo.
*/
int getPosition();
/** Retorna o tamanho do vídeo de LIBRAS.
*
* \return O tamanho do vídeo.
*/
int getSize();
/** Retorna a transparência do plano de fundo.
*
* \return O background do vídeo.
*/
int getBackground();
/** Retorna o modo de execução.
*
* \return O modo de execução.
*/
int getMode();
/** Retorna opções extras ativadas.
*
* \return A opção extra.
*/
int getOption();
/** Retorna o path arquivo de entrada.
*
* \return O path do arquivo.
*/
string getInput();
/** Retorna o path arquivo de legendas.
*
* \return O path do arquivo de legendas.
*/
string getInputSRT();
/** Retorna a identificação do cliente.
*
* \return O ID do cliente.
*/
string getId();
/** Retorna o nível de log selecionado.
*
* \return O nível do log.
*/
util::logLevel getLog();
private:
enum Services { _VIDEO_WITH_SRT = 1, _REC_VIDEO, _TEXT, _ONLY_SRT, _REC_AUDIO, _WITHOUT_MIXER, _TESTER , _HELP};
enum Languages { _PORTUGUESE = 1, _GLOSA };
enum Positions { _TOP_LEFT = 1, _TOP_RIGHT, _BOTTOM_RIGHT, _BOTTOM_LEFT };
enum Resolution { _SMALL = 1, _MEDIUM, _LARGE };
enum Background { _OPAQUE, _TRANSPARENT };
enum Options { _NO_MIXER = 1 };
enum Mode { _DEVEL = 1 , _PROD };
struct globalArgs_t {
Services service;
Languages language;
Positions position;
Resolution size;
Background back;
Options mixer;
Mode mode;
string input;
string input_srt;
string id;
util::logLevel l_level;
}globalArgs;
/** Exibe erros ocorridos durante a analise dos argumentos.
*
* \param option A mensagem de erro.
*/
void returnErr(const string& option);
/** Retorna a opção de linguagem a partir de uma string.
*
* \return A linguagem do arquivo.
*/
Languages languageFromString(const string& language);
/** Retorna a opção de posição a partir de uma string.
*
* \return A posição do vídeo.
*/
Positions positionFromString(const string& position);
/** Retorna a opção de resolução a partir de uma string.
*
* \return A resolução do vídeo.
*/
Resolution resolutionFromString(const string& resolution);
/** Retorna a opção de background a partir de uma string.
*
* \return O background do vídeo.
*/
Background backgroundFromString(const string& backg);
/** Retorna a opção do modo de execução a partir de uma string.
*
* \return O modo de execução.
*/
Mode executionModeFromString(const string& mode);
/** Retorna o nível de log selecionado.
*
* \return O nível de log.
*/
util::logLevel logFromString(const string& level);
};
#endif /* ARG_PARSER_H */