mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Add support for umlauts in input fields.
This commit is contained in:
parent
aee9bbed90
commit
978fc59aba
@ -1,6 +1,7 @@
|
||||
User johns
|
||||
Date:
|
||||
|
||||
Add support for umlauts in input fields.
|
||||
Fix compile error with VDR 2.1.3.
|
||||
Fix bug: memory leak.
|
||||
PIP close clears the last used PIP channel.
|
||||
|
@ -1,7 +1,7 @@
|
||||
///
|
||||
/// @file softhddev.h @brief software HD device plugin header file.
|
||||
///
|
||||
/// Copyright (c) 2011 - 2013 by Johns. All Rights Reserved.
|
||||
/// Copyright (c) 2011 - 2014 by Johns. All Rights Reserved.
|
||||
///
|
||||
/// Contributor(s):
|
||||
///
|
||||
@ -25,7 +25,8 @@ extern "C"
|
||||
{
|
||||
#endif
|
||||
/// C callback feed key press
|
||||
extern void FeedKeyPress(const char *, const char *, int, int);
|
||||
extern void FeedKeyPress(const char *, const char *, int, int,
|
||||
const char *);
|
||||
|
||||
/// C plugin get osd size and ascpect
|
||||
extern void GetOsdSize(int *, int *, double *);
|
||||
|
@ -212,9 +212,10 @@ class cSoftRemote:public cRemote
|
||||
** @param key pressed/released key name
|
||||
** @param repeat repeated key flag
|
||||
** @param release released key flag
|
||||
** @param letter x11 character string (system setting locale)
|
||||
*/
|
||||
extern "C" void FeedKeyPress(const char *keymap, const char *key, int repeat,
|
||||
int release)
|
||||
int release, const char *letter)
|
||||
{
|
||||
cRemote *remote;
|
||||
cSoftRemote *csoft;
|
||||
@ -237,9 +238,17 @@ extern "C" void FeedKeyPress(const char *keymap, const char *key, int repeat,
|
||||
csoft = new cSoftRemote(keymap);
|
||||
}
|
||||
|
||||
//dsyslog("[softhddev]%s %s, %s\n", __FUNCTION__, keymap, key);
|
||||
//dsyslog("[softhddev]%s %s, %s, %s\n", __FUNCTION__, keymap, key, letter);
|
||||
if (key[1]) { // no single character
|
||||
csoft->Put(key, repeat, release);
|
||||
if (!csoft->Put(key, repeat, release) && letter) {
|
||||
cCharSetConv conv;
|
||||
unsigned code;
|
||||
|
||||
code = Utf8CharGet(conv.Convert(letter));
|
||||
if (code <= 0xFF) {
|
||||
cRemote::Put(KBDKEY(code)); // feed it for edit mode
|
||||
}
|
||||
}
|
||||
} else if (!csoft->Put(key, repeat, release)) {
|
||||
cRemote::Put(KBDKEY(key[0])); // feed it for edit mode
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
///
|
||||
/// @file softhddevice.h @brief software HD device plugin header file.
|
||||
///
|
||||
/// Copyright (c) 2011 by Johns. All Rights Reserved.
|
||||
/// Copyright (c) 2011, 2014 by Johns. All Rights Reserved.
|
||||
///
|
||||
/// Contributor(s):
|
||||
///
|
||||
|
14
video.c
14
video.c
@ -1,7 +1,7 @@
|
||||
///
|
||||
/// @file video.c @brief Video module
|
||||
///
|
||||
/// Copyright (c) 2009 - 2013 by Johns. All Rights Reserved.
|
||||
/// Copyright (c) 2009 - 2014 by Johns. All Rights Reserved.
|
||||
///
|
||||
/// Contributor(s):
|
||||
///
|
||||
@ -9526,7 +9526,7 @@ void VideoOsdExit(void)
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
/// C callback feed key press
|
||||
extern void FeedKeyPress(const char *, const char *, int, int);
|
||||
extern void FeedKeyPress(const char *, const char *, int, int, const char *);
|
||||
|
||||
///
|
||||
/// Handle XLib I/O Errors.
|
||||
@ -9570,6 +9570,7 @@ static void VideoEvent(void)
|
||||
KeySym keysym;
|
||||
const char *keynam;
|
||||
char buf[64];
|
||||
char letter[64];
|
||||
uint32_t values[1];
|
||||
|
||||
VideoThreadLock();
|
||||
@ -9580,7 +9581,7 @@ static void VideoEvent(void)
|
||||
Debug(3, "video/event: ClientMessage\n");
|
||||
if (event.xclient.data.l[0] == (long)WmDeleteWindowAtom) {
|
||||
Debug(3, "video/event: wm-delete-message\n");
|
||||
FeedKeyPress("XKeySym", "Close", 0, 0);
|
||||
FeedKeyPress("XKeySym", "Close", 0, 0, NULL);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -9609,7 +9610,7 @@ static void VideoEvent(void)
|
||||
break;
|
||||
case KeyPress:
|
||||
VideoThreadLock();
|
||||
XLookupString(&event.xkey, buf, sizeof(buf), &keysym, NULL);
|
||||
XLookupString(&event.xkey, letter, sizeof(letter), &keysym, NULL);
|
||||
VideoThreadUnlock();
|
||||
if (keysym == NoSymbol) {
|
||||
Warning(_("video/event: No symbol for %d\n"),
|
||||
@ -9632,7 +9633,7 @@ static void VideoEvent(void)
|
||||
strncat(buf, keynam, sizeof(buf) - 10);
|
||||
keynam = buf;
|
||||
}
|
||||
FeedKeyPress("XKeySym", keynam, 0, 0);
|
||||
FeedKeyPress("XKeySym", keynam, 0, 0, letter);
|
||||
break;
|
||||
case KeyRelease:
|
||||
break;
|
||||
@ -11289,7 +11290,8 @@ void FeedKeyPress( __attribute__ ((unused))
|
||||
const char *x, __attribute__ ((unused))
|
||||
const char *y, __attribute__ ((unused))
|
||||
int a, __attribute__ ((unused))
|
||||
int b)
|
||||
int b, __attribute__ ((unused))
|
||||
const char *s)
|
||||
{
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user