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