3#ifndef EXTERNAL_STREAMHANDLER_H
4#define EXTERNAL_STREAMHANDLER_H
37 bool Ready(
int fd, std::chrono::milliseconds
timeout,
const QString & what);
38 int Read(QByteArray & buffer,
int maxlen, std::chrono::milliseconds
timeout = 2500ms);
40 int Write(
const QByteArray & buffer);
78 int inputid,
int majorid);
111 std::chrono::milliseconds
timeout = 4s,
113 bool ProcessVer1(
const QString & cmd, QString & result,
114 std::chrono::milliseconds
timeout,
uint retry_cnt);
115 bool ProcessVer2(
const QString & command, QString & result,
116 std::chrono::milliseconds
timeout,
uint retry_cnt);
118 QVariantMap & elements,
119 QByteArray & response,
120 std::chrono::milliseconds
timeout = 4s,
125 void run(
void)
override;
This class is intended to detect the presence of needed tables.
bool Ready(int fd, std::chrono::milliseconds timeout, const QString &what)
int Write(const QByteArray &buffer)
static bool KillIfRunning(const QString &cmd)
int Read(QByteArray &buffer, int maxlen, std::chrono::milliseconds timeout=2500ms)
static constexpr uint8_t kMaxErrorCnt
QByteArray GetStatus(std::chrono::milliseconds timeout=2500ms)
ExternIO(const QString &app, const QStringList &args)
QString ErrorString(void) const
QByteArray m_replayBuffer
bool ProcessVer1(const QString &cmd, QString &result, std::chrono::milliseconds timeout, uint retry_cnt)
static ExternalStreamHandler * Get(const QString &devname, int inputid, int majorid)
void run(void) override
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
int StreamingCount(void) const
bool HasPictureAttributes(void) const
static QMutex s_handlersLock
bool m_hasPictureAttributes
QString GetDescription(void)
bool StartStreaming(bool recording)
~ExternalStreamHandler(void) override
ExternalStreamHandler(const QString &path, int inputid, int majorid)
QAtomicInt m_streamingCnt
bool ProcessVer2(const QString &command, QString &result, std::chrono::milliseconds timeout, uint retry_cnt)
static QMap< int, uint > s_handlersRefCnt
bool ProcessCommand(const QString &cmd, QString &result, std::chrono::milliseconds timeout=4s, uint retry_cnt=3)
QString UpdateDescription(void)
bool IsDamaged(void) const
static QMap< int, ExternalStreamHandler * > s_handlers
bool HasTuner(void) const
bool ProcessJson(const QVariantMap &vmsg, QVariantMap &elements, QByteArray &response, std::chrono::milliseconds timeout=4s, uint retry_cnt=3)
int APIVersion(void) const
void UnlockReplay(bool enable_replay=false)
void PriorityEvent(int fd) override
static void Return(ExternalStreamHandler *&ref, int inputid)