From c2938c7ef3942b281ac1fc3dc5975e18ac397559 Mon Sep 17 00:00:00 2001 From: Johns Date: Fri, 9 Mar 2012 12:08:56 +0100 Subject: [PATCH] Wakeup display to show OSD for remote learning. --- ChangeLog | 1 + Todo | 3 +-- softhddev.c | 12 ++++++++++++ softhddevice.cpp | 28 +++++++++++++++++++++++++--- 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);