diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d3921311..e0b92d02 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -184,7 +184,7 @@ Stefan Huelswitt for creating mutexes with PTHREAD_MUTEX_ERRORCHECK_NP, which made the 'lockingTid' stuff obsolete for suggesting to move the declaration of cMenuText to VDR/menu.h to make it - available to plugins + available to plugins, and to add a SetText() function Ulrich Röder for pointing out that there are channels that have a symbol rate higher than diff --git a/HISTORY b/HISTORY index 7c0b73da..f8da9863 100644 --- a/HISTORY +++ b/HISTORY @@ -2827,5 +2827,6 @@ Video Disk Recorder Revision History 'Transfer Mode' (thanks to Michal Dobrzynski for reporting this one). - Fixed a memory leak in NIT processing (thanks to Marcel Wiesweg). - Added a few missing initializations (thanks to Marcel Wiesweg). -- Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins - (suggested by Stefan Huelswitt). +- Moved the declaration of cMenuText to VDR/menu.h to make it available to plugins. + It now also has a SetText() function that can be used to dynamically set the text + in an already existing cMenuText (both suggested by Stefan Huelswitt). diff --git a/menu.c b/menu.c index 3c86c193..be4227e7 100644 --- a/menu.c +++ b/menu.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.c 1.303 2004/05/23 09:39:09 kls Exp $ + * $Id: menu.c 1.304 2004/05/23 09:47:14 kls Exp $ */ #include "menu.h" @@ -502,7 +502,19 @@ eOSState cMenuChannels::ProcessKey(eKeys Key) cMenuText::cMenuText(const char *Title, const char *Text, eDvbFont Font) :cOsdMenu(Title) { - text = Text; + text = NULL; + SetText(Text); +} + +cMenuText::~cMenuText() +{ + free(text); +} + +void cMenuText::SetText(const char *Text) +{ + free(text); + text = strdup(Text); } void cMenuText::Display(void) diff --git a/menu.h b/menu.h index 64bd0f95..150f88de 100644 --- a/menu.h +++ b/menu.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menu.h 1.62 2004/05/23 09:39:02 kls Exp $ + * $Id: menu.h 1.63 2004/05/23 09:47:26 kls Exp $ */ #ifndef __MENU_H @@ -21,9 +21,11 @@ class cMenuText : public cOsdMenu { private: - const char *text; + char *text; public: cMenuText(const char *Title, const char *Text, eDvbFont Font = fontOsd); + virtual ~cMenuText(); + void SetText(const char *Text); virtual void Display(void); virtual eOSState ProcessKey(eKeys Key); };