vdr 2.8.2
cRemote Class Reference

#include <remote.h>

Public Member Functions

virtual ~cRemote () override
virtual bool Ready (void)
virtual bool Initialize (void)
const char * Name (void)
Public Member Functions inherited from cListObject
 cListObject (void)
virtual ~cListObject ()
virtual int Compare (const cListObject &ListObject) const
void Append (cListObject *Object)
void Insert (cListObject *Object)
void Unlink (void)
int Index (void) const
cListObjectPrev (void) const
cListObjectNext (void) const

Static Public Member Functions

static void SetLearning (cRemote *Learning)
static bool IsLearning (void)
static bool Enabled (void)
static void SetEnabled (bool Enabled)
static bool InEditMode (void)
static void SetInEditMode (bool InEditMode)
static void Clear (void)
static bool Put (eKeys Key, bool AtFront=false)
static bool PutMacro (eKeys Key)
static bool CallPlugin (const char *Plugin)
static const char * GetPlugin (void)
static bool HasKeys (void)
static eKeys Get (int WaitMs=1000, char **UnknownCode=NULL)
static time_t LastActivity (void)
static void TriggerLastActivity (void)

Protected Member Functions

 cRemote (const char *Name)
const char * GetSetup (void)
void PutSetup (const char *Setup)
bool Put (uint64_t Code, bool Repeat=false, bool Release=false)
bool Put (const char *Code, bool Repeat=false, bool Release=false)

Private Types

enum  { MaxKeys = 2 * MAXKEYSINMACRO }

Private Attributes

char * name

Static Private Attributes

static eKeys keys [MaxKeys]
static int in = 0
static int out = 0
static cTimeMs repeatTimeout
static cRemotelearning = NULL
static char * unknownCode = NULL
static cMutex mutex
static cCondVar keyPressed
static time_t lastActivity = 0
static const char * keyMacroPlugin = NULL
static const char * callPlugin = NULL
static bool enabled = true
static bool inEditMode = false

Detailed Description

Definition at line 20 of file remote.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
MaxKeys 

Definition at line 22 of file remote.h.

Constructor & Destructor Documentation

◆ cRemote()

cRemote::cRemote ( const char * Name)
protected

Definition at line 40 of file remote.c.

References Name(), name, and Remotes.

Referenced by cKbdRemote::cKbdRemote(), cLircRemote::cLircRemote(), cRcuRemote::cRcuRemote(), and SetLearning().

◆ ~cRemote()

cRemote::~cRemote ( )
overridevirtual

Definition at line 46 of file remote.c.

References name, and Remotes.

Member Function Documentation

◆ CallPlugin()

bool cRemote::CallPlugin ( const char * Plugin)
static

Initiates calling the given plugin's main menu function.

The Plugin parameter is the name of the plugin, and must be a static string. Returns true if the plugin call was successfully initiated (the actual call to the plugin's main menu function will take place some time later, during the next execution of VDR's main loop). If there is already a plugin call pending false will be returned and the caller should try again later.

Definition at line 157 of file remote.c.

References callPlugin, k_Plugin, mutex, and Put().

Referenced by cSVDRPServer::CmdPLUG(), and cPictureControl::ProcessKey().

◆ Clear()

void cRemote::Clear ( void )
static

Definition at line 73 of file remote.c.

References in, learning, mutex, out, and unknownCode.

Referenced by cInterface::LearnKeys(), and cInterface::QueryKeys().

◆ Enabled()

bool cRemote::Enabled ( void )
inlinestatic

◆ Get()

eKeys cRemote::Get ( int WaitMs = 1000,
char ** UnknownCode = NULL )
static

◆ GetPlugin()

const char * cRemote::GetPlugin ( void )
static

Returns the name of the plugin that was set with a previous call to PutMacro() or CallPlugin().

The internally stored pointer to the plugin name will be reset to NULL by this call.

Definition at line 168 of file remote.c.

References callPlugin, keyMacroPlugin, and mutex.

Referenced by main().

◆ GetSetup()

const char * cRemote::GetSetup ( void )
protected

Definition at line 52 of file remote.c.

References Keys, and Name().

Referenced by cRcuRemote::cRcuRemote().

◆ HasKeys()

bool cRemote::HasKeys ( void )
static

Definition at line 181 of file remote.c.

References in, k_Repeat, keys, mutex, and out.

Referenced by cRemoveDeletedRecordingsThread::Action(), and cInterface::GetKey().

◆ InEditMode()

bool cRemote::InEditMode ( void )
inlinestatic

Definition at line 52 of file remote.h.

References inEditMode.

Referenced by SetInEditMode().

◆ Initialize()

bool cRemote::Initialize ( void )
virtual

Reimplemented in cRcuRemote.

Definition at line 62 of file remote.c.

References Get(), INITTIMEOUT, kNone, and Ready().

Referenced by cInterface::QueryKeys().

◆ IsLearning()

bool cRemote::IsLearning ( void )
inlinestatic

Definition at line 49 of file remote.h.

References learning.

Referenced by cInterface::GetKey(), and cKbdRemote::PutKey().

◆ LastActivity()

time_t cRemote::LastActivity ( void )
inlinestatic

Absolute time when last key was delivered by Get().

Definition at line 71 of file remote.h.

References lastActivity.

Referenced by main().

◆ Name()

◆ Put() [1/3]

bool cRemote::Put ( const char * Code,
bool Repeat = false,
bool Release = false )
protected

Definition at line 137 of file remote.c.

References k_Release, k_Repeat, keyPressed, Keys, kNone, learning, Name(), Put(), and unknownCode.

◆ Put() [2/3]

bool cRemote::Put ( eKeys Key,
bool AtFront = false )
static

Definition at line 83 of file remote.c.

References in, k_Release, k_Repeat, keyPressed, keys, kNone, MaxKeys, mutex, and out.

◆ Put() [3/3]

◆ PutMacro()

bool cRemote::PutMacro ( eKeys Key)
static

Definition at line 116 of file remote.c.

References keyMacroPlugin, KeyMacros, cKeyMacro::Macro(), mutex, cKeyMacro::NumKeys(), cKeyMacro::Plugin(), and Put().

Referenced by main().

◆ PutSetup()

void cRemote::PutSetup ( const char * Setup)
protected

Definition at line 57 of file remote.c.

References Keys, Name(), and Setup.

Referenced by cRcuRemote::Initialize().

◆ Ready()

virtual bool cRemote::Ready ( void )
inlinevirtual

Reimplemented in cLircRemote, and cRcuRemote.

Definition at line 45 of file remote.h.

Referenced by Initialize().

◆ SetEnabled()

void cRemote::SetEnabled ( bool Enabled)
inlinestatic

Definition at line 51 of file remote.h.

References Enabled(), and enabled.

Referenced by cSVDRPServer::CmdREMO().

◆ SetInEditMode()

void cRemote::SetInEditMode ( bool InEditMode)
inlinestatic

Definition at line 53 of file remote.h.

References InEditMode(), and inEditMode.

Referenced by cMenuEditStrItem::EnterEditMode(), and cMenuEditStrItem::LeaveEditMode().

◆ SetLearning()

void cRemote::SetLearning ( cRemote * Learning)
inlinestatic

Definition at line 48 of file remote.h.

References cRemote(), and learning.

Referenced by cInterface::LearnKeys().

◆ TriggerLastActivity()

void cRemote::TriggerLastActivity ( void )
static

Simulates user activity, for instance to keep the current menu open even if no remote control key has been pressed.

Definition at line 210 of file remote.c.

References lastActivity.

Referenced by Get(), and cMenuCam::Set().

Member Data Documentation

◆ callPlugin

const char * cRemote::callPlugin = NULL
staticprivate

Definition at line 33 of file remote.h.

Referenced by CallPlugin(), and GetPlugin().

◆ enabled

bool cRemote::enabled = true
staticprivate

Definition at line 34 of file remote.h.

Referenced by Enabled(), Get(), and SetEnabled().

◆ in

int cRemote::in = 0
staticprivate

Definition at line 24 of file remote.h.

Referenced by Clear(), Get(), HasKeys(), and Put().

◆ inEditMode

bool cRemote::inEditMode = false
staticprivate

Definition at line 35 of file remote.h.

Referenced by InEditMode(), and SetInEditMode().

◆ keyMacroPlugin

const char * cRemote::keyMacroPlugin = NULL
staticprivate

Definition at line 32 of file remote.h.

Referenced by GetPlugin(), and PutMacro().

◆ keyPressed

cCondVar cRemote::keyPressed
staticprivate

Definition at line 30 of file remote.h.

Referenced by Get(), Put(), and Put().

◆ keys

eKeys cRemote::keys
staticprivate

Definition at line 23 of file remote.h.

Referenced by Get(), HasKeys(), and Put().

◆ lastActivity

time_t cRemote::lastActivity = 0
staticprivate

Definition at line 31 of file remote.h.

Referenced by LastActivity(), and TriggerLastActivity().

◆ learning

cRemote * cRemote::learning = NULL
staticprivate

Definition at line 27 of file remote.h.

Referenced by Clear(), Get(), IsLearning(), Put(), and SetLearning().

◆ mutex

cMutex cRemote::mutex
staticprivate

Definition at line 29 of file remote.h.

Referenced by CallPlugin(), Clear(), Get(), GetPlugin(), HasKeys(), Put(), and PutMacro().

◆ name

char* cRemote::name
private

Definition at line 36 of file remote.h.

Referenced by cRemote(), Name(), and ~cRemote().

◆ out

int cRemote::out = 0
staticprivate

Definition at line 25 of file remote.h.

Referenced by Clear(), Get(), HasKeys(), and Put().

◆ repeatTimeout

cTimeMs cRemote::repeatTimeout
staticprivate

Definition at line 26 of file remote.h.

Referenced by Get().

◆ unknownCode

char * cRemote::unknownCode = NULL
staticprivate

Definition at line 28 of file remote.h.

Referenced by Clear(), Get(), and Put().


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