00001 #ifndef PLAYBACKSOCK_H_
00002 #define PLAYBACKSOCK_H_
00003
00004 #include <qstring.h>
00005 #include <qmutex.h>
00006
00007 #include "programinfo.h"
00008
00009 class MythSocket;
00010 class MainServer;
00011 class ProgramInfo;
00012 class InputInfo;
00013
00014 class PlaybackSock
00015 {
00016 public:
00017 PlaybackSock(MainServer *parent, MythSocket *lsock,
00018 QString lhostname, bool wantevents);
00019 virtual ~PlaybackSock();
00020
00021 void UpRef(void);
00022 bool DownRef(void);
00023
00024 void SetDisconnected(void) { disconnected = true; }
00025 bool IsDisconnected(void) { return disconnected; }
00026
00027 MythSocket *getSocket(void) { return sock; }
00028 QString getHostname(void) { return hostname; }
00029
00030 bool isLocal(void) { return local; }
00031 bool wantsEvents(void) { return events; }
00032
00033 bool getBlockShutdown(void) { return blockshutdown; }
00034 void setBlockShutdown(bool value) { blockshutdown = value; }
00035
00036
00037 bool isSlaveBackend(void) { return backend; }
00038 void setAsSlaveBackend(void) { backend = true; }
00039
00040 bool isExpectingReply(void) { return expectingreply; }
00041
00042 void setIP(QString &lip) { ip = lip; }
00043 QString getIP(void) { return ip; }
00044
00045 void GetDiskSpace(QStringList &o_strlist);
00046 int StopRecording(const ProgramInfo *pginfo);
00047 int CheckRecordingActive(const ProgramInfo *pginfo);
00048 int DeleteRecording(const ProgramInfo *pginfo, bool forceMetadataDelete = false);
00049 void FillProgramInfo(ProgramInfo *pginfo, QString &playbackhost);
00050 QStringList GenPreviewPixmap(const ProgramInfo *pginfo);
00051 QStringList GenPreviewPixmap(const ProgramInfo *pginfo,
00052 bool time_fmt_sec,
00053 long long time,
00054 const QString &outputFile,
00055 const QSize &outputSize);
00056 QDateTime PixmapLastModified(const ProgramInfo *pginfo);
00057 bool CheckFile(ProgramInfo *pginfo);
00058
00059 bool IsBusy(int capturecardnum,
00060 InputInfo *busy_input = NULL,
00061 int time_buffer = 5);
00062 int GetEncoderState(int capturecardnum);
00063 long long GetMaxBitrate(int capturecardnum);
00064 ProgramInfo *GetRecording(int capturecardnum);
00065 bool EncoderIsRecording(int capturecardnum, const ProgramInfo *pginfo);
00066 RecStatusType StartRecording(int capturecardnum,
00067 const ProgramInfo *pginfo);
00068 void RecordPending(int capturecardnum, const ProgramInfo *pginfo,
00069 int secsleft, bool hasLater);
00070 int SetSignalMonitoringRate(int capturecardnum, int rate, int notifyFrontend);
00071 void SetNextLiveTVDir(int capturecardnum, QString dir);
00072 vector<InputInfo> GetFreeInputs(int capturecardnum,
00073 const vector<uint> &excluded_cardids);
00074 void CancelNextRecording(int capturecardnum, bool cancel);
00075
00076 private:
00077 bool SendReceiveStringList(QStringList &strlist);
00078
00079 MythSocket *sock;
00080 QString hostname;
00081 QString ip;
00082
00083 bool local;
00084 bool events;
00085 bool blockshutdown;
00086 bool backend;
00087
00088 QMutex refLock;
00089 QMutex sockLock;
00090
00091 bool expectingreply;
00092 bool disconnected;
00093
00094 int refCount;
00095
00096 MainServer *m_parent;
00097 };
00098
00099 #endif
00100
00101