mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Keys from expanded key macros are now put into the front of the key queue
This commit is contained in:
parent
7bed3fd6ba
commit
93d2941ebe
@ -1829,6 +1829,8 @@ Petri Hintukainen <Petri.Hintukainen@hut.fi>
|
|||||||
pointer
|
pointer
|
||||||
for fixing displaying the error log message in case an unknown plugin was requested
|
for fixing displaying the error log message in case an unknown plugin was requested
|
||||||
in a key macro
|
in a key macro
|
||||||
|
for pointing out that keys from expanded key macros should be put into the front of
|
||||||
|
the key queue to avoid problems if the queue is not empty at that time
|
||||||
|
|
||||||
Marcel Schaeben <mts280@gmx.de>
|
Marcel Schaeben <mts280@gmx.de>
|
||||||
for his "Easy Input" patch
|
for his "Easy Input" patch
|
||||||
|
4
HISTORY
4
HISTORY
@ -4960,3 +4960,7 @@ Video Disk Recorder Revision History
|
|||||||
pointer (thanks to Petri Hintukainen).
|
pointer (thanks to Petri Hintukainen).
|
||||||
- Fixed displaying the error log message in case an unknown plugin was requested
|
- Fixed displaying the error log message in case an unknown plugin was requested
|
||||||
in a key macro (thanks to Petri Hintukainen).
|
in a key macro (thanks to Petri Hintukainen).
|
||||||
|
- Keys from expanded key macros are now put into the front of the key queue to
|
||||||
|
avoid problems if the queue is not empty at that time (based on a patch from
|
||||||
|
Petri Hintukainen).
|
||||||
|
- cKeyMacro now has an explicit counter for the number of keys it contains.
|
||||||
|
6
config.h
6
config.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: config.h 1.273 2006/10/09 16:12:33 kls Exp $
|
* $Id: config.h 1.274 2006/10/14 10:28:38 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CONFIG_H
|
#ifndef __CONFIG_H
|
||||||
@ -26,8 +26,8 @@
|
|||||||
|
|
||||||
// The plugin API's version number:
|
// The plugin API's version number:
|
||||||
|
|
||||||
#define APIVERSION "1.4.3"
|
#define APIVERSION "1.4.4"
|
||||||
#define APIVERSNUM 10403 // Version * 10000 + Major * 100 + Minor
|
#define APIVERSNUM 10404 // Version * 10000 + Major * 100 + Minor
|
||||||
|
|
||||||
// When loading plugins, VDR searches them by their APIVERSION, which
|
// When loading plugins, VDR searches them by their APIVERSION, which
|
||||||
// may be smaller than VDRVERSION in case there have been no changes to
|
// may be smaller than VDRVERSION in case there have been no changes to
|
||||||
|
11
keys.c
11
keys.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: keys.c 1.13 2006/04/15 13:50:43 kls Exp $
|
* $Id: keys.c 1.14 2006/10/14 10:18:05 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "keys.h"
|
#include "keys.h"
|
||||||
@ -186,8 +186,9 @@ void cKeys::PutSetup(const char *Remote, const char *Setup)
|
|||||||
|
|
||||||
cKeyMacro::cKeyMacro(void)
|
cKeyMacro::cKeyMacro(void)
|
||||||
{
|
{
|
||||||
|
numKeys = 0;
|
||||||
for (int i = 0; i < MAXKEYSINMACRO; i++)
|
for (int i = 0; i < MAXKEYSINMACRO; i++)
|
||||||
macro[i] = kNone;
|
macro[i] = kNone; // for compatibility with old code that doesn't know about NumKeys()
|
||||||
plugin = NULL;
|
plugin = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,9 +242,9 @@ bool cKeyMacro::Parse(char *s)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (n < 2) {
|
if (n < 2)
|
||||||
esyslog("ERROR: empty key macro");
|
esyslog("ERROR: empty key macro"); // non fatal
|
||||||
}
|
numKeys = n;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
7
keys.h
7
keys.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: keys.h 1.9 2006/04/15 13:56:03 kls Exp $
|
* $Id: keys.h 1.10 2006/10/14 10:41:20 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __KEYS_H
|
#ifndef __KEYS_H
|
||||||
@ -117,11 +117,16 @@ extern cKeys Keys;
|
|||||||
class cKeyMacro : public cListObject {
|
class cKeyMacro : public cListObject {
|
||||||
private:
|
private:
|
||||||
eKeys macro[MAXKEYSINMACRO];
|
eKeys macro[MAXKEYSINMACRO];
|
||||||
|
int numKeys;
|
||||||
char *plugin;
|
char *plugin;
|
||||||
public:
|
public:
|
||||||
cKeyMacro(void);
|
cKeyMacro(void);
|
||||||
~cKeyMacro();
|
~cKeyMacro();
|
||||||
bool Parse(char *s);
|
bool Parse(char *s);
|
||||||
|
int NumKeys(void) const { return numKeys; }
|
||||||
|
///< Returns the number of keys in this macro. The first key (with
|
||||||
|
///< index 0) is the macro code. The actual macro expansion codes
|
||||||
|
///< start at index 1 and go to NumKeys() - 1.
|
||||||
const eKeys *Macro(void) const { return macro; }
|
const eKeys *Macro(void) const { return macro; }
|
||||||
const char *Plugin(void) const { return plugin; }
|
const char *Plugin(void) const { return plugin; }
|
||||||
};
|
};
|
||||||
|
12
remote.c
12
remote.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: remote.c 1.51 2006/05/12 12:40:15 kls Exp $
|
* $Id: remote.c 1.52 2006/10/14 10:24:13 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "remote.h"
|
#include "remote.h"
|
||||||
@ -106,13 +106,9 @@ bool cRemote::PutMacro(eKeys Key)
|
|||||||
const cKeyMacro *km = KeyMacros.Get(Key);
|
const cKeyMacro *km = KeyMacros.Get(Key);
|
||||||
if (km) {
|
if (km) {
|
||||||
plugin = km->Plugin();
|
plugin = km->Plugin();
|
||||||
for (int i = 1; i < MAXKEYSINMACRO; i++) {
|
for (int i = km->NumKeys(); --i > 0; ) {
|
||||||
if (km->Macro()[i] != kNone) {
|
if (!Put(km->Macro()[i], true))
|
||||||
if (!Put(km->Macro()[i]))
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user