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

Interface between mythtv and lircd. More...

#include <lirc.h>

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

Public Member Functions

 LIRC (QObject *main_window, const QString &lircd_device, const QString &our_program, const 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 ()
 
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=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 (unsigned long time=ULONG_MAX)
 Wait for the MThread to exit, with a maximum timeout. More...
 

Private Member Functions

virtual ~LIRC ()
 
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

QMutex lock
 
QObject * m_mainWindow {nullptr}
 window to send key events to More...
 
QString lircdDevice
 device on which to receive lircd data More...
 
QString program
 program to extract from config file More...
 
QString configFile
 file containing LIRC->key mappings More...
 
bool doRun
 
uint buf_offset
 
QByteArray buf
 
uint eofCount
 
uint retryCount
 
LIRCPrivd {nullptr}
 

Static Private Attributes

static QMutex lirclib_lock
 

Additional Inherited Members

- Static Public Member Functions inherited from MThread
static void ThreadSetup (const QString &)
 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)
 
- Static Public Attributes inherited from MThread
static const int kDefaultStartTimeout
 
- 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 sleep (unsigned long time)
 
static void msleep (unsigned long time)
 
static void usleep (unsigned long time)
 
- Protected Attributes inherited from MThread
MThreadInternalm_thread {nullptr}
 
QRunnable * m_runnable {nullptr}
 
bool m_prolog_executed {true}
 
bool m_epilog_executed {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 24 of file lirc.h.

Constructor & Destructor Documentation

◆ LIRC()

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

Definition at line 74 of file lirc.cpp.

◆ ~LIRC()

LIRC::~LIRC ( )
privatevirtual

Definition at line 93 of file lirc.cpp.

Member Function Documentation

◆ Init()

bool LIRC::Init ( void  )

Definition at line 164 of file lirc.cpp.

Referenced by run(), and MythMainWindow::StartLIRC().

◆ start()

void LIRC::start ( void  )
virtual

Definition at line 324 of file lirc.cpp.

Referenced by MythMainWindow::StartLIRC().

◆ deleteLater()

void LIRC::deleteLater ( void  )
virtual

Definition at line 98 of file lirc.cpp.

Referenced by MythMainWindow::StartLIRC(), and MythMainWindow::~MythMainWindow().

◆ TeardownAll()

void LIRC::TeardownAll ( void  )
private

Definition at line 104 of file lirc.cpp.

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

◆ IsDoRunSet()

bool LIRC::IsDoRunSet ( void  ) const
private

Definition at line 338 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 410 of file lirc.cpp.

◆ GetCodes()

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

Definition at line 480 of file lirc.cpp.

Referenced by run().

◆ Process()

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

Definition at line 344 of file lirc.cpp.

Referenced by run().

Member Data Documentation

◆ lock

QMutex LIRC::lock
mutableprivate

◆ lirclib_lock

QMutex LIRC::lirclib_lock
staticprivate

Definition at line 47 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 48 of file lirc.h.

Referenced by Process().

◆ lircdDevice

QString LIRC::lircdDevice
private

device on which to receive lircd data

Definition at line 49 of file lirc.h.

Referenced by Init().

◆ program

QString LIRC::program
private

program to extract from config file

Definition at line 50 of file lirc.h.

◆ configFile

QString LIRC::configFile
private

file containing LIRC->key mappings

Definition at line 51 of file lirc.h.

Referenced by Init().

◆ doRun

bool LIRC::doRun
private

Definition at line 52 of file lirc.h.

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

◆ buf_offset

uint LIRC::buf_offset
private

Definition at line 53 of file lirc.h.

Referenced by GetCodes().

◆ buf

QByteArray LIRC::buf
private

◆ eofCount

uint LIRC::eofCount
private

Definition at line 55 of file lirc.h.

Referenced by GetCodes(), and run().

◆ retryCount

uint LIRC::retryCount
private

Definition at line 56 of file lirc.h.

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

◆ d

LIRCPriv* LIRC::d {nullptr}
private

Definition at line 57 of file lirc.h.

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


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