|
MythTV
0.26-pre
|
00001 #ifndef REMOTEENCODER_H_ 00002 #define REMOTEENCODER_H_ 00003 00004 #include <stdint.h> 00005 00006 #include <QString> 00007 #include <QMutex> 00008 #include <QHash> 00009 #include <QMap> 00010 00011 #include "mythtvexp.h" 00012 #include "videoouttypes.h" 00013 #include "tv.h" 00014 00015 class QStringList; 00016 class ProgramInfo; 00017 class MythSocket; 00018 00019 class MTV_PUBLIC RemoteEncoder 00020 { 00021 public: 00022 RemoteEncoder(int num, const QString &host, short port); 00023 ~RemoteEncoder(void); 00024 00025 bool Setup(void); 00026 bool IsValidRecorder(void) const; 00027 int GetRecorderNumber(void) const; 00028 00029 ProgramInfo *GetRecording(void); 00030 bool IsRecording(bool *ok = NULL); 00031 float GetFrameRate(void); 00032 long long GetFramesWritten(void); 00034 long long GetCachedFramesWritten(void) const { return cachedFramesWritten; } 00035 long long GetFilePosition(void); 00036 long long GetFreeDiskSpace(); 00037 long long GetMaxBitrate(); 00038 int64_t GetKeyframePosition(uint64_t desired); 00039 void FillPositionMap(long long start, long long end, 00040 QMap<long long, long long> &positionMap); 00041 void StopPlaying(void); 00042 void SpawnLiveTV(QString chainid, bool pip, QString startchan); 00043 void StopLiveTV(void); 00044 void PauseRecorder(void); 00045 void FinishRecording(void); 00046 void FrontendReady(void); 00047 void CancelNextRecording(bool cancel); 00048 00049 void SetLiveRecording(bool recording); 00050 QString GetInput(void); 00051 QString SetInput(QString); 00052 int GetPictureAttribute(PictureAttribute attr); 00053 int ChangePictureAttribute( 00054 PictureAdjustType type, PictureAttribute attr, bool up); 00055 void ChangeChannel(int channeldirection); 00056 void ChangeDeinterlacer(int deint_mode); 00057 void ToggleChannelFavorite(QString); 00058 void SetChannel(QString channel); 00059 int SetSignalMonitoringRate(int msec, bool notifyFrontend = true); 00060 uint GetSignalLockTimeout(QString input); 00061 bool CheckChannel(QString channel); 00062 bool ShouldSwitchToAnotherCard(QString channelid); 00063 bool CheckChannelPrefix(const QString&,uint&,bool&,QString&); 00064 void GetNextProgram(int direction, 00065 QString &title, QString &subtitle, QString &desc, 00066 QString &category, QString &starttime, QString &endtime, 00067 QString &callsign, QString &iconpath, 00068 QString &channelname, QString &chanid, 00069 QString &seriesid, QString &programid); 00070 void GetChannelInfo(QHash<QString, QString> &infoMap, uint chanid = 0); 00071 bool SetChannelInfo(const QHash<QString, QString> &infoMap); 00072 bool GetErrorStatus(void) { bool v = backendError; backendError = false; 00073 return v; } 00074 00075 private: 00076 bool SendReceiveStringList(QStringList &strlist, uint min_reply_length = 0); 00077 00078 int recordernum; 00079 00080 MythSocket *controlSock; 00081 QMutex lock; 00082 00083 QString remotehost; 00084 short remoteport; 00085 00086 QString lastchannel; 00087 QString lastinput; 00088 00089 bool backendError; 00090 long long cachedFramesWritten; 00091 QMap<QString,uint> cachedTimeout; 00092 }; 00093 00094 #endif 00095
1.7.6.1