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);
86 void run(
void)
override;
112 std::chrono::milliseconds
timeout = 4s,
114 bool ProcessVer1(
const QString & cmd, QString & result,
115 std::chrono::milliseconds
timeout,
uint retry_cnt);
116 bool ProcessVer2(
const QString & command, QString & result,
117 std::chrono::milliseconds
timeout,
uint retry_cnt);
119 QVariantMap & elements,
120 QByteArray & response,
121 std::chrono::milliseconds
timeout = 4s,
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)
~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
bool StartStreaming(void)
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)