cRemote Class Reference

#include <remote.h>

Inheritance diagram for cRemote:

Inheritance graph
[legend]
Collaboration diagram for cRemote:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~cRemote ()
virtual bool Ready (void)
virtual bool Initialize (void)
const char * Name (void)

Static Public Member Functions

static void SetLearning (cRemote *Learning)
static bool IsLearning ()
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)

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 const char * keyMacroPlugin = NULL
static const char * callPlugin = NULL


Detailed Description

Definition at line 20 of file remote.h.


Member Enumeration Documentation

anonymous enum [private]

Enumerator:
MaxKeys 

Definition at line 22 of file remote.h.


Constructor & Destructor Documentation

cRemote::cRemote ( const char *  Name  )  [protected]

Definition at line 35 of file remote.c.

References cListBase::Add(), name, and Remotes.

Here is the call graph for this function:

cRemote::~cRemote (  )  [virtual]

Definition at line 41 of file remote.c.

References name.


Member Function Documentation

const char * cRemote::GetSetup ( void   )  [protected]

Definition at line 46 of file remote.c.

References cKeys::GetSetup(), Keys, and Name().

Referenced by cRcuRemote::cRcuRemote().

Here is the call graph for this function:

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

Definition at line 51 of file remote.c.

References Keys, Name(), and cKeys::PutSetup().

Referenced by cRcuRemote::Initialize().

Here is the call graph for this function:

bool cRemote::Put ( uint64_t  Code,
bool  Repeat = false,
bool  Release = false 
) [protected]

Definition at line 119 of file remote.c.

Referenced by cKbdRemote::Action(), cRcuRemote::Action(), cLircRemote::Action(), CallPlugin(), cSVDRP::CmdHITK(), cOsdMenu::HotKey(), main(), cDisplayVolume::ProcessKey(), cDisplayChannel::ProcessKey(), cMenuMain::ProcessKey(), cMenuRecording::ProcessKey(), Put(), PutMacro(), and cInterface::Wait().

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

Definition at line 126 of file remote.c.

References cCondVar::Broadcast(), cKeys::Get(), k_Release, k_Repeat, keyPressed, Keys, kNone, learning, Name(), Put(), and unknownCode.

Here is the call graph for this function:

virtual bool cRemote::Ready ( void   )  [inline, virtual]

Reimplemented in cLircRemote, and cRcuRemote.

Definition at line 42 of file remote.h.

Referenced by Initialize().

bool cRemote::Initialize ( void   )  [virtual]

Reimplemented in cRcuRemote.

Definition at line 56 of file remote.c.

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

Referenced by cInterface::QueryKeys().

Here is the call graph for this function:

const char* cRemote::Name ( void   )  [inline]

Definition at line 44 of file remote.h.

References name.

Referenced by cRcuRemote::cRcuRemote(), GetSetup(), cRcuRemote::Initialize(), Put(), PutSetup(), and cInterface::QueryKeys().

static void cRemote::SetLearning ( cRemote Learning  )  [inline, static]

Definition at line 45 of file remote.h.

References learning.

Referenced by cInterface::LearnKeys().

static bool cRemote::IsLearning (  )  [inline, static]

Definition at line 46 of file remote.h.

References learning.

Referenced by cInterface::GetKey().

void cRemote::Clear ( void   )  [static]

Definition at line 67 of file remote.c.

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

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

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

Definition at line 77 of file remote.c.

References cCondVar::Broadcast(), Clear(), in, k_Release, k_Repeat, keyPressed, keys, kNone, MaxKeys, mutex, and out.

Here is the call graph for this function:

bool cRemote::PutMacro ( eKeys  Key  )  [static]

Definition at line 105 of file remote.c.

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

Referenced by main().

Here is the call graph for this function:

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 146 of file remote.c.

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

Referenced by cSVDRP::CmdPLUG().

Here is the call graph for this function:

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 157 of file remote.c.

References callPlugin, keyMacroPlugin, and mutex.

Referenced by main().

bool cRemote::HasKeys ( void   )  [static]

Definition at line 170 of file remote.c.

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

Referenced by cInterface::GetKey(), and cTimers::SetEvents().

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

Definition at line 176 of file remote.c.

References in, k_Repeat, keyPressed, keys, kNone, learning, MaxKeys, mutex, out, REPEATTIMEOUT, repeatTimeout, cTimeMs::Set(), cTimeMs::TimedOut(), cCondVar::TimedWait(), and unknownCode.

Referenced by cInterface::GetKey(), Initialize(), and cInterface::QueryKeys().

Here is the call graph for this function:


Member Data Documentation

eKeys cRemote::keys [static, private]

Definition at line 23 of file remote.h.

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

int cRemote::in = 0 [static, private]

Definition at line 24 of file remote.h.

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

int cRemote::out = 0 [static, private]

Definition at line 25 of file remote.h.

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

cTimeMs cRemote::repeatTimeout [static, private]

Definition at line 26 of file remote.h.

Referenced by Get().

cRemote * cRemote::learning = NULL [static, private]

Definition at line 27 of file remote.h.

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

char * cRemote::unknownCode = NULL [static, private]

Definition at line 28 of file remote.h.

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

cMutex cRemote::mutex [static, private]

Definition at line 29 of file remote.h.

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

cCondVar cRemote::keyPressed [static, private]

Definition at line 30 of file remote.h.

Referenced by Get(), and Put().

const char * cRemote::keyMacroPlugin = NULL [static, private]

Definition at line 31 of file remote.h.

Referenced by GetPlugin(), and PutMacro().

const char * cRemote::callPlugin = NULL [static, private]

Definition at line 32 of file remote.h.

Referenced by CallPlugin(), and GetPlugin().

char* cRemote::name [private]

Definition at line 33 of file remote.h.

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


The documentation for this class was generated from the following files:
Generated on Tue Nov 6 20:24:17 2007 for VDR by  doxygen 1.5.3-20071008