extratorSRT.h 1.42 KB
/* 
 * File:   extratorSRT.h
 * Author: leonardo
 *
 * Created on 17 de Fevereiro de 2012, 17:51
 */
#ifndef EXTRATORSRT_H
#define	EXTRATORSRT_H

#include <list>
#include <string.h>
#include <stdlib.h>
#include <fstream> 
#include <stdio.h>
#include "jthread.h"
#include "dprintf.h"
#include "logger.h"
#include "extrator.h"
#include "subtitle.h"
#include "listenerSRT.h"
#include "extratorException.h"

#define SIZE_CSCAPE 1
#define TARGET_TIME "-->"
#define INPUT_SRT "vlibras_user/inputSRT.srt"
//#define MAX_LINE 1024

using namespace jthread;
using namespace std;
using namespace sndesc;

/** Classe que modela ExtratorSRT.
* Instâncias do tipo ExtratorSRT são modelados
* a partir desta classe, esses objetos são
* responsáveis por extrair o conteudo de arquivos
* com a extensão SubRipText(SRT).
*/
class ExtratorSRT: public Extrator, public Thread {
    
public:
    ExtratorSRT();
    ~ExtratorSRT();
    
    void addListener(ListenerSRT* listener);
    void notifyListeners(unsigned char* subtitle, int64_t pts);
    void notifyEndExtraction(int size);

    void setFilePath(char* path);
    void initialize();
    bool isFinished();
    
    Subtitle* next();
    bool hasNextSubtitle();
    void Run();
    
private:
    list<ListenerSRT*> *listeners;

    Subtitle *subtitle; 
    int64_t seek_pos;
    bool hasNextSub;

    uint64_t calcula_pts(double msec);
    int64_t str_to_time(std::string str_time);  
};

#endif	/* EXTRATORSRT_H */