MythTV  master
lirc.h
Go to the documentation of this file.
1 #ifndef LIRC_H_
2 #define LIRC_H_
3 
4 #include <QByteArray>
5 #include <QString>
6 #include <QObject>
7 #include <QMutex>
8 #if QT_VERSION >= QT_VERSION_CHECK(5,14,0)
9 #include <QRecursiveMutex>
10 #endif
11 #include <QList>
12 
13 #include <sys/types.h> // for uint
14 
15 #include "libmythbase/mthread.h"
16 
17 class LIRCPriv;
18 
27 class LIRC : public QObject, public MThread
28 {
29  Q_OBJECT
30  public:
31  LIRC(QObject *main_window,
32  QString lircd_device,
33  QString our_program,
34  QString config_file);
35  bool Init(void);
36 
37  virtual void start(void);
38  virtual void deleteLater(void);
39 
40  private:
41  ~LIRC() override;
42  void TeardownAll();
43 
44  bool IsDoRunSet(void) const;
45  void run(void) override; // MThread
46  QList<QByteArray> GetCodes(void);
47  void Process(const QByteArray &data);
48 
49 #if QT_VERSION < QT_VERSION_CHECK(5,14,0)
50  mutable QMutex m_lock {QMutex::Recursive};
51 #else
52  mutable QRecursiveMutex m_lock;
53 #endif
54  static QMutex s_lirclibLock;
55  QObject *m_mainWindow {nullptr};
56  QString m_lircdDevice;
57  QString m_program;
58  QString m_configFile;
59  bool m_doRun {false};
61  QByteArray m_buf;
64  LIRCPriv *d {nullptr}; // NOLINT(readability-identifier-naming)
65 };
66 
67 #endif
LIRC::TeardownAll
void TeardownAll()
Definition: lirc.cpp:107
LIRC::m_mainWindow
QObject * m_mainWindow
window to send key events to
Definition: lirc.h:55
LIRC::m_lock
QRecursiveMutex m_lock
Definition: lirc.h:52
LIRC::m_lircdDevice
QString m_lircdDevice
device on which to receive lircd data
Definition: lirc.h:56
LIRC::m_configFile
QString m_configFile
file containing LIRC->key mappings
Definition: lirc.h:58
LIRC::m_retryCount
uint m_retryCount
Definition: lirc.h:63
LIRC::Process
void Process(const QByteArray &data)
Definition: lirc.cpp:345
LIRC::~LIRC
~LIRC() override
Definition: lirc.cpp:96
LIRCPriv
Definition: lirc.cpp:51
LIRC::GetCodes
QList< QByteArray > GetCodes(void)
Definition: lirc.cpp:484
LIRC::m_eofCount
uint m_eofCount
Definition: lirc.h:62
LIRC::LIRC
LIRC(QObject *main_window, QString lircd_device, QString our_program, QString config_file)
Definition: lirc.cpp:82
LIRC::s_lirclibLock
static QMutex s_lirclibLock
Definition: lirc.h:54
LIRC::deleteLater
virtual void deleteLater(void)
Definition: lirc.cpp:101
LIRC::m_buf
QByteArray m_buf
Definition: lirc.h:61
LIRC::run
void run(void) override
Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.
Definition: lirc.cpp:416
uint
unsigned int uint
Definition: compat.h:81
LIRC::IsDoRunSet
bool IsDoRunSet(void) const
Definition: lirc.cpp:339
MThread
This is a wrapper around QThread that does several additional things.
Definition: mthread.h:48
mthread.h
LIRC::m_bufOffset
uint m_bufOffset
Definition: lirc.h:60
LIRC::Init
bool Init(void)
Definition: lirc.cpp:166
LIRC::m_doRun
bool m_doRun
Definition: lirc.h:59
LIRC
Interface between mythtv and lircd.
Definition: lirc.h:27
LIRC::d
LIRCPriv * d
Definition: lirc.h:64
LIRC::m_program
QString m_program
program to extract from config file
Definition: lirc.h:57
LIRC::start
virtual void start(void)
Definition: lirc.cpp:325