serviceWindowGeneration.h 2.45 KB
/**
 * \file serviceWindowGeneration.h
 */

#ifndef SERVICEWINDOWGENERATION_H
#define SERVICEWINDOWGENERATION_H

#include <vector>
#include <iostream>
#include <stdint.h>
#include <string>
#include <sstream>
#include <locale>
#include "jthread.h"
#include "logging.h"
#include "mixer.h"
#include "renderer.h"
#include "listenerRenderer.h"
#include "listenerTradutor.h"
#include "tradutorPortGlosa.h"
#include "serviceException.h"
#include <json/json.h>	
#include <lavidlib/base/RuntimeException.h>

#define DEVELOPER 1
#define PRODUCTION 2
#define TESTER 3
#define PATH_DEVEL_CONTENTS "vlibras_user/vlibras-contents/videos"
#define PATH_DEVEL_UPLOADS "vlibras_user/vlibras-contents/uploads"
#define PATH_TESTER_CONTENTS "vlibras_user/.vlibras-config/test/videos"
#define PATH_TESTER_UPLOADS "vlibras_user/.vlibras-config/test/uploads"
#define PATH_VBOX_UPLOADS "vlibras_user/.vlibras-config/uploads"
#define PATH_CONF_FILE "vlibras_user/.vlibras-config/params.json"
#define PATH_TESTER_FILE "/home/user/.vlibras-config/test/tester.json"
#define MAX_SIZE_PATH 256

using namespace Tradutor;
using namespace jthread;
using namespace std;
using namespace lavidlib;
using namespace util;

/** \brief A classe base para todos os serviços.
 *
 * \headerfile servico/src/include/serviceWindowGeneration.h
 */
class ServiceWindowGeneration {

protected:
	TradutorPortGlosa* tradutor;
	Renderer* renderer;
	Mixer* mixer;

	Json::Value root;
	Json::Reader reader;
	vector<int64_t>* vetor_pts;

	bool finish;
	bool running;
	bool parsingSuccessful;

	char* path_input;
    char* path_client;
    char* path_libras;
    char* path_contents;
    char* path_uploads;
    char* user_id;

	int size;
	int position;
	int transparency;
	int sub_language; 
	int service_type;
	int exec_mode;
	int numero_legendas;
	int legendas_enviadas;

	/** Seta o número de legendas. 
	 *
	 * \param sub_size A quantidade de legendas.
	 */
	virtual void setSizeOfSubtitles(int sub_size) = 0;

	/** Define o path dos arquivos de saída. */
	virtual void setPathContents() = 0;
    
public:
	/** Define o path do vídeo de LIBRAS. */
	virtual void setPathLibras() = 0;

	/** Inicializa o serviço. */
	virtual void initialize() = 0;

	/** Indica o fim do processo do serviço.
	*
	* \return O status do processo.
	*/
	virtual bool isFinished() = 0;

	/** Envia para a tradução a sentença obtida.
	 *
	 * \param text A sentença obtida.
	 */
	virtual void notifyTranslator(unsigned char* text) = 0;
};

#endif /* SERVICEWINDOWGENERATION_H */