1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        SubPicture.h
3 // Author:      Alex Thuering
4 // Created:	    24.02.2018
5 // Copyright:   (c) Alex Thuering
6 // Licence:     GPL
7 /////////////////////////////////////////////////////////////////////////////
8 
9 #ifndef SUB_STREAM_H
10 #define SUB_STREAM_H
11 
12 #include "DVDAction.h"
13 #include <vector>
14 
15 using namespace std;
16 
17 enum SubStreamMode {
18 	ssmNORMAL = 0,
19 	ssmWIDESCREEN,
20 	ssmLETTERBOX,
21 	ssmPANSCAN
22 };
23 
24 enum SubStreamContent {
25 	sscNORMAL = 0, sscLARGE, sscCHILDREN, sscNORMAL_CC, sscLARGE_CC, sscCHILDREN_CC, sscFORCED, sscDIRECTOR,
26 	sscLARGE_DIRECTOR, sscCHILDREN_DIRECTOR
27 };
28 
29 /**
30  * Stores information about subpicture stream
31  */
32 class SubStream {
33 public:
34 	/** Default constructor */
SubStream()35 	SubStream(): m_mode(ssmNORMAL), m_content(sscNORMAL) {}
36 	/** Constructor */
SubStream(wxString id,SubStreamMode mode)37 	SubStream(wxString id, SubStreamMode mode): m_id(id), m_mode(mode), m_content(sscNORMAL) {}
38 
39 	/** Sets id */
SetId(wxString id)40 	void SetId(wxString id) { m_id = id; }
41 	/** Returns id */
GetId()42 	wxString GetId() { return m_id; }
43 
44 	/** Sets mode */
SetMode(SubStreamMode mode)45 	void SetMode(SubStreamMode mode) { m_mode = mode; }
46 	/** Returns mode */
GetMode()47 	SubStreamMode GetMode() { return m_mode; }
48 
49 	/** Sets content type */
SetContent(SubStreamContent content)50 	void SetContent(SubStreamContent content) { m_content = content; }
51 	/** Returns content type */
GetContent()52 	SubStreamContent GetContent() { return m_content; }
53 
54 	wxSvgXmlNode* GetXML(DVDFileType type);
55 	bool PutXML(wxSvgXmlNode* node);
56 
57 private:
58 	wxString m_id;
59 	SubStreamMode m_mode;
60 	SubStreamContent m_content;
61 };
62 
63 #endif // SUB_STREAM_H
64