#include #include #include #include "inputFile.h" #include "ouvinteInput.h" InputFile::InputFile(char* path) { this->path = path; this->ouvintes = new list(); finished = false; DPRINTF("Done!\n"); } InputFile::~InputFile(){ ouvintes->clear(); delete ouvintes; DDDPRINTF("Input finalized!\n"); } void InputFile::initialize(){ ifstream filein(path, ifstream::binary); if (strstr(path, ".ts") != NULL) { if (filein.is_open()) { char buffer [MAX_SIZE_PACKET]; DPRINTF("[AGUARDE] Lendo arquivo...\n") while (!filein.eof()) { filein.read(buffer, MAX_SIZE_PACKET); unsigned char* packet = (unsigned char*) buffer; notificaOuvintes(packet); } printf("\n"); filein.close(); //finished = true; } else { finished = true; Util::Logger::Instance()->writeLog((char*) "[ERRO: inputFile.cpp] Arquivo de vídeo não encontrado."); throw InputException("Falha ao abrir o arquivo de vídeo! Verifique se o mesmo existe."); } } finished = true; } bool InputFile::isFinished(){ return this->finished; } void InputFile::registraOuvinte(OuvinteInput* ouvinte){ this->ouvintes->push_back(ouvinte); } void InputFile::removeOuvinte(OuvinteInput* ouvinte) { this->ouvintes->remove(ouvinte); } void InputFile::notificaOuvintes(unsigned char* pacote){ for(list::iterator it = this->ouvintes->begin(); it != this->ouvintes->end(); it++){ (*it)->chegouInput(pacote); } }