renderer.h 1.34 KB
#ifndef RENDERER_H
#define RENDERER_H

#include "jthread.h"
#include "logging.h"
#include "string.h"
#include <string>
#include <list>
#include <sstream>
#include <iostream>
#include <unistd.h>
#include <stdint.h>
#include "listenerRenderer.h"
#include <lavidlib/net/StreamSocket.h>
#include <lavidlib/net/InetAddress.h>
#include <lavidlib/base/RuntimeException.h>
#include <lavidlib/net/UnknownHostException.h>
#include <lavidlib/net/SocketException.h>

#define PATH_RENDERER "vlibras_user/unityVideo/"
#define PATH_SCREENS "vlibras_user/.config/unity3d/LAViD/VLibrasPlayer/"
#define END_FLAG "FINALIZE"
#define HOST "127.0.0.1"
#define PORTNO 5555

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

class Renderer : public Thread {
public:
	Renderer(char* videoPath, char* user_id);
	~Renderer();

	bool isSending();
	void receiveGlosa(std::string glosa, int64_t pts);
	void addListener(ListenerRenderer* listener);
	void finalize();
	void Run();
	
private:
	StreamSocket* core_socket;
	list<ListenerRenderer*> * listeners;

	bool running;
	int count_task;
	int glosa_processed;

	char* folder_id;
	char* path_video;
	string glosa_copy;
	
	void render();
	void sendGlosa();
	void notifyListeners();
	void connectToUnity();
	void serverInitialize();
	void waitScreenShots();
	void cleanFiles();
};

#endif /* RENDERER_H */