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 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? Presumably this is a problem in the card driver or firmware?
* When the on-screen display is activated during recording, * 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 extracted into the directory /home/kls/vdr/DVB, then this
package should be extracted into /home/kls/vdr/VDR. 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. to work properly.
After extracting the package, change into the VDR directory 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 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 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 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 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 key configuration file 'keys-pc.conf', so that you won't loose data
when switching between normal and debug mode. when switching between normal and debug mode.
@ -81,19 +83,11 @@ when switching between normal and debug mode.
The default PC key assignments are: The default PC key assignments are:
Up, Down, Left, Right Crsr keys in numeric block Up, Down, Left, Right Crsr keys in numeric block
Menu '5' in numeric block Menu 'Home' in numeric block
Ok Enter Ok '5' in numeric block
Back Backspace Back 'End' in numeric block
0..9 '0'..'9' in top row
Red, Green, Yellow, Blue 'F1'..'F4' Red, Green, Yellow, Blue 'F1'..'F4'
Record 'r' 0..9 '0'..'9' in top row
Pause 'p'
Stop 's'
Begin 'B'
SearchForward 'f'
SearchBack 'b'
SkipForward 'PgDn' in numeric block
SkipBack 'PgUp' in numeric block
If you prefer different key assignments, simply delete the file If you prefer different key assignments, simply delete the file
'keys-pc.conf' and restart 'vdr' to get into learning mode. '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 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 * Navigating through the On Screen Menus
The "Main" menu can be called up with the "Menu" key of your remote 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. keys. "Ok" then confirms the changes.
The "Red", "Green", "Yellow" and "Blue" buttons have special meanings 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 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 * Selecting a Channel
@ -48,9 +70,9 @@ Video Disk Recorder User's Manual
* Instant Recording * Instant Recording
You can start recording the current channel by pressing the "Record" You can start recording the current channel by pressing the "Red" button
button. This will create a timer event named "@channelname" that starts in the Main menu. This will create a timer event named "@channelname" that
at the current time and records for two hours. starts at the current time and records for two hours.
If you want to modify the recording time you need to edit the timer. 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 instant recording by pressing the "Menu" button and selecting
"Stop Recording", or by disabling the timer. "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) list with the "Up" and "Down" button and press "Ok" (or the "Red" button)
to start playback. to start playback.
Playback can be stopped via the Main menu by selecting "Stop replaying", 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 * Replay Control
The following keys have the listed meaning in Replay mode: The following keys have the listed meaning in Replay mode:
- "Begin" Positions to beginning of the recording and starts playback - Up Positions to beginning of the recording and starts playback
from there. from there.
- "Pause" Halts playback at the current position. Press again to continue - Down Halts playback at the current position. Press again to continue
playback. playback.
- "Stop" Stops playback and stores the current position, so that - Blue Stops playback and stores the current position, so that
playback can be resumed later at that point. playback can be resumed later at that point.
- "Search" Runs playback forward or backward at a higher speed. Press - Left
again to resume normal speed. Right Runs playback forward or backward at a higher speed. Press
- "Skip" Skips about 60 seconds forward or backward. again to resume normal speed.
- "Ok" Brings up the replay progress display, which shows the date, - Green
time and title of the recording, a progress bar and the Yellow Skips about 60 seconds back or forward.
current and total time of the recording. - Ok Brings up the replay progress display, which shows the date,
Press "Ok" again to turn off the progress display. 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 * Programming the Timer

7
TODO
View File

@ -1,11 +1,8 @@
TODO list for the Video Disk Recorder project TODO list for the Video Disk Recorder project
--------------------------------------------- ---------------------------------------------
* Make it work with two DVB-S PCI cards to allow simultaneous * Implement simultaneous record/replay with a single DVB card once
recording of one programme, while replaying another programme the card driver/firmware allows this.
(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 "on-disk editing" to allow "cutting out" of certain * Implement "on-disk editing" to allow "cutting out" of certain
scenes in order to archive them (or, reversely, cut out scenes in order to archive them (or, reversely, cut out
commercial breaks). commercial breaks).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "config.h"
@ -23,6 +23,10 @@ tKey keyTable[] = { // "Up" and "Down" must be the first two keys!
{ kBack, "Back", 0 }, { kBack, "Back", 0 },
{ kLeft, "Left", 0 }, { kLeft, "Left", 0 },
{ kRight, "Right", 0 }, { kRight, "Right", 0 },
{ kRed, "Red", 0 },
{ kGreen, "Green", 0 },
{ kYellow, "Yellow", 0 },
{ kBlue, "Blue", 0 },
{ k0, "0", 0 }, { k0, "0", 0 },
{ k1, "1", 0 }, { k1, "1", 0 },
{ k2, "2", 0 }, { k2, "2", 0 },
@ -33,18 +37,6 @@ tKey keyTable[] = { // "Up" and "Down" must be the first two keys!
{ k7, "7", 0 }, { k7, "7", 0 },
{ k8, "8", 0 }, { k8, "8", 0 },
{ k9, "9", 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 }, { kNone, "", 0 },
}; };

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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 #ifndef __CONFIG_H
@ -27,19 +27,11 @@ enum eKeys { // "Up" and "Down" must be the first two keys!
kBack, kBack,
kLeft, kLeft,
kRight, kRight,
k0, k1, k2, k3, k4, k5, k6, k7, k8, k9,
kRed, kRed,
kGreen, kGreen,
kYellow, kYellow,
kBlue, kBlue,
kRecord, k0, k1, k2, k3, k4, k5, k6, k7, k8, k9,
kPause,
kStop,
kBegin,
kSearchForward,
kSearchBack,
kSkipForward,
kSkipBack,
kNone 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "menu.h"
@ -1009,6 +1009,7 @@ cMenuMain::cMenuMain(bool Replaying)
Add(new cOsdItem(buffer, osStopRecord)); Add(new cOsdItem(buffer, osStopRecord));
delete buffer; delete buffer;
} }
SetHelp("Record");
Display(); Display();
lastActivity = time(NULL); lastActivity = time(NULL);
} }
@ -1028,8 +1029,13 @@ eOSState cMenuMain::ProcessKey(eKeys Key)
return osEnd; return osEnd;
} }
} }
default: if (Key == kMenu) default: switch (Key) {
state = osEnd; case kMenu: state = osEnd; break;
case kRed: if (!HasSubMenu())
state = osRecord;
break;
default: break;
}
} }
if (Key != kNone) if (Key != kNone)
lastActivity = time(NULL); lastActivity = time(NULL);
@ -1202,18 +1208,18 @@ eOSState cReplayControl::ProcessKey(eKeys Key)
if (visible) if (visible)
shown = dvbApi->ShowProgress(!shown) || shown; shown = dvbApi->ShowProgress(!shown) || shown;
switch (Key) { switch (Key) {
case kBegin: dvbApi->Skip(-INT_MAX); break; case kUp: dvbApi->Skip(-INT_MAX); break;
case kPause: dvbApi->PauseReplay(); break; case kDown: dvbApi->PauseReplay(); break;
case kStop: Hide(); case kBlue: Hide();
dvbApi->StopReplay(); dvbApi->StopReplay();
return osEnd; return osEnd;
case kSearchBack: dvbApi->FastRewind(); break; case kLeft: dvbApi->FastRewind(); break;
case kSearchForward: dvbApi->FastForward(); break; case kRight: dvbApi->FastForward(); break;
case kSkipBack: dvbApi->Skip(-60); break; case kGreen: dvbApi->Skip(-60); break;
case kSkipForward: dvbApi->Skip(60); break; case kYellow: dvbApi->Skip(60); break;
case kMenu: Hide(); return osMenu; // allow direct switching to menu case kMenu: Hide(); return osMenu; // allow direct switching to menu
case kOk: visible ? Hide() : Show(); break; case kOk: visible ? Hide() : Show(); break;
default: return osUnknown; default: return osUnknown;
} }
return osContinue; return osContinue;
} }

3
osd.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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 #ifndef __OSD_H
@ -22,6 +22,7 @@ enum eOSState { osUnknown,
osChannels, osChannels,
osTimer, osTimer,
osRecordings, osRecordings,
osRecord,
osReplay, osReplay,
osStopRecord, osStopRecord,
osStopReplay, osStopReplay,

11
vdr.c
View File

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