Implemented "Setup/OSD/Timeout requested channel info"

This commit is contained in:
Klaus Schmidinger 2006-01-04 14:45:23 +01:00
parent b1836290c9
commit 5821c26c5e
8 changed files with 45 additions and 7 deletions

View File

@ -1601,3 +1601,7 @@ J
Christian Wieninger <cwieninger@gmx.de>
for suggesting to add cMenuEditStrItem::InEditMode()
Thiemo Gehrke <tgehrke@reel-multimedia.com>
for suggesting to add a setup option to turn off the automatic timeout of the
channel display in case it was invoked by a press of the "Ok" key

View File

@ -4082,4 +4082,6 @@ Video Disk Recorder Revision History
- The "Menu" key now behaves consistently. If there is anything on the OSD, it
is closed when the "Menu" key is pressed, and if there is nothing on the OSD,
the "Menu" key opens the main menu (suggested by Luca Olivetti).
- The new option "Setup/OSD/Timeout requested channel info" can be used to turn
off the automatic timeout of the channel display in case it was invoked by
a press of the "Ok" key (suggested by Thiemo Gehrke).

4
MANUAL
View File

@ -496,6 +496,10 @@ Version 1.2
always displayed when pressing the "Ok" button in
normal viewing mode.
Timeout requested channel info = yes
Turns the automatic timeout of the channel display (when
invoked by a press of the "Ok" key) on or off.
Scroll pages = yes no = when pressing the "Down" ("Up") key while the cursor
is on the last (first) line of a list page, the
list is scrolled down (up) a single line and the cursor will

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.c 1.138 2005/09/09 15:08:59 kls Exp $
* $Id: config.c 1.139 2006/01/04 14:37:54 kls Exp $
*/
#include "config.h"
@ -250,6 +250,7 @@ cSetup::cSetup(void)
strcpy(OSDTheme, "default");
PrimaryDVB = 1;
ShowInfoOnChSwitch = 1;
TimeoutRequChInfo = 1;
MenuScrollPage = 1;
MenuScrollWrap = 0;
MarkInstantRecord = 1;
@ -408,6 +409,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "OSDTheme")) strn0cpy(OSDTheme, Value, MaxThemeName);
else if (!strcasecmp(Name, "PrimaryDVB")) PrimaryDVB = atoi(Value);
else if (!strcasecmp(Name, "ShowInfoOnChSwitch")) ShowInfoOnChSwitch = atoi(Value);
else if (!strcasecmp(Name, "TimeoutRequChInfo")) TimeoutRequChInfo = atoi(Value);
else if (!strcasecmp(Name, "MenuScrollPage")) MenuScrollPage = atoi(Value);
else if (!strcasecmp(Name, "MenuScrollWrap")) MenuScrollWrap = atoi(Value);
else if (!strcasecmp(Name, "MarkInstantRecord")) MarkInstantRecord = atoi(Value);
@ -473,6 +475,7 @@ bool cSetup::Save(void)
Store("OSDTheme", OSDTheme);
Store("PrimaryDVB", PrimaryDVB);
Store("ShowInfoOnChSwitch", ShowInfoOnChSwitch);
Store("TimeoutRequChInfo", TimeoutRequChInfo);
Store("MenuScrollPage", MenuScrollPage);
Store("MenuScrollWrap", MenuScrollWrap);
Store("MarkInstantRecord", MarkInstantRecord);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 1.236 2005/12/03 11:50:08 kls Exp $
* $Id: config.h 1.237 2006/01/04 13:41:59 kls Exp $
*/
#ifndef __CONFIG_H
@ -210,6 +210,7 @@ public:
char OSDTheme[MaxThemeName];
int PrimaryDVB;
int ShowInfoOnChSwitch;
int TimeoutRequChInfo;
int MenuScrollPage;
int MenuScrollWrap;
int MarkInstantRecord;

23
i18n.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: i18n.c 1.222 2005/12/30 15:30:59 kls Exp $
* $Id: i18n.c 1.223 2006/01/04 14:41:50 kls Exp $
*
* Translations provided by:
*
@ -2947,6 +2947,27 @@ const tI18nPhrase Phrases[] = {
"Kanaliteate näitamine",
"Info ved kanalskift",
},
{ "Setup.OSD$Timeout requested channel info",
"Angeforderte Kanalinfo schließen",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "Setup.OSD$Scroll pages",
"Seitenweise scrollen",
"Drsni meni",

6
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.383 2005/12/31 15:08:19 kls Exp $
* $Id: menu.c 1.384 2006/01/04 14:42:13 kls Exp $
*/
#include "menu.h"
@ -1988,6 +1988,7 @@ void cMenuSetupOSD::Set(void)
Add(new cMenuEditBoolItem(tr("Setup.OSD$Channel info position"), &data.ChannelInfoPos, tr("bottom"), tr("top")));
Add(new cMenuEditIntItem( tr("Setup.OSD$Channel info time (s)"), &data.ChannelInfoTime, 1, 60));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Info on channel switch"), &data.ShowInfoOnChSwitch));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Timeout requested channel info"), &data.TimeoutRequChInfo));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Scroll pages"), &data.MenuScrollPage));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Scroll wraps"), &data.MenuScrollWrap));
Add(new cMenuEditBoolItem(tr("Setup.OSD$Sort timers"), &data.SortTimers));
@ -2856,6 +2857,7 @@ cDisplayChannel::cDisplayChannel(int Number, bool Switched)
withInfo = !Switched || Setup.ShowInfoOnChSwitch;
displayChannel = Skins.Current()->DisplayChannel(withInfo);
number = 0;
timeout = Switched || Setup.TimeoutRequChInfo;
channel = Channels.GetByNumber(Number);
lastPresent = lastFollowing = NULL;
if (channel) {
@ -3039,7 +3041,7 @@ eOSState cDisplayChannel::ProcessKey(eKeys Key)
return osEnd;
}
};
if (lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) {
if (!timeout || lastTime.Elapsed() < (uint64)(Setup.ChannelInfoTime * 1000)) {
if (!number && group < 0 && channel && channel->Number() != cDevice::CurrentChannel())
Refresh(); // makes sure a channel switch through the SVDRP CHAN command is displayed
DisplayInfo();

3
menu.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.h 1.79 2005/12/28 12:32:51 kls Exp $
* $Id: menu.h 1.80 2006/01/04 13:47:00 kls Exp $
*/
#ifndef __MENU_H
@ -78,6 +78,7 @@ private:
bool withInfo;
cTimeMs lastTime;
int number;
bool timeout;
cChannel *channel;
const cEvent *lastPresent;
const cEvent *lastFollowing;