13 #include "cores/MenuType.h" 14 #include "filesystem/IFileTypes.h" 15 #include "utils/BitstreamStats.h" 16 #include "utils/Geometry.h" 23 DVDSTREAM_TYPE_NONE = -1,
24 DVDSTREAM_TYPE_FILE = 1,
25 DVDSTREAM_TYPE_DVD = 2,
26 DVDSTREAM_TYPE_HTTP = 3,
27 DVDSTREAM_TYPE_MEMORY = 4,
28 DVDSTREAM_TYPE_FFMPEG = 5,
29 DVDSTREAM_TYPE_TV = 6,
30 DVDSTREAM_TYPE_MPLS = 10,
31 DVDSTREAM_TYPE_BLURAY = 11,
32 DVDSTREAM_TYPE_PVRMANAGER = 12,
33 DVDSTREAM_TYPE_MULTIFILES = 13,
34 DVDSTREAM_TYPE_ADDON = 14
37 #define SEEK_POSSIBLE 0x10 // flag used to check if protocol allows seeks 39 #define DVDSTREAM_BLOCK_SIZE_FILE (2048 * 16) 40 #define DVDSTREAM_BLOCK_SIZE_DVD 2048 58 virtual int GetTotalTime() = 0;
59 virtual int GetTime() = 0;
72 virtual ~
ITimes() =
default;
73 virtual bool GetTimes(
Times ×) = 0;
80 virtual bool PosTime(
int ms) = 0;
87 virtual int GetChapter() = 0;
88 virtual int GetChapterCount() = 0;
89 virtual void GetChapterName(std::string& name,
int ch=-1) = 0;
90 virtual int64_t GetChapterPos(
int ch=-1) = 0;
91 virtual bool SeekChapter(
int ch) = 0;
97 virtual ~
IMenus() =
default;
98 virtual void ActivateButton() = 0;
99 virtual void SelectButton(
int iButton) = 0;
100 virtual int GetCurrentButton() = 0;
101 virtual int GetTotalButtons() = 0;
102 virtual void OnUp() = 0;
103 virtual void OnDown() = 0;
104 virtual void OnLeft() = 0;
105 virtual void OnRight() = 0;
110 virtual bool OnMenu() = 0;
111 virtual void OnBack() = 0;
112 virtual void OnNext() = 0;
113 virtual void OnPrevious() = 0;
114 virtual bool OnMouseMove(
const CPoint &point) = 0;
115 virtual bool OnMouseClick(
const CPoint &point) = 0;
121 virtual MenuType GetSupportedMenuType() = 0;
123 virtual bool IsInMenu() = 0;
124 virtual void SkipStill() = 0;
125 virtual double GetTimeStampCorrection() {
return 0.0; }
126 virtual bool GetState(std::string &xmlstate) = 0;
127 virtual bool SetState(
const std::string &xmlstate) = 0;
128 virtual bool CanSeek() {
return !IsInMenu(); }
134 virtual ~
IDemux() =
default;
135 virtual bool OpenDemux() = 0;
137 virtual CDemuxStream* GetStream(
int iStreamId)
const = 0;
138 virtual std::vector<CDemuxStream*> GetStreams()
const = 0;
139 virtual void EnableStream(
int iStreamId,
bool enable) {}
140 virtual bool OpenStream(
int iStreamId) {
return false; }
141 virtual int GetNrOfStreams()
const = 0;
142 virtual void SetSpeed(
int iSpeed) = 0;
143 virtual void FillBuffer(
bool mode) {}
144 virtual bool SeekTime(
double time,
bool backward =
false,
double* startpts = NULL) = 0;
145 virtual void AbortDemux() = 0;
146 virtual void FlushDemux() = 0;
147 virtual void SetVideoResolution(
unsigned int width,
149 unsigned int maxWidth,
150 unsigned int maxHeight)
165 virtual void Close();
166 virtual int Read(uint8_t* buf,
int buf_size) = 0;
167 virtual int64_t Seek(int64_t offset,
int whence) = 0;
168 virtual int64_t GetLength() = 0;
169 virtual std::string& GetContent() {
return m_content; }
170 virtual std::string GetFileName();
171 virtual CURL GetURL();
172 virtual ENextStream NextStream() {
return NEXTSTREAM_NONE; }
173 virtual void Abort() {}
174 virtual int GetBlockSize() {
return 0; }
175 virtual bool CanSeek() {
return true; }
189 bool IsStreamType(DVDStreamType type)
const {
return m_streamType == type; }
190 virtual bool IsEOF() = 0;
191 virtual BitstreamStats GetBitstreamStats()
const {
return m_stats; }
193 bool ContentLookup() {
return m_contentLookup; }
195 virtual bool IsRealtime() {
return m_realtime; }
197 void SetRealtime(
bool realtime) { m_realtime = realtime; }
200 virtual IDemux* GetIDemux() {
return nullptr; }
201 virtual IPosTime* GetIPosTime() {
return nullptr; }
202 virtual IDisplayTime* GetIDisplayTime() {
return nullptr; }
203 virtual ITimes* GetITimes() {
return nullptr; }
204 virtual IChapter* GetIChapter() {
return nullptr; }
206 const CVariant& GetProperty(
const std::string& key) {
return m_item.GetProperty(key); }
209 DVDStreamType m_streamType;
211 std::string m_content;
213 bool m_contentLookup;
Definition: BitstreamStats.h:13
Definition: IFileTypes.h:49
Definition: SimpleFS.h:27
Definition: DVDDemux.h:72
Definition: DemuxPacket.h:22
Definition: DVDInputStream.h:76
Represents a file on a share.
Definition: FileItem.h:102