mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
The LIRC and RCU remote control no longer try to learn keys in case of errors during startup
This commit is contained in:
parent
bd23375248
commit
f20648eab2
@ -581,6 +581,8 @@ Malcolm Caldwell <malcolm.caldwell@ntu.edu.au>
|
||||
Ludwig Nussel <ludwig.nussel@web.de>
|
||||
for making the LIRC thread avoid high CPU load in case the connection to LIRC gets lost
|
||||
for fixing handling repeat function with LIRC
|
||||
for reporting a problem with the LIRC remote control trying to learn keys even if it
|
||||
couldn't connect to the LIRC daemon
|
||||
|
||||
Thomas Koch <tom@harhar.net>
|
||||
for his support in keeping the Premiere World channels up to date in 'channels.conf'
|
||||
|
3
HISTORY
3
HISTORY
@ -2028,3 +2028,6 @@ Video Disk Recorder Revision History
|
||||
- Updated 'channels.conf.cable' (thanks to Stefan Hußfeldt).
|
||||
- The 'epg.data' file is now read after all plugins have been started (thanks
|
||||
to Sascha Volkenandt).
|
||||
- The LIRC remote control no longer tries to learn keys if it can't connect to
|
||||
the LIRC daemon (thanks to Ludwig Nussel for reporting this one). The same
|
||||
applies to the RCU remote control in case of errors during startup.
|
||||
|
35
PLUGINS.html
35
PLUGINS.html
@ -21,18 +21,18 @@ VDR program and present itself to the user.
|
||||
The <i>internal</i> interface provides the plugin code access to VDR's internal data
|
||||
structures and allows it to hook itself into specific areas to perform special actions.
|
||||
<p>
|
||||
<!--X1.1.13--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||
Important modifications introduced in version 1.1.13 are marked like this.
|
||||
<!--X1.1.13--></td></tr></table>
|
||||
<!--X1.1.14--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||
<!--X1.1.14--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||
Important modifications introduced in version 1.1.14 are marked like this.
|
||||
<!--X1.1.14--></td></tr></table>
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||
Important modifications introduced in version 1.1.15 are marked like this.
|
||||
<!--X1.1.15--></td></tr></table>
|
||||
<!--X1.1.17--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||
<!--X1.1.17--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||
Important modifications introduced in version 1.1.17 are marked like this.
|
||||
<!--X1.1.17--></td></tr></table>
|
||||
<!--X1.1.27--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||
Important modifications introduced in version 1.1.27 are marked like this.
|
||||
<!--X1.1.27--></td></tr></table>
|
||||
|
||||
<hr>
|
||||
<h1>Table Of Contents</h1>
|
||||
@ -506,7 +506,7 @@ in the call to VDR.
|
||||
|
||||
If the user selects the main menu entry of a plugin, VDR calls the function
|
||||
|
||||
<!--X1.1.17--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||
<!--X1.1.17--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||
<p><table><tr><td bgcolor=#F0F0F0><pre><br>
|
||||
virtual cOsdObject *MainMenuAction(void);
|
||||
</pre></td></tr></table><p>
|
||||
@ -1011,7 +1011,6 @@ bool DevicePoll(cPoller &Poller, int TimeoutMs = 0);
|
||||
</pre></td></tr></table><p>
|
||||
|
||||
to determine whether the device is ready for further data.
|
||||
<!--X1.1.13--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||
<p>
|
||||
If the player can provide more than a single audio track, it can implement the
|
||||
following functions to make them available:
|
||||
@ -1022,9 +1021,8 @@ virtual const char **GetAudioTracks(int *CurrentTrack = NULL);
|
||||
virtual void SetAudioTrack(int Index);
|
||||
</pre></td></tr></table><p>
|
||||
|
||||
<!--X1.1.13--></td></tr></table>
|
||||
<p>
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||
If there is an additional audio track that has to be replayed with external hardware,
|
||||
the player shall call its member function
|
||||
|
||||
@ -1260,7 +1258,6 @@ virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
||||
These functions will be called with the desired source or channel and shall return whether
|
||||
this device can provide the requested source or channel and whether tuning to it was successful,
|
||||
repectively.
|
||||
<!--X1.1.13--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||
<p>
|
||||
<b>Audio selection</b>
|
||||
<p>
|
||||
@ -1273,7 +1270,6 @@ virtual const char **GetAudioTracksDevice(int *CurrentTrack = NULL) const;
|
||||
virtual void SetAudioTrackDevice(int Index);
|
||||
</pre></td></tr></table><p>
|
||||
|
||||
<!--X1.1.13--></td></tr></table>
|
||||
<p>
|
||||
<b>Recording</b>
|
||||
<p>
|
||||
@ -1307,7 +1303,7 @@ The functions to implement replaying capabilites are
|
||||
|
||||
<p><table><tr><td bgcolor=#F0F0F0><pre><br>
|
||||
virtual bool HasDecoder(void) const;
|
||||
<!--X1.1.14--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||
<!--X1.1.14--><table width=100%><tr><td bgcolor=#0000AA> </td><td width=100%>
|
||||
virtual bool CanReplay(void) const;
|
||||
<!--X1.1.14--></td></tr></table>
|
||||
virtual bool SetPlayMode(ePlayMode PlayMode);
|
||||
@ -1369,7 +1365,7 @@ shut down (delete) all devices when the program terminates. It is therefore
|
||||
important that the devices are created on the heap, using the <tt>new</tt>
|
||||
operator!
|
||||
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#AA0000> </td><td width=100%>
|
||||
<!--X1.1.15--><table width=100%><tr><td bgcolor=#00AA00> </td><td width=100%>
|
||||
<a name="Dolby Digital"><hr><h2>Dolby Digital</h2>
|
||||
|
||||
<center><i><b>"The stereo effect may only be experienced if stereo equipment is used!"</b></i></center><p>
|
||||
@ -1480,6 +1476,17 @@ the incoming data (by calling your <tt>Action()</tt> function).
|
||||
In case you need to do any other setup steps, like opening a file or initializing
|
||||
member variables, you should do so before calling <tt>Start()</tt>.
|
||||
<p>
|
||||
<!--X1.1.27--><table width=100%><tr><td bgcolor=#FF0000> </td><td width=100%>
|
||||
If your remote control for some reason can't work (maybe because it was unable to
|
||||
open some file handle it requires) it can implement the virtual function
|
||||
|
||||
<p><table><tr><td bgcolor=#F0F0F0><pre><br>
|
||||
virtual bool Ready(void);
|
||||
</pre></td></tr></table><p>
|
||||
|
||||
and have it return <i>false</i>. In that case VDR will not try to learn keys from
|
||||
that remote control.
|
||||
<!--X1.1.27--></td></tr></table>
|
||||
VDR will handle everything necessary to learn the key mappings of your remote
|
||||
control. In order to do so, it will first call the virtual function <tt>Initialize()</tt>,
|
||||
in which you should take all necessary steps to make sure your remote control
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: interface.c 1.62 2003/04/06 12:47:51 kls Exp $
|
||||
* $Id: interface.c 1.63 2003/04/12 14:17:49 kls Exp $
|
||||
*/
|
||||
|
||||
#include "interface.h"
|
||||
@ -411,6 +411,10 @@ void cInterface::QueryKeys(cRemote *Remote)
|
||||
void cInterface::LearnKeys(void)
|
||||
{
|
||||
for (cRemote *Remote = Remotes.First(); Remote; Remote = Remotes.Next(Remote)) {
|
||||
if (!Remote->Ready()) {
|
||||
esyslog("ERROR: remote control %s not ready!", Remote->Name());
|
||||
continue;
|
||||
}
|
||||
bool known = Keys.KnowsRemote(Remote->Name());
|
||||
dsyslog("remote control %s - %s", Remote->Name(), known ? "keys known" : "learning keys");
|
||||
if (!known) {
|
||||
|
7
lirc.c
7
lirc.c
@ -6,7 +6,7 @@
|
||||
*
|
||||
* LIRC support added by Carsten Koch <Carsten.Koch@icem.de> 2000-06-16.
|
||||
*
|
||||
* $Id: lirc.c 1.3 2003/04/06 15:45:10 kls Exp $
|
||||
* $Id: lirc.c 1.4 2003/04/12 14:37:17 kls Exp $
|
||||
*/
|
||||
|
||||
#include "lirc.h"
|
||||
@ -41,6 +41,11 @@ cLircRemote::~cLircRemote()
|
||||
Cancel();
|
||||
}
|
||||
|
||||
bool cLircRemote::Ready(void)
|
||||
{
|
||||
return f >= 0;
|
||||
}
|
||||
|
||||
void cLircRemote::Action(void)
|
||||
{
|
||||
dsyslog("LIRC remote control thread started (pid=%d)", getpid());
|
||||
|
3
lirc.h
3
lirc.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: lirc.h 1.1 2002/09/28 14:11:04 kls Exp $
|
||||
* $Id: lirc.h 1.2 2003/04/12 14:15:20 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __LIRC_H
|
||||
@ -21,6 +21,7 @@ private:
|
||||
public:
|
||||
cLircRemote(char *DeviceName);
|
||||
virtual ~cLircRemote();
|
||||
virtual bool Ready(void);
|
||||
};
|
||||
|
||||
#endif //__LIRC_H
|
||||
|
7
rcu.c
7
rcu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: rcu.c 1.3 2002/12/07 12:22:40 kls Exp $
|
||||
* $Id: rcu.c 1.4 2003/04/12 14:37:13 kls Exp $
|
||||
*/
|
||||
|
||||
#include "rcu.h"
|
||||
@ -55,6 +55,11 @@ cRcuRemote::~cRcuRemote()
|
||||
Cancel();
|
||||
}
|
||||
|
||||
bool cRcuRemote::Ready(void)
|
||||
{
|
||||
return f >= 0;
|
||||
}
|
||||
|
||||
bool cRcuRemote::Initialize(void)
|
||||
{
|
||||
if (f >= 0) {
|
||||
|
3
rcu.h
3
rcu.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: rcu.h 1.2 2002/12/07 12:21:25 kls Exp $
|
||||
* $Id: rcu.h 1.3 2003/04/12 14:36:09 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __RCU_H
|
||||
@ -39,6 +39,7 @@ private:
|
||||
public:
|
||||
cRcuRemote(char *DeviceName);
|
||||
virtual ~cRcuRemote();
|
||||
virtual bool Ready(void);
|
||||
virtual bool Initialize(void);
|
||||
};
|
||||
|
||||
|
3
remote.h
3
remote.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remote.h 1.24 2002/12/15 15:49:06 kls Exp $
|
||||
* $Id: remote.h 1.25 2003/04/12 14:14:49 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __REMOTE_H
|
||||
@ -37,6 +37,7 @@ protected:
|
||||
bool Put(const char *Code, bool Repeat = false, bool Release = false);
|
||||
public:
|
||||
virtual ~cRemote();
|
||||
virtual bool Ready(void) { return true; }
|
||||
virtual bool Initialize(void) { return true; }
|
||||
const char *Name(void) { return name; }
|
||||
static void SetLearning(cRemote *Learning) { learning = Learning; }
|
||||
|
Loading…
Reference in New Issue
Block a user