summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--Todo3
-rw-r--r--softhddev.c12
-rw-r--r--softhddevice.cpp28
4 files changed, 39 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 0695782..f4de4ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
User johns
Date:
+ Wakeup display to show OSD for remote learning mode.
Support switching the primary device with svdrp.
Disable and reenable screen saver and DPMS.
Video source code cleanup.
diff --git a/Todo b/Todo
index 1caf468..f2566cd 100644
--- a/Todo
+++ b/Todo
@@ -26,8 +26,7 @@ missing:
Option deinterlace off / deinterlace force!
ColorSpace aren't configurable with the gui.
Replay of old vdr 1.6 recordings.
- Remote learning support.
- restart vdr not working, when started x11 was killed.
+ works for me: restart vdr not working, when started x11 was killed.
crash:
AudioPlayHandlerThread -> pthread_cond_wait
diff --git a/softhddev.c b/softhddev.c
index ff44b8c..db9c4c9 100644
--- a/softhddev.c
+++ b/softhddev.c
@@ -2029,6 +2029,10 @@ int Flush(int timeout)
/**
** Get OSD size and aspect.
+**
+** @param width[OUT] width of OSD
+** @param height[OUT] height of OSD
+** @param aspect[OUT] aspect ratio (4/3, 16/9, ...) of OSD
*/
void GetOsdSize(int *width, int *height, double *aspect)
{
@@ -2060,9 +2064,17 @@ void OsdClose(void)
/**
** Draw an OSD pixmap.
+**
+** @param x x-coordinate on screen of argb image
+** @param y y-coordinate on screen of argb image
+** @paran height height in pixel of argb image
+** @paran width width in pixel of argb image
+** @param argb height * width 32bit ARGB image data
*/
void OsdDrawARGB(int x, int y, int height, int width, const uint8_t * argb)
{
+ // wakeup display for showing remote learning dialog
+ VideoDisplayWakeup();
VideoOsdDrawARGB(x, y, height, width, argb);
}
diff --git a/softhddevice.cpp b/softhddevice.cpp
index 9d498a8..8683d15 100644
--- a/softhddevice.cpp
+++ b/softhddevice.cpp
@@ -114,18 +114,42 @@ static char SuspendMode; ///< suspend mode
// C Callbacks
//////////////////////////////////////////////////////////////////////////////
+/**
+** Soft device plugin remote class.
+*/
class cSoftRemote:public cRemote
{
public:
+
+ /**
+ ** Soft device remote class constructor.
+ **
+ ** @param name remote name
+ */
cSoftRemote(const char *name):cRemote(name)
{
}
+ /**
+ ** Put keycode into vdr event queue.
+ **
+ ** @param code key code
+ ** @param repeat flag key repeated
+ ** @param release flag key released
+ */
bool Put(const char *code, bool repeat = false, bool release = false) {
return cRemote::Put(code, repeat, release);
}
};
+/**
+** Feed key press as remote input (called from C part).
+**
+** @param keymap target keymap "XKeymap" name
+** @param key pressed/released key name
+** @param repeat repeated key flag
+** @param release released key flag
+*/
extern "C" void FeedKeyPress(const char *keymap, const char *key, int repeat,
int release)
{
@@ -141,7 +165,7 @@ extern "C" void FeedKeyPress(const char *keymap, const char *key, int repeat,
break;
}
}
-
+ // if remote not already exists, create it
if (remote) {
csoft = (cSoftRemote *) remote;
} else {
@@ -167,8 +191,6 @@ extern "C" void FeedKeyPress(const char *keymap, const char *key, int repeat,
*/
class cSoftOsd:public cOsd
{
- //int Level; ///< level: subtitle
-
public:
cSoftOsd(int, int, uint);
virtual ~ cSoftOsd(void);