extratorSRT.h 1.12 KB
/* 
 * File:   extratorSRT.h
 * Author: leonardo
 *
 * Created on 17 de Fevereiro de 2012, 17:51
 */

#ifndef EXTRATORSRT_H
#define	EXTRATORSRT_H

#include "listenerSRT.h"
#include "reader_srt.h"
#include "subtitle.h"
#include "listenerMonitorPCRBase.h"
#include "jthread.h"
#include "dprintf.h"
#include "logger.h"
#include <lavidlib/io/FileIO.h>
#include "extratorSRT_exception.h"


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

class ExtratorSRT: public Thread, public ListenerMonitorPCRBase {
    
public:
    
    ExtratorSRT();
    ~ExtratorSRT();
    
    void addListener(ListenerSRT* listener);
    void notifyListeners(unsigned char* subtitle, int64_t pts);
    void notifyEndExtraction(int sub_size);
    
    void setFilePath(char* path);
    bool isFinished();
    void initialize();
    void Run();
    
    void notifyPCRBase(uint64_t pcrbase);
    
private:
    
    list<ListenerSRT*> *listeners;
    char* filepath;
    bool finish;
    uint64_t pcr_base;
    bool hasPCRBase;
    ReaderSRT * reader;
    Subtitle * subtitle;
    
    uint64_t calcula_pts(double msec);
    
};

#endif	/* EXTRATORSRT_H */