1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #ifndef NSVPLAY_SUBTITLES_H
- #define NSVPLAY_SUBTITLES_H
- #include "main.h"
- #include "../nsvbs.h"
- class SubsItem {
- public:
- SubsItem(unsigned int ptimestart, unsigned int ptimeend, const char *ptext) :
- timestart(ptimestart) , timeend(ptimeend) {
- text=_strdup(ptext);
- xPos=128;
- yPos=255;
- colorRed=colorGreen=colorBlue=0xff;
- extraDataSize=0;
- extraData=0;
- muxed_subtitle=0;
- fontSize=origFontSize=0;
- }
- ~SubsItem() {
- free((void*)text);
- if(extraDataSize) free((void *)extraData);
- }
- unsigned int timestart;
- unsigned int timeend;
- const char *text;
- unsigned char xPos, yPos;
- unsigned char colorRed, colorGreen, colorBlue;
- int extraDataSize;
- const void *extraData;
- int muxed_subtitle; //so we free it when we seek/display
- int fontSize;
- int origFontSize;
- };
- class Subtitles {
- public:
- Subtitles(const char *filename);
- SubsItem *getSubtitle(unsigned int time, unsigned int frame); // time in ms
- void addSubtitlePacket(SUBTITLE_INFO *sti);
- void setFontSizeModifier(int size) { m_font_size_mod=size; }
-
- private:
- void decodeSrtFile(char *text);
- unsigned int getTimeFromSrtText(const char *text);
- void decodeSubFile(char *text);
- ClassList<SubsItem> m_subs;
- int m_frame_based;
- int m_last_sub;
- int m_font_size_mod;
- };
- #endif
|