MythTV  master
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members

Interface between mythtv and lircd. More...

#include <libmythui/devices/lirc.h>

Inheritance diagram for LIRC:
[legend]
Collaboration diagram for LIRC:
[legend]

Public Member Functions

 LIRC (QObject *main_window, QString lircd_device, QString our_program, QString config_file)
 
bool Init (void)
 
virtual void start (void)
 
virtual void deleteLater (void)
 
- Public Member Functions inherited from MThread
 MThread (const QString &objectName)
 Standard constructor. More...
 
 MThread (const QString &objectName, QRunnable *runnable)
 Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More...
 
virtual ~MThread ()
 
 MThread (const MThread &)=delete
 
MThreadoperator= (const MThread &)=delete
 
void RunProlog (void)
 Sets up a thread, call this if you reimplement run(). More...
 
void RunEpilog (void)
 Cleans up a thread's resources, call this if you reimplement run(). More...
 
QThread * qthread (void)
 Returns the thread, this will always return the same pointer no matter how often you restart the thread. More...
 
void setObjectName (const QString &name)
 
QString objectName (void) const
 
void setPriority (QThread::Priority priority)
 
QThread::Priority priority (void) const
 
bool isFinished (void) const
 
bool isRunning (void) const
 
void setStackSize (uint stackSize)
 
uint stackSize (void) const
 
void exit (int retcode=0)
 Use this to exit from the thread if you are using a Qt event loop. More...
 
void start (QThread::Priority p=QThread::InheritPriority)
 Tell MThread to start running the thread in the near future. More...
 
void terminate (void)
 Kill a thread unsafely. More...
 
void quit (void)
 calls exit(0) More...
 
bool wait (std::chrono::milliseconds time=std::chrono::milliseconds::max())
 Wait for the MThread to exit, with a maximum timeout. More...
 

Private Member Functions

 ~LIRC () override
 
void TeardownAll ()
 
bool IsDoRunSet (void) const
 
void run (void) override
 Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead. More...
 
QList< QByteArray > GetCodes (void)
 
void Process (const QByteArray &data)
 

Private Attributes

QRecursiveMutex m_lock
 
QObject * m_mainWindow {nullptr}
 window to send key events to More...
 
QString m_lircdDevice
 device on which to receive lircd data More...
 
QString m_program
 program to extract from config file More...
 
QString m_configFile
 file containing LIRC->key mappings More...
 
bool m_doRun {false}
 
uint m_bufOffset {0}
 
QByteArray m_buf
 
uint m_eofCount {0}
 
uint m_retryCount {0}
 
LIRCPrivd {nullptr}
 

Static Private Attributes

static QMutex s_lirclibLock
 

Additional Inherited Members

- Static Public Member Functions inherited from MThread
static void ThreadSetup (const QString &name)
 This is to be called on startup in those few threads that haven't been ported to MThread. More...
 
static void ThreadCleanup (void)
 This is to be called on exit in those few threads that haven't been ported to MThread. More...
 
static void Cleanup (void)
 This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More...
 
static void GetAllThreadNames (QStringList &list)
 
static void GetAllRunningThreadNames (QStringList &list)
 
- Protected Member Functions inherited from MThread
int exec (void)
 Enters the qt event loop. call exit or quit to exit thread. More...
 
- Static Protected Member Functions inherited from MThread
static void setTerminationEnabled (bool enabled=true)
 
static void usleep (std::chrono::microseconds time)
 
template<typename R , typename P >
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > usleep (std::chrono::duration< R, P > time)
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prologExecuted {true}
 
bool m_epilogExecuted {true}
 

Detailed Description

Interface between mythtv and lircd.

Listens for input from the Linux Infrared Remote Control daemon and translates it into internal input events.

Create connection to the lircd daemon and translate remote keypresses into custom events which are posted to the mainwindow.

Definition at line 25 of file lirc.h.

Constructor & Destructor Documentation

◆ LIRC()

LIRC::LIRC ( QObject *  main_window,
QString  lircd_device,
QString  our_program,
QString  config_file 
)

Definition at line 82 of file lirc.cpp.

◆ ~LIRC()

LIRC::~LIRC ( )
overrideprivate

Definition at line 96 of file lirc.cpp.

Member Function Documentation

◆ Init()

bool LIRC::Init ( void  )

Definition at line 166 of file lirc.cpp.

Referenced by run(), and MythInputDeviceHandler::Start().

◆ start()

void LIRC::start ( void  )
virtual

Definition at line 325 of file lirc.cpp.

Referenced by MythInputDeviceHandler::Start().

◆ deleteLater()

void LIRC::deleteLater ( void  )
virtual

Definition at line 101 of file lirc.cpp.

Referenced by MythInputDeviceHandler::Start(), and MythInputDeviceHandler::Stop().

◆ TeardownAll()

void LIRC::TeardownAll ( )
private

Definition at line 107 of file lirc.cpp.

Referenced by deleteLater(), and ~LIRC().

◆ IsDoRunSet()

bool LIRC::IsDoRunSet ( void  ) const
private

Definition at line 339 of file lirc.cpp.

Referenced by run().

◆ run()

void LIRC::run ( void  )
overrideprivatevirtual

Runs the Qt event loop unless we have a QRunnable, in which case we run the runnable run instead.

Note
If you override this method you must call RunProlog before you do any work and RunEpilog before you exit the run method.

Reimplemented from MThread.

Definition at line 416 of file lirc.cpp.

◆ GetCodes()

QList< QByteArray > LIRC::GetCodes ( void  )
private

Definition at line 484 of file lirc.cpp.

Referenced by run().

◆ Process()

void LIRC::Process ( const QByteArray &  data)
private

Definition at line 345 of file lirc.cpp.

Referenced by run().

Member Data Documentation

◆ m_lock

QRecursiveMutex LIRC::m_lock
mutableprivate

Definition at line 47 of file lirc.h.

Referenced by Init(), IsDoRunSet(), run(), start(), and TeardownAll().

◆ s_lirclibLock

QMutex LIRC::s_lirclibLock
staticprivate

Definition at line 48 of file lirc.h.

Referenced by Init(), and Process().

◆ m_mainWindow

QObject* LIRC::m_mainWindow {nullptr}
private

window to send key events to

Definition at line 49 of file lirc.h.

Referenced by Process().

◆ m_lircdDevice

QString LIRC::m_lircdDevice
private

device on which to receive lircd data

Definition at line 50 of file lirc.h.

Referenced by Init().

◆ m_program

QString LIRC::m_program
private

program to extract from config file

Definition at line 51 of file lirc.h.

◆ m_configFile

QString LIRC::m_configFile
private

file containing LIRC->key mappings

Definition at line 52 of file lirc.h.

Referenced by Init().

◆ m_doRun

bool LIRC::m_doRun {false}
private

Definition at line 53 of file lirc.h.

Referenced by IsDoRunSet(), run(), start(), and TeardownAll().

◆ m_bufOffset

uint LIRC::m_bufOffset {0}
private

Definition at line 54 of file lirc.h.

Referenced by GetCodes().

◆ m_buf

QByteArray LIRC::m_buf
private

Definition at line 55 of file lirc.h.

Referenced by GetCodes(), and LIRC().

◆ m_eofCount

uint LIRC::m_eofCount {0}
private

Definition at line 56 of file lirc.h.

Referenced by GetCodes(), and run().

◆ m_retryCount

uint LIRC::m_retryCount {0}
private

Definition at line 57 of file lirc.h.

Referenced by GetCodes(), Init(), and run().

◆ d

LIRCPriv* LIRC::d {nullptr}
private

Definition at line 58 of file lirc.h.

Referenced by GetCodes(), Init(), Process(), run(), start(), and TeardownAll().


The documentation for this class was generated from the following files: