Merged from linuxport rev21200:21590. Updated.
[xbmc:xbmc-antiquated.git] / XBMC / xbmc / cores / dvdplayer / DVDInputStreams / DVDInputStreamTV.h
1 #pragma once
2
3 /*
4  *      Copyright (C) 2005-2008 Team XBMC
5  *      http://www.xbmc.org
6  *
7  *  This Program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2, or (at your option)
10  *  any later version.
11  *
12  *  This Program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with XBMC; see the file COPYING.  If not, write to
19  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20  *  http://www.gnu.org/copyleft/gpl.html
21  *
22  */
23
24 #include "DVDInputStream.h"
25
26 namespace XFILE {
27 class IFile;
28 class ILiveTVInterface;
29 class IRecordable;
30 }
31
32 class CDVDInputStreamTV
33   : public CDVDInputStream
34   , public CDVDInputStream::IChannel
35 {
36 public:
37   CDVDInputStreamTV();
38   virtual ~CDVDInputStreamTV();
39   virtual bool    Open(const char* strFile, const std::string &content);
40   virtual void    Close();
41   virtual int     Read(BYTE* buf, int buf_size);
42   virtual __int64 Seek(__int64 offset, int whence);
43   virtual bool Pause(double dTime) { return false; };
44   virtual bool    IsEOF();
45   virtual __int64 GetLength();
46
47   virtual bool    NextStream();
48
49
50   bool            NextChannel();
51   bool            PrevChannel();
52
53   int             GetTotalTime();
54   int             GetStartTime();
55
56   bool            SeekTime(int iTimeInMsec);
57
58   bool            CanRecord();
59   bool            IsRecording();
60   bool            Record(bool bOnOff);
61
62   bool            UpdateItem(CFileItem& item);
63
64 protected:
65   XFILE::IFile*            m_pFile;
66   XFILE::ILiveTVInterface* m_pLiveTV;
67   XFILE::IRecordable*      m_pRecordable;
68   bool m_eof;
69 };
70