mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-19 05:35:46 -04:00
Initial community commit
This commit is contained in:
62
Src/nsv/nsvplay/subtitles.h
Normal file
62
Src/nsv/nsvplay/subtitles.h
Normal file
@ -0,0 +1,62 @@
|
||||
#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
|
Reference in New Issue
Block a user