core_plugin.h 3.47 KB
//*****************************************************************
/*
	VLibras: Automatic contents translator from Portuguese to LIBRAS

	Copyright (c) 2015 Gustavo Sobral, Erickson Silva, Leonardo Araújo
	VLibras-Core group at LAViD, Federal University of Paraiba
*/
//*****************************************************************

/**
 * \file corePlugin.hpp
 * \author Gustavo Sobral, Leonardo Araújo
 * \date Janeiro 2015
 */

#ifndef COREPLUGIN_H_
#define COREPLUGIN_H_

#include <string>
#include <sstream>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <lavidlib/base/RuntimeException.h>
#include <curl/curl.h>

// install libjson
// sudo apt-get install libjson0 libjson0-dev

#include "py_tradutor.h"
#include "property.h"

#define SCRIPT_UPDATE_VLIBRAS "gksudo -m \"<b>Para continuar, você precisa se autenticar.</b>\" \"gnome-terminal --hide-menubar -x bash -c '/./opt/vlibras_desktop/script/update_vlibras.sh;'\""
#define SCRIPT_UPDATE_DICT "gksudo -m \"<b>Para continuar, você precisa se autenticar.</b>\" \"gnome-terminal --hide-menubar -x bash -c '/./opt/vlibras_desktop/script/update_dict.sh;'\""
#define SCRIPT_INSTALL_DICT "gksudo -m \"<b>Para continuar, você precisa se autenticar.</b>\" \"gnome-terminal --hide-menubar -x bash -c '/./opt/vlibras_desktop/script/dict_install.sh;'\""


// TODO
#define FILEPATH_CONFIG "config/vlibras.conf"

// TODO
#define ENDPOINT_UPDATE_ID "endpoint_update"

// TODO
#define DIC_PACKAGE "dicionario-vlibras"

// TODO
#define APP_PACKAGE "vlibras-desktop"

#define MAX_BUFFER_SELECTION 1024
#define REPLACE_CHARACTERS "\r\n"

#ifdef __cplusplus
extern "C" {
#endif

	//PyTradutor *tradutor;
	//int app_current_version, dict_current_version;

	/** \brief Inicializa o ambiente core
	 *
	 * Inicia o ambiente necessário para execução das
	 * funcionalidades do VLibras core, instanciada como
	 * lib na aplicação vlibrasPlayer gerada pelo Unity.
	 */
	int coreInitialize();

	/** \brief Executa a funcão core
	 *
	 * Pega o conteúdo presente no buffer do sistema (pasteboard)
	 * e aplica sobre a tradução (Português -> Glosa) do tradutor. 
	 * \return Ponteiro para char com a glosa em lowercase resultante
	 *         da tradução do coteúdo presente no buffer (pasteboard)
	 */
	const char* coreExecute();
	
	/** \brief Finaliza o ambiente core
	 *
	 * Finaliza o ambiente montado para execução
	 * das funcionalidades do core na aplicação.
	 */
	int coreFinalize();


	/** \brief ?
	 *	 
	 * \return ?
	 */
    int coreUpdateInstall_player();
    

    /** \brief ?
	 *  
	 * \return ?
	 */
    int coreUpdateInstall_dict();


    /** \brief ?
	 * 
	 * \return ?
	 */
    int coreUpdateCheck();


    /** \brief ?
	 * 
	 * \return ?
	 */
	char * get_text_selection();


	/** \brief ?
	 * 
	 * \return ?
	 */
	void remove_special_chars(std::string *_word, std::string _chars, char* new_char);


	/** \brief ?
	 * 
	 * \return ?
	 */
	static size_t writeDataCallback(
		char *contents, size_t size, size_t nmemb, std::string *writer_data);


	/** \brief ?
	 * 
	 * \return ?
	 */
	std::string request_current_versions();


	/** \brief ?
	 * 
	 * \return ?
	 */
	int get_version_from_json(std::string json_message, std::string _key);


	/** \brief ?
	 * 
	 * \return ?
	 */
	int get_installed_version_deb_package(std::string _package_id);


	/** \brief ?
	 * 
	 * \return ?
	 */
	int get_version_from_string(std::string json_message, std::string _key);


#ifdef __cplusplus
}
#endif

#endif // COREPLUGIN_H_