MythTV master
lirc.h
Go to the documentation of this file.
1#ifndef LIRC_H_
2#define LIRC_H_
3
4#include <QChar> // Fix Qt6 GCC SFINAE warning
5#include <QByteArray>
6#include <QString>
7#include <QObject>
8#include <QMutex>
9#include <QRecursiveMutex>
10#include <QList>
11
12#include <sys/types.h> // for uint
13
14#include "libmythbase/mthread.h"
15
16class LIRCPriv;
17
26class LIRC : public QObject, public MThread
27{
28 Q_OBJECT
29 public:
30 LIRC(QObject *main_window,
31 QString lircd_device,
32 QString our_program,
33 QString config_file);
34 bool Init(void);
35
36 virtual void start(void);
37 virtual void deleteLater(void);
38
39 protected:
40 void run(void) override; // MThread
41
42 private:
43 ~LIRC() override;
44 void TeardownAll();
45
46 bool IsDoRunSet(void) const;
47 QList<QByteArray> GetCodes(void);
48 void Process(const QByteArray &data);
49
50 mutable QRecursiveMutex m_lock;
51 static QMutex s_lirclibLock;
52 QObject *m_mainWindow {nullptr};
53 QString m_lircdDevice;
54 QString m_program;
55 QString m_configFile;
56 bool m_doRun {false};
58 QByteArray m_buf;
61 LIRCPriv *d {nullptr}; // NOLINT(readability-identifier-naming)
62};
63
64#endif
Interface between mythtv and lircd.
Definition: lirc.h:27
void Process(const QByteArray &data)
Definition: lirc.cpp:347
QString m_program
program to extract from config file
Definition: lirc.h:54
~LIRC() override
Definition: lirc.cpp:97
uint m_bufOffset
Definition: lirc.h:57
QString m_lircdDevice
device on which to receive lircd data
Definition: lirc.h:53
virtual void start(void)
Definition: lirc.cpp:327
bool IsDoRunSet(void) const
Definition: lirc.cpp:341
static QMutex s_lirclibLock
Definition: lirc.h:51
QString m_configFile
file containing LIRC->key mappings
Definition: lirc.h:55
QObject * m_mainWindow
window to send key events to
Definition: lirc.h:52
QRecursiveMutex m_lock
Definition: lirc.h:50
bool Init(void)
Definition: lirc.cpp:167
uint m_retryCount
Definition: lirc.h:60
bool m_doRun
Definition: lirc.h:56
LIRCPriv * d
Definition: lirc.h:61
QByteArray m_buf
Definition: lirc.h:58
uint m_eofCount
Definition: lirc.h:59
void TeardownAll()
Definition: lirc.cpp:108
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:418
QList< QByteArray > GetCodes(void)
Definition: lirc.cpp:492
LIRC(QObject *main_window, QString lircd_device, QString our_program, QString config_file)
Definition: lirc.cpp:83
virtual void deleteLater(void)
Definition: lirc.cpp:102
This is a wrapper around QThread that does several additional things.
Definition: mthread.h:49
unsigned int uint
Definition: compat.h:60