summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2001-02-03 14:35:28 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2001-02-03 14:35:28 +0100
commitcaa96c00eaecd5f0c67f0575468dd088f2c8ee1e (patch)
tree5f016c95da5f294fa54ee6cb467ae9aeb3460302
parentb79ccf22921a93ee79d844e9f777ce5d6bf5ee3c (diff)
downloadvdr-caa96c00eaecd5f0c67f0575468dd088f2c8ee1e.tar.gz
vdr-caa96c00eaecd5f0c67f0575468dd088f2c8ee1e.tar.bz2
Implemented page up/down with 'Left'/'Right'
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY5
-rw-r--r--MANUAL4
-rw-r--r--menu.c12
-rw-r--r--osd.c36
-rw-r--r--osd.h4
6 files changed, 54 insertions, 8 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index ee44ada6..d9a1d4bf 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -34,6 +34,7 @@ Niels de Carpentier <niels@casema.net>
Martin Hammerschmid <martin@hammerschmid.com>
for suggesting to display the direct channel select input on the OSD
for suggesting to use the "Blue" button in the main menu to resume replay
+ for implementing pege up/down with the "Left" and "Right" keys
Bastian Guse <bastian@nocopy.de>
for writing the FORMATS entry for timers.conf
diff --git a/HISTORY b/HISTORY
index 82327f43..39681c74 100644
--- a/HISTORY
+++ b/HISTORY
@@ -350,7 +350,7 @@ Video Disk Recorder Revision History
- Encrypted channels can now be selected even without knowing the PNR (however, it
is still necessary for the EPG info).
-2001-02-02: Version 0.71
+2001-02-03: Version 0.71
- Fixed 'Transfer Mode' in cases where a non-primary interface was switched to
a channel that only the primary interface can receive (which could happen in
@@ -364,3 +364,6 @@ Video Disk Recorder Revision History
exclusively via SVDRP).
- The new command line option -D can be used to define which DVB interfaces
a certain instance of VDR shall use.
+- The "Left" and "Right" keys are now used to page up and down in lists (thanks
+ to Martin Hammerschmid). Since the "Timers" menu already uses these keys to
+ (de)activate timers, this functionality is not available here.
diff --git a/MANUAL b/MANUAL
index b0e9abe0..b4d169ee 100644
--- a/MANUAL
+++ b/MANUAL
@@ -12,8 +12,8 @@ Video Disk Recorder User's Manual
Up Ch up Crsr up Crsr up Crsr up Crsr up Crsr up Play
Down Ch down Crsr down Crsr down Crsr down Crsr down Crsr down Pause
- Left Prev group - - Disable Decrement - Search back
- Right Next group - - Enable Increment - Search forward
+ Left Prev group - Page up Disable Decrement Page up Search back
+ Right Next group - Page down Enable Increment Page down Search forward
Ok Ch display Select Switch Edit Accept Play Progress disp.
Menu Menu on Menu off Menu off Menu off Menu off Menu off Menu on
Back - Menu off Main menu Main menu Discard Main menu Recordings menu
diff --git a/menu.c b/menu.c
index 144233fc..777bd6c3 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.58 2001/01/13 13:07:43 kls Exp $
+ * $Id: menu.c 1.59 2001/02/03 14:28:42 kls Exp $
*/
#include "menu.h"
@@ -1074,12 +1074,18 @@ eOSState cMenuTimers::Summary(void)
eOSState cMenuTimers::ProcessKey(eKeys Key)
{
+ // Must do these before calling cOsdMenu::ProcessKey() because cOsdMenu
+ // uses them to page up/down:
+ switch (Key) {
+ case kLeft:
+ case kRight: return Activate(Key == kRight);
+ default: break;
+ }
+
eOSState state = cOsdMenu::ProcessKey(Key);
if (state == osUnknown) {
switch (Key) {
- case kLeft:
- case kRight: return Activate(Key == kRight);
case kOk: return Summary();
case kRed: return Edit();
case kGreen: return New();
diff --git a/osd.c b/osd.c
index bc9c9485..52988f2c 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c 1.13 2000/11/12 15:29:25 kls Exp $
+ * $Id: osd.c 1.14 2001/02/03 14:26:18 kls Exp $
*/
#include "osd.h"
@@ -252,6 +252,36 @@ void cOsdMenu::CursorDown(void)
}
}
+void cOsdMenu::PageUp(void)
+{
+ if (Count() <= MAXOSDITEMS)
+ return;
+ int relpos = current - first;
+ current -= MAXOSDITEMS;
+ first -= MAXOSDITEMS;
+ if (first < 0) {
+ first = Count() - MAXOSDITEMS;
+ current = first + relpos;
+ }
+ Display();
+ DisplayCurrent(true);
+}
+
+void cOsdMenu::PageDown(void)
+{
+ if (Count() <= MAXOSDITEMS)
+ return;
+ int relpos = current - first;
+ current += MAXOSDITEMS;
+ first += MAXOSDITEMS;
+ if (current > Count() - 1) {
+ first = 0;
+ current = first + relpos;
+ }
+ Display();
+ DisplayCurrent(true);
+}
+
void cOsdMenu::Mark(void)
{
if (Count() && marked < 0) {
@@ -293,6 +323,10 @@ eOSState cOsdMenu::ProcessKey(eKeys Key)
case kUp: CursorUp(); break;
case kDown|k_Repeat:
case kDown: CursorDown(); break;
+ case kLeft|k_Repeat:
+ case kLeft: PageUp(); break;
+ case kRight|k_Repeat:
+ case kRight: PageDown(); break;
case kBack: return osBack;
case kOk: if (marked >= 0) {
SetStatus(NULL);
diff --git a/osd.h b/osd.h
index 16d0ec2c..10b07147 100644
--- a/osd.h
+++ b/osd.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.h 1.18 2000/12/24 10:16:52 kls Exp $
+ * $Id: osd.h 1.19 2001/02/03 14:14:23 kls Exp $
*/
#ifndef __OSD_H
@@ -85,6 +85,8 @@ protected:
void DisplayCurrent(bool Current);
void CursorUp(void);
void CursorDown(void);
+ void PageUp(void);
+ void PageDown(void);
void Mark(void);
eOSState AddSubMenu(cOsdMenu *SubMenu);
bool HasSubMenu(void) { return subMenu; }