Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Subtitles/RTS.h')
-rw-r--r--src/Subtitles/RTS.h290
1 files changed, 145 insertions, 145 deletions
diff --git a/src/Subtitles/RTS.h b/src/Subtitles/RTS.h
index 3c943b42c..8787f667d 100644
--- a/src/Subtitles/RTS.h
+++ b/src/Subtitles/RTS.h
@@ -30,121 +30,121 @@
class CMyFont : public CFont
{
public:
- int m_ascent, m_descent;
+ int m_ascent, m_descent;
- CMyFont(STSStyle& style);
+ CMyFont(STSStyle& style);
};
class CPolygon;
class CWord : public Rasterizer
{
- bool m_fDrawn;
- CPoint m_p;
+ bool m_fDrawn;
+ CPoint m_p;
- void Transform(CPoint org);
+ void Transform(CPoint org);
- void Transform_C( CPoint &org );
- void Transform_SSE2( CPoint &org );
- bool CreateOpaqueBox();
+ void Transform_C(CPoint& org);
+ void Transform_SSE2(CPoint& org);
+ bool CreateOpaqueBox();
protected:
- CStringW m_str;
+ CStringW m_str;
- virtual bool CreatePath() = 0;
+ virtual bool CreatePath() = 0;
public:
- bool m_fWhiteSpaceChar, m_fLineBreak;
+ bool m_fWhiteSpaceChar, m_fLineBreak;
- STSStyle m_style;
+ STSStyle m_style;
- CPolygon* m_pOpaqueBox;
+ CPolygon* m_pOpaqueBox;
- int m_ktype, m_kstart, m_kend;
+ int m_ktype, m_kstart, m_kend;
- int m_width, m_ascent, m_descent;
+ int m_width, m_ascent, m_descent;
- CWord(STSStyle& style, CStringW str, int ktype, int kstart, int kend); // str[0] = 0 -> m_fLineBreak = true (in this case we only need and use the height of m_font from the whole class)
- virtual ~CWord();
+ CWord(STSStyle& style, CStringW str, int ktype, int kstart, int kend); // str[0] = 0 -> m_fLineBreak = true (in this case we only need and use the height of m_font from the whole class)
+ virtual ~CWord();
- virtual CWord* Copy() = 0;
- virtual bool Append(CWord* w);
+ virtual CWord* Copy() = 0;
+ virtual bool Append(CWord* w);
- void Paint(CPoint p, CPoint org);
+ void Paint(CPoint p, CPoint org);
};
class CText : public CWord
{
protected:
- virtual bool CreatePath();
+ virtual bool CreatePath();
public:
- CText(STSStyle& style, CStringW str, int ktype, int kstart, int kend);
+ CText(STSStyle& style, CStringW str, int ktype, int kstart, int kend);
- virtual CWord* Copy();
- virtual bool Append(CWord* w);
+ virtual CWord* Copy();
+ virtual bool Append(CWord* w);
};
class CPolygon : public CWord
{
- bool GetLONG(CStringW& str, LONG& ret);
- bool GetPOINT(CStringW& str, POINT& ret);
- bool ParseStr();
+ bool GetLONG(CStringW& str, LONG& ret);
+ bool GetPOINT(CStringW& str, POINT& ret);
+ bool ParseStr();
protected:
- double m_scalex, m_scaley;
- int m_baseline;
+ double m_scalex, m_scaley;
+ int m_baseline;
- CAtlArray<BYTE> m_pathTypesOrg;
- CAtlArray<CPoint> m_pathPointsOrg;
+ CAtlArray<BYTE> m_pathTypesOrg;
+ CAtlArray<CPoint> m_pathPointsOrg;
- virtual bool CreatePath();
+ virtual bool CreatePath();
public:
- CPolygon(STSStyle& style, CStringW str, int ktype, int kstart, int kend, double scalex, double scaley, int baseline);
- CPolygon(CPolygon&); // can't use a const reference because we need to use CAtlArray::Copy which expects a non-const reference
- virtual ~CPolygon();
+ CPolygon(STSStyle& style, CStringW str, int ktype, int kstart, int kend, double scalex, double scaley, int baseline);
+ CPolygon(CPolygon&); // can't use a const reference because we need to use CAtlArray::Copy which expects a non-const reference
+ virtual ~CPolygon();
- virtual CWord* Copy();
- virtual bool Append(CWord* w);
+ virtual CWord* Copy();
+ virtual bool Append(CWord* w);
};
class CClipper : public CPolygon
{
private:
- CWord* Copy();
- virtual bool Append(CWord* w);
+ CWord* Copy();
+ virtual bool Append(CWord* w);
public:
- CClipper(CStringW str, CSize size, double scalex, double scaley, bool inverse, CPoint cpOffset);
- virtual ~CClipper();
+ CClipper(CStringW str, CSize size, double scalex, double scaley, bool inverse, CPoint cpOffset);
+ virtual ~CClipper();
- CSize m_size;
- bool m_inverse;
- CPoint m_cpOffset;
- BYTE* m_pAlphaMask;
+ CSize m_size;
+ bool m_inverse;
+ CPoint m_cpOffset;
+ BYTE* m_pAlphaMask;
};
class CLine : public CAtlList<CWord*>
{
public:
- int m_width, m_ascent, m_descent, m_borderX, m_borderY;
+ int m_width, m_ascent, m_descent, m_borderX, m_borderY;
- virtual ~CLine();
+ virtual ~CLine();
- void Compact();
+ void Compact();
- CRect PaintShadow(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
- CRect PaintOutline(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
- CRect PaintBody(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
+ CRect PaintShadow(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
+ CRect PaintOutline(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
+ CRect PaintBody(SubPicDesc& spd, CRect& clipRect, BYTE* pAlphaMask, CPoint p, CPoint org, int time, int alpha);
};
enum eftype {
- EF_MOVE = 0, // {\move(x1=param[0], y1=param[1], x2=param[2], y2=param[3], t1=t[0], t2=t[1])} or {\pos(x=param[0], y=param[1])}
- EF_ORG, // {\org(x=param[0], y=param[1])}
- EF_FADE, // {\fade(a1=param[0], a2=param[1], a3=param[2], t1=t[0], t2=t[1], t3=t[2], t4=t[3])} or {\fad(t1=t[1], t2=t[2])
- EF_BANNER, // Banner;delay=param[0][;lefttoright=param[1];fadeawaywidth=param[2]]
- EF_SCROLL, // Scroll up/down=param[3];top=param[0];bottom=param[1];delay=param[2][;fadeawayheight=param[4]]
+ EF_MOVE = 0, // {\move(x1=param[0], y1=param[1], x2=param[2], y2=param[3], t1=t[0], t2=t[1])} or {\pos(x=param[0], y=param[1])}
+ EF_ORG, // {\org(x=param[0], y=param[1])}
+ EF_FADE, // {\fade(a1=param[0], a2=param[1], a3=param[2], t1=t[0], t2=t[1], t3=t[2], t4=t[3])} or {\fad(t1=t[1], t2=t[2])
+ EF_BANNER, // Banner;delay=param[0][;lefttoright=param[1];fadeawaywidth=param[2]]
+ EF_SCROLL, // Scroll up/down=param[3];top=param[0];bottom=param[1];delay=param[2][;fadeawayheight=param[4]]
};
#define EF_NUMBEROFEFFECTS 5
@@ -152,134 +152,134 @@ enum eftype {
class Effect
{
public:
- enum eftype type;
- int param[9];
- int t[4];
+ enum eftype type;
+ int param[9];
+ int t[4];
};
class CSubtitle : public CAtlList<CLine*>
{
- int GetFullWidth();
- int GetFullLineWidth(POSITION pos);
- int GetWrapWidth(POSITION pos, int maxwidth);
- CLine* GetNextLine(POSITION& pos, int maxwidth);
+ int GetFullWidth();
+ int GetFullLineWidth(POSITION pos);
+ int GetWrapWidth(POSITION pos, int maxwidth);
+ CLine* GetNextLine(POSITION& pos, int maxwidth);
public:
- int m_scrAlignment;
- int m_wrapStyle;
- bool m_fAnimated;
- int m_relativeTo;
+ int m_scrAlignment;
+ int m_wrapStyle;
+ bool m_fAnimated;
+ int m_relativeTo;
- Effect* m_effects[EF_NUMBEROFEFFECTS];
+ Effect* m_effects[EF_NUMBEROFEFFECTS];
- CAtlList<CWord*> m_words;
+ CAtlList<CWord*> m_words;
- CClipper* m_pClipper;
+ CClipper* m_pClipper;
- CRect m_rect, m_clip;
- int m_topborder, m_bottomborder;
- bool m_clipInverse;
+ CRect m_rect, m_clip;
+ int m_topborder, m_bottomborder;
+ bool m_clipInverse;
- double m_scalex, m_scaley;
+ double m_scalex, m_scaley;
public:
- CSubtitle();
- virtual ~CSubtitle();
- virtual void Empty();
- void EmptyEffects();
+ CSubtitle();
+ virtual ~CSubtitle();
+ virtual void Empty();
+ void EmptyEffects();
- void CreateClippers(CSize size);
+ void CreateClippers(CSize size);
- void MakeLines(CSize size, CRect marginRect);
+ void MakeLines(CSize size, CRect marginRect);
};
class CScreenLayoutAllocator
{
- typedef struct {
- CRect r;
- int segment, entry, layer;
- } SubRect;
+ typedef struct {
+ CRect r;
+ int segment, entry, layer;
+ } SubRect;
- CAtlList<SubRect> m_subrects;
+ CAtlList<SubRect> m_subrects;
public:
- /*virtual*/
- void Empty();
+ /*virtual*/
+ void Empty();
- void AdvanceToSegment(int segment, const CAtlArray<int>& sa);
- CRect AllocRect(CSubtitle* s, int segment, int entry, int layer, int collisions);
+ void AdvanceToSegment(int segment, const CAtlArray<int>& sa);
+ CRect AllocRect(CSubtitle* s, int segment, int entry, int layer, int collisions);
};
class __declspec(uuid("537DCACA-2812-4a4f-B2C6-1A34C17ADEB0"))
- CRenderedTextSubtitle : public CSimpleTextSubtitle, public CSubPicProviderImpl, public ISubStream
+ CRenderedTextSubtitle : public CSimpleTextSubtitle, public CSubPicProviderImpl, public ISubStream
{
- CAtlMap<int, CSubtitle*> m_subtitleCache;
+ CAtlMap<int, CSubtitle*> m_subtitleCache;
- CScreenLayoutAllocator m_sla;
+ CScreenLayoutAllocator m_sla;
- CSize m_size;
- CRect m_vidrect;
+ CSize m_size;
+ CRect m_vidrect;
- // temp variables, used when parsing the script
- int m_time, m_delay;
- int m_animStart, m_animEnd;
- double m_animAccel;
- int m_ktype, m_kstart, m_kend;
- int m_nPolygon;
- int m_polygonBaselineOffset;
- STSStyle *m_pStyleOverride; // the app can decide to use this style instead of a built-in one
- bool m_doOverrideStyle;
+ // temp variables, used when parsing the script
+ int m_time, m_delay;
+ int m_animStart, m_animEnd;
+ double m_animAccel;
+ int m_ktype, m_kstart, m_kend;
+ int m_nPolygon;
+ int m_polygonBaselineOffset;
+ STSStyle* m_pStyleOverride; // the app can decide to use this style instead of a built-in one
+ bool m_doOverrideStyle;
- void ParseEffect(CSubtitle* sub, CString str);
- void ParseString(CSubtitle* sub, CStringW str, STSStyle& style);
- void ParsePolygon(CSubtitle* sub, CStringW str, STSStyle& style);
- bool ParseSSATag(CSubtitle* sub, CStringW str, STSStyle& style, STSStyle& org, bool fAnimate = false);
- bool ParseHtmlTag(CSubtitle* sub, CStringW str, STSStyle& style, STSStyle& org);
+ void ParseEffect(CSubtitle* sub, CString str);
+ void ParseString(CSubtitle* sub, CStringW str, STSStyle& style);
+ void ParsePolygon(CSubtitle* sub, CStringW str, STSStyle& style);
+ bool ParseSSATag(CSubtitle* sub, CStringW str, STSStyle& style, STSStyle& org, bool fAnimate = false);
+ bool ParseHtmlTag(CSubtitle* sub, CStringW str, STSStyle& style, STSStyle& org);
- double CalcAnimation(double dst, double src, bool fAnimate);
+ double CalcAnimation(double dst, double src, bool fAnimate);
- CSubtitle* GetSubtitle(int entry);
+ CSubtitle* GetSubtitle(int entry);
protected:
- virtual void OnChanged();
+ virtual void OnChanged();
public:
- CRenderedTextSubtitle(CCritSec* pLock, STSStyle *styleOverride = NULL, bool doOverride = false);
- virtual ~CRenderedTextSubtitle();
+ CRenderedTextSubtitle(CCritSec* pLock, STSStyle* styleOverride = NULL, bool doOverride = false);
+ virtual ~CRenderedTextSubtitle();
- virtual void Copy(CSimpleTextSubtitle& sts);
- virtual void Empty();
+ virtual void Copy(CSimpleTextSubtitle& sts);
+ virtual void Empty();
- // call to signal this RTS to ignore any of the styles and apply the given override style
- void SetOverride(bool doOverride = true, STSStyle *styleOverride = NULL) {
- m_doOverrideStyle = doOverride;
- if (styleOverride != NULL) {
- m_pStyleOverride = styleOverride;
- }
- }
+ // call to signal this RTS to ignore any of the styles and apply the given override style
+ void SetOverride(bool doOverride = true, STSStyle* styleOverride = NULL) {
+ m_doOverrideStyle = doOverride;
+ if (styleOverride != NULL) {
+ m_pStyleOverride = styleOverride;
+ }
+ }
public:
- bool Init(CSize size, CRect vidrect); // will call Deinit()
- void Deinit();
-
- DECLARE_IUNKNOWN
- STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
-
- // ISubPicProvider
- STDMETHODIMP_(POSITION) GetStartPosition(REFERENCE_TIME rt, double fps);
- STDMETHODIMP_(POSITION) GetNext(POSITION pos);
- STDMETHODIMP_(REFERENCE_TIME) GetStart(POSITION pos, double fps);
- STDMETHODIMP_(REFERENCE_TIME) GetStop(POSITION pos, double fps);
- STDMETHODIMP_(bool) IsAnimated(POSITION pos);
- STDMETHODIMP Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, RECT& bbox);
-
- // IPersist
- STDMETHODIMP GetClassID(CLSID* pClassID);
-
- // ISubStream
- STDMETHODIMP_(int) GetStreamCount();
- STDMETHODIMP GetStreamInfo(int i, WCHAR** ppName, LCID* pLCID);
- STDMETHODIMP_(int) GetStream();
- STDMETHODIMP SetStream(int iStream);
- STDMETHODIMP Reload();
+ bool Init(CSize size, CRect vidrect); // will call Deinit()
+ void Deinit();
+
+ DECLARE_IUNKNOWN
+ STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
+
+ // ISubPicProvider
+ STDMETHODIMP_(POSITION) GetStartPosition(REFERENCE_TIME rt, double fps);
+ STDMETHODIMP_(POSITION) GetNext(POSITION pos);
+ STDMETHODIMP_(REFERENCE_TIME) GetStart(POSITION pos, double fps);
+ STDMETHODIMP_(REFERENCE_TIME) GetStop(POSITION pos, double fps);
+ STDMETHODIMP_(bool) IsAnimated(POSITION pos);
+ STDMETHODIMP Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, RECT& bbox);
+
+ // IPersist
+ STDMETHODIMP GetClassID(CLSID* pClassID);
+
+ // ISubStream
+ STDMETHODIMP_(int) GetStreamCount();
+ STDMETHODIMP GetStreamInfo(int i, WCHAR** ppName, LCID* pLCID);
+ STDMETHODIMP_(int) GetStream();
+ STDMETHODIMP SetStream(int iStream);
+ STDMETHODIMP Reload();
};