4 #include <QReadWriteLock> 43 uint chanid, QDateTime recstartts, QDateTime recendts,
45 bool forceMetadataDelete) :
46 m_ms(ms), m_filename(filename), m_title(title),
47 m_chanid(chanid), m_recstartts(recstartts),
48 m_recendts(recendts), m_recordedid(recordedId),
49 m_forceMetadataDelete(forceMetadataDelete), m_fd(-1), m_size(0)
54 m_ms(ms), m_filename(filename), m_chanid(0), m_recordedid(0),
55 m_forceMetadataDelete(
false), m_fd(fd), m_size(size)
76 QDateTime recstartts, QDateTime recendts,
uint recordingId,
77 bool forceMetadataDelete) :
79 recendts, recordingId, forceMetadataDelete) {}
82 void run(
void)
override;
92 void run(
void)
override;
99 : m_ms(ms), m_pbs(
pbs), m_src(src), m_dst(dst) {}
100 void run(
void)
override;
120 QMap<int, EncoderLink *> *
tvList,
127 void customEvent(QEvent *e)
override;
129 bool isClientConnected(
bool onlyBlockingClients =
false);
130 void ShutSlaveBackendsDown(QString &haltcmd);
135 void connectionClosed(
MythSocket *socket)
override;
143 size_t GetCurrentMaxBitrate(
void);
144 void BackendQueryDiskSpace(QStringList &strlist,
bool consolidated,
146 void GetFilesystemInfos(QList<FileSystemInfo> &fsInfos,
151 void UpdateSystemdStatus(
void);
154 void reconnectTimeout(
void);
155 void deferredDeleteSlot(
void);
156 void autoexpireUpdate(
void);
164 void HandleAnnounce(QStringList &slist, QStringList commands,
168 void GetActiveBackends(QStringList &hosts);
170 void HandleIsActiveBackendQuery(QStringList &slist,
PlaybackSock *
pbs);
172 const QString &src,
const QString &dst);
174 bool HandleDeleteFile(QString filename, QString storagegroup,
180 void HandleDeleteRecording(QString &chanid, QString &starttime,
184 bool forceMetadataDelete);
186 bool forceMetadataDelete,
bool expirer=
false,
187 bool forgetHistory=
false);
191 void HandleRescheduleRecordings(
const QStringList &request,
193 bool HandleAddChildInput(
uint inputid);
202 void HandleGetPendingRecordings(
PlaybackSock *
pbs, QString table =
"",
int recordid=-1);
204 void HandleGetConflictingRecordings(QStringList &slist,
PlaybackSock *
pbs);
214 void HandleRecorderQuery(QStringList &slist, QStringList &commands,
217 void HandleFileTransferQuery(QStringList &slist, QStringList &commands,
226 void HandlePixmapGetIfModified(
const QStringList &slist,
PlaybackSock *
pbs);
228 void HandleCheckRecordingActive(QStringList &slist,
PlaybackSock *
pbs);
231 void HandleRemoteEncoder(QStringList &slist, QStringList &commands,
235 void HandleCutMapQuery(
const QString &chanid,
const QString &starttime,
237 void HandleCommBreakQuery(
const QString &chanid,
const QString &starttime,
239 void HandleCutlistQuery(
const QString &chanid,
const QString &starttime,
241 void HandleBookmarkQuery(
const QString &chanid,
const QString &starttime,
248 void HandleMusicTagUpdateVolatile(
const QStringList &slist,
PlaybackSock *
pbs);
249 void HandleMusicTagUpdateMetadata(
const QStringList &slist,
PlaybackSock *
pbs);
250 void HandleMusicFindAlbumArt(
const QStringList &slist,
PlaybackSock *
pbs);
251 void HandleMusicTagGetImage(
const QStringList &slist,
PlaybackSock *
pbs);
252 void HandleMusicTagAddImage(
const QStringList &slist,
PlaybackSock *
pbs);
253 void HandleMusicTagRemoveImage(
const QStringList &slist,
PlaybackSock *
pbs);
254 void HandleMusicTagChangeImage(
const QStringList &slist,
PlaybackSock *
pbs);
255 void HandleMusicCalcTrackLen(
const QStringList &slist,
PlaybackSock *
pbs);
256 void HandleMusicFindLyrics(
const QStringList &slist,
PlaybackSock *
pbs);
257 void HandleMusicGetLyricGrabbers(
const QStringList &slist,
PlaybackSock *
pbs);
258 void HandleMusicSaveLyrics(
const QStringList &slist,
PlaybackSock *
pbs);
259 void HandleVersion(
MythSocket *socket,
const QStringList &slist);
260 void HandleBackendRefresh(
MythSocket *socket);
267 void HandleDownloadFile(
const QStringList &command,
PlaybackSock *
pbs);
268 void HandleSlaveDisconnectedEvent(
const MythEvent &event);
270 void SendResponse(
MythSocket *sock, QStringList &commands);
273 void SendSlaveDisconnectedEvent(
const QList<uint> &offlineEncoderIDs,
274 bool needsReschedule);
276 void getGuideDataThrough(QDateTime &GuideDataThrough);
284 QString LocalFilePath(
const QString &path,
const QString &wantgroup);
286 int GetfsID(QList<FileSystemInfo>::iterator fsInfo);
299 void SetExitCode(
int exitCode,
bool closeApplication);
301 static int DeleteFile(
const QString &filename,
bool followLinks,
302 bool deleteBrokenSymlinks =
false);
303 static int OpenAndUnlink(
const QString &filename);
305 int fd,
const QString &filename,
QWaitCondition masterFreeSpaceListWait
FreeSpaceUpdater *volatile masterFreeSpaceListUpdater
void connected(MythSocket *socket) override
QHash< QString, QString > RequestedBy
QMutex m_downloadURLsLock
RenameThread(MainServer &ms, PlaybackSock &pbs, QString src, QString dst)
void startReserved(QRunnable *runnable, QString debugName, int waitForAvailMS=0)
void start(QRunnable *runnable, QString debugName, int priority=0)
RequestedBy m_previewRequestedBy
TruncateThread(MainServer *ms, QString filename, int fd, off_t size)
static const uint kMasterServerReconnectTimeout
static void error(const char *str,...)
QTimer * autoexpireUpdateTimer
bool m_forceMetadataDelete
bool masterBackendOverride
Holds information on a TV Program one might wish to record.
DeleteThread(MainServer *ms, QString filename, QString title, uint chanid, QDateTime recstartts, QDateTime recendts, uint recordingId, bool forceMetadataDelete)
vector< MythSocket * > decrRefSocketList
QList< FileSystemInfo > fsInfosCache
QTimer * deferredDeleteTimer
vector< FileTransfer * > fileTransferList
Holds information on recordings and videos.
static int run(MythMediaDevice *dev=nullptr, bool startRandomShow=false)
This class is used as a container for messages.
MetadataFactory * metadatafactory
QMutex deferredDeleteLock
QTimer * masterServerReconnect
void connectionFailed(MythSocket *socket) override
PlaybackSock * masterServer
QSet< MythSocket * > controlSocketList
DeleteStruct(MainServer *ms, QString filename, int fd, off_t size)
static MThreadPool * globalInstance(void)
QMap< QString, int > fsIDcache
QMutex m_addChildInputLock
QMap< int, EncoderLink * > * encoderList
QMap< QString, QString > m_downloadURLs
Used to expire recordings to make space for new recordings.
QStringList masterFreeSpaceList
QReadWriteLock sockListLock
vector< LiveTVChain * > liveTVChains
DeleteStruct(MainServer *ms, QString filename, QString title, uint chanid, QDateTime recstartts, QDateTime recendts, uint recordedId, bool forceMetadataDelete)
Class for communcating between myth backends and frontends.
vector< PlaybackSock * > playbackList
static QMutex m_renamelock
MythDeque< DeferredDeleteStruct > deferredDeleteList
QMutex masterFreeSpaceListLock
Keeps track of recordings in a current LiveTV instance.
QMap< int, EncoderLink * > tvList
static QMutex truncate_and_close_lock
MythDeque is similar to QPtrQueue, while being based off deque, this allows that items that are not a...