Reduced number of remote control keys

This commit is contained in:
Klaus Schmidinger 2000-05-27 16:10:47 +02:00
parent 86f14230c2
commit ed77b757a0
10 changed files with 89 additions and 84 deletions

2
BUGS
View File

@ -1,7 +1,7 @@
Video Disk Recorder - Known Bugs
--------------------------------
* Sometimes picture and sound drift apart.
* Sometimes the picture "jumps" as if a frame is skipped.
Presumably this is a problem in the card driver or firmware?
* When the on-screen display is activated during recording,

22
INSTALL
View File

@ -12,7 +12,7 @@ about that driver). For example, if the DVB driver was
extracted into the directory /home/kls/vdr/DVB, then this
package should be extracted into /home/kls/vdr/VDR.
This program requires the card driver version 0.04 or higher
This program requires the card driver version 0.05 or higher
to work properly.
After extracting the package, change into the VDR directory
@ -73,7 +73,9 @@ key after the other so that it can learn the various key codes. You will
at least need to provide an "Up" and a "Down" key, so that you can switch
channels. The rest of the key definitions is optional, but the more keys
you define, the more you will be able to navigate through the menus and
control recording/replaying.
control recording/replaying. The program uses only a very small number
of keys which have multiple meanings in the various modes (see MANUAL
for a detailed description).
If the program has been built with "DEBUG_REMOTE=1", it will use the
key configuration file 'keys-pc.conf', so that you won't loose data
when switching between normal and debug mode.
@ -81,19 +83,11 @@ when switching between normal and debug mode.
The default PC key assignments are:
Up, Down, Left, Right Crsr keys in numeric block
Menu '5' in numeric block
Ok Enter
Back Backspace
0..9 '0'..'9' in top row
Menu 'Home' in numeric block
Ok '5' in numeric block
Back 'End' in numeric block
Red, Green, Yellow, Blue 'F1'..'F4'
Record 'r'
Pause 'p'
Stop 's'
Begin 'B'
SearchForward 'f'
SearchBack 'b'
SkipForward 'PgDn' in numeric block
SkipBack 'PgUp' in numeric block
0..9 '0'..'9' in top row
If you prefer different key assignments, simply delete the file
'keys-pc.conf' and restart 'vdr' to get into learning mode.

62
MANUAL
View File

@ -1,6 +1,28 @@
Video Disk Recorder User's Manual
---------------------------------
* Remote Control Keys
The following remote control keys are used to control the VDR
operation. To keep the number of different keys as small as
possible, several keys have different meanings in the various
modes:
Key Normal Main Channels Timer Edit/New Recordings Replay
Up Ch up Crsr up Crsr up Crsr up Crsr up Crsr up Begin
Down Ch down Crsr down Crsr down Crsr down Crsr down Crsr down Pause
Left - - - Disable Decrement - Search back
Right - - - Enable Increment - 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 -
Red - Record Edit Edit - Play -
Green - - New New - - Skip -60s
Yellow - - Delete Delete - Delete Skip +60s
Blue - - Mark Mark - - Stop
0..9 Ch select - - - Numeric inp. - -
* Navigating through the On Screen Menus
The "Main" menu can be called up with the "Menu" key of your remote
@ -22,10 +44,10 @@ Video Disk Recorder User's Manual
keys. "Ok" then confirms the changes.
The "Red", "Green", "Yellow" and "Blue" buttons have special meanings
in the various menus and are listed at the bottom of the on-screen-display.
in various menus and are listed at the bottom of the on-screen-display.
At any point in the menu system, pressing the "Menu" key again will
immediately leave the menu system.
immediately leave the menu system (discarding any pending changes).
* Selecting a Channel
@ -48,9 +70,9 @@ Video Disk Recorder User's Manual
* Instant Recording
You can start recording the current channel by pressing the "Record"
button. This will create a timer event named "@channelname" that starts
at the current time and records for two hours.
You can start recording the current channel by pressing the "Red" button
in the Main menu. This will create a timer event named "@channelname" that
starts at the current time and records for two hours.
If you want to modify the recording time you need to edit the timer.
Stop instant recording by pressing the "Menu" button and selecting
"Stop Recording", or by disabling the timer.
@ -61,25 +83,27 @@ Video Disk Recorder User's Manual
list with the "Up" and "Down" button and press "Ok" (or the "Red" button)
to start playback.
Playback can be stopped via the Main menu by selecting "Stop replaying",
or by pressing the "Stop" button outside the menu.
or by pressing the "Blue" button outside the menu.
* Replay Control
The following keys have the listed meaning in Replay mode:
- "Begin" Positions to beginning of the recording and starts playback
from there.
- "Pause" Halts playback at the current position. Press again to continue
playback.
- "Stop" Stops playback and stores the current position, so that
playback can be resumed later at that point.
- "Search" Runs playback forward or backward at a higher speed. Press
again to resume normal speed.
- "Skip" Skips about 60 seconds forward or backward.
- "Ok" Brings up the replay progress display, which shows the date,
time and title of the recording, a progress bar and the
current and total time of the recording.
Press "Ok" again to turn off the progress display.
- Up Positions to beginning of the recording and starts playback
from there.
- Down Halts playback at the current position. Press again to continue
playback.
- Blue Stops playback and stores the current position, so that
playback can be resumed later at that point.
- Left
Right Runs playback forward or backward at a higher speed. Press
again to resume normal speed.
- Green
Yellow Skips about 60 seconds back or forward.
- Ok Brings up the replay progress display, which shows the date,
time and title of the recording, a progress bar and the
current and total time of the recording.
Press "Ok" again to turn off the progress display.
* Programming the Timer

7
TODO
View File

@ -1,11 +1,8 @@
TODO list for the Video Disk Recorder project
---------------------------------------------
* Make it work with two DVB-S PCI cards to allow simultaneous
recording of one programme, while replaying another programme
(or maybe the same one, but time delayed).
Maybe we can do this with only a single card, if the card
driver/firmware allows simultaneuos record/playback?
* Implement simultaneous record/replay with a single DVB card once
the card driver/firmware allows this.
* Implement "on-disk editing" to allow "cutting out" of certain
scenes in order to archive them (or, reversely, cut out
commercial breaks).

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.6 2000/05/01 16:29:31 kls Exp $
* $Id: config.c 1.7 2000/05/27 14:44:15 kls Exp $
*/
#include "config.h"
@ -23,6 +23,10 @@ tKey keyTable[] = { // "Up" and "Down" must be the first two keys!
{ kBack, "Back", 0 },
{ kLeft, "Left", 0 },
{ kRight, "Right", 0 },
{ kRed, "Red", 0 },
{ kGreen, "Green", 0 },
{ kYellow, "Yellow", 0 },
{ kBlue, "Blue", 0 },
{ k0, "0", 0 },
{ k1, "1", 0 },
{ k2, "2", 0 },
@ -33,18 +37,6 @@ tKey keyTable[] = { // "Up" and "Down" must be the first two keys!
{ k7, "7", 0 },
{ k8, "8", 0 },
{ k9, "9", 0 },
{ kRed, "Red", 0 },
{ kGreen, "Green", 0 },
{ kYellow, "Yellow", 0 },
{ kBlue, "Blue", 0 },
{ kRecord, "Record", 0 },
{ kPause, "Pause", 0 },
{ kStop, "Stop", 0 },
{ kBegin, "Begin", 0 },
{ kSearchForward, "SearchForward", 0 },
{ kSearchBack, "SearchBack", 0 },
{ kSkipForward, "SkipForward", 0 },
{ kSkipBack, "SkipBack", 0 },
{ kNone, "", 0 },
};

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.5 2000/05/01 10:45:17 kls Exp $
* $Id: config.h 1.6 2000/05/27 14:43:46 kls Exp $
*/
#ifndef __CONFIG_H
@ -27,19 +27,11 @@ enum eKeys { // "Up" and "Down" must be the first two keys!
kBack,
kLeft,
kRight,
k0, k1, k2, k3, k4, k5, k6, k7, k8, k9,
kRed,
kGreen,
kYellow,
kBlue,
kRecord,
kPause,
kStop,
kBegin,
kSearchForward,
kSearchBack,
kSkipForward,
kSkipBack,
k0, k1, k2, k3, k4, k5, k6, k7, k8, k9,
kNone
};

Binary file not shown.

36
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.14 2000/05/06 15:43:57 kls Exp $
* $Id: menu.c 1.15 2000/05/27 16:10:47 kls Exp $
*/
#include "menu.h"
@ -1009,6 +1009,7 @@ cMenuMain::cMenuMain(bool Replaying)
Add(new cOsdItem(buffer, osStopRecord));
delete buffer;
}
SetHelp("Record");
Display();
lastActivity = time(NULL);
}
@ -1028,8 +1029,13 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
return osEnd;
}
}
default: if (Key == kMenu)
state = osEnd;
default: switch (Key) {
case kMenu: state = osEnd; break;
case kRed: if (!HasSubMenu())
state = osRecord;
break;
default: break;
}
}
if (Key != kNone)
lastActivity = time(NULL);
@ -1202,18 +1208,18 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
if (visible)
shown = dvbApi->ShowProgress(!shown) || shown;
switch (Key) {
case kBegin: dvbApi->Skip(-INT_MAX); break;
case kPause: dvbApi->PauseReplay(); break;
case kStop: Hide();
dvbApi->StopReplay();
return osEnd;
case kSearchBack: dvbApi->FastRewind(); break;
case kSearchForward: dvbApi->FastForward(); break;
case kSkipBack: dvbApi->Skip(-60); break;
case kSkipForward: dvbApi->Skip(60); break;
case kMenu: Hide(); return osMenu; // allow direct switching to menu
case kOk: visible ? Hide() : Show(); break;
default: return osUnknown;
case kUp: dvbApi->Skip(-INT_MAX); break;
case kDown: dvbApi->PauseReplay(); break;
case kBlue: Hide();
dvbApi->StopReplay();
return osEnd;
case kLeft: dvbApi->FastRewind(); break;
case kRight: dvbApi->FastForward(); break;
case kGreen: dvbApi->Skip(-60); break;
case kYellow: dvbApi->Skip(60); break;
case kMenu: Hide(); return osMenu; // allow direct switching to menu
case kOk: visible ? Hide() : Show(); break;
default: return osUnknown;
}
return osContinue;
}

3
osd.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: osd.h 1.8 2000/05/01 15:16:00 kls Exp $
* $Id: osd.h 1.9 2000/05/27 15:35:41 kls Exp $
*/
#ifndef __OSD_H
@ -22,6 +22,7 @@ enum eOSState { osUnknown,
osChannels,
osTimer,
osRecordings,
osRecord,
osReplay,
osStopRecord,
osStopReplay,

11
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
* $Id: vdr.c 1.18 2000/05/06 15:24:01 kls Exp $
* $Id: vdr.c 1.19 2000/05/27 15:38:35 kls Exp $
*/
#include <signal.h>
@ -107,6 +107,10 @@ int main(int argc, char *argv[])
case osMenu: DELETENULL(Menu);
Menu = new cMenuMain(ReplayControl);
break;
case osRecord: DELETENULL(Menu);
if (!cRecordControls::Start())
Interface.Error("No free DVB device to record!");
break;
case osReplay: DELETENULL(Menu);
DELETENULL(ReplayControl);
ReplayControl = new cReplayControl;
@ -142,11 +146,6 @@ int main(int argc, char *argv[])
channel->Switch();
}
break;
// Instant Recording:
case kRecord: DELETENULL(Menu);
if (!cRecordControls::Start())
Interface.Error("No free DVB device to record!");
break;
// Menu Control:
case kMenu: Menu = new cMenuMain(ReplayControl); break;
// Viewing Control: