summaryrefslogtreecommitdiff
path: root/vdr.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-01-22 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2006-01-22 18:00:00 +0100
commit446b0e8e0b94b997293aef2f63220c5f8a68bf0f (patch)
treeb2d3e77137f068f9fc3682197c9e7b91afba5fe1 /vdr.c
parent78e3da813cb4345e57934a9a60f6316f1e257307 (diff)
downloadvdr-patch-lnbsharing-446b0e8e0b94b997293aef2f63220c5f8a68bf0f.tar.gz
vdr-patch-lnbsharing-446b0e8e0b94b997293aef2f63220c5f8a68bf0f.tar.bz2
Version 1.3.40vdr-1.3.40
- Fixed a second place where a message should be given when an instant recording is started (reported by Jesus Bravo Alvarez). - Modified logging so that even on NPTL systems each line in the log file shows the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski). - Fixed a problem with @plugin in keymacros.conf in case the named plugin is not loaded (reported by Franz Gangkofer). - Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule' pointers from cChannel objects (reported by Malte Schröder). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Improved NULL checking in strreplace(). - Fixed a crash in the Schedule menu with events that have no title (reported by Rolf Ahrenberg). cEvent::FixEpgBugs() now assigns a "No title" string to events that have no title. - Updated the Estonian OSD texts (thanks to Arthur Konovalov). - Recordings are now only started if there is at least 300MB free disk space (suggested by Markus Hahn). - When entering text via the numeric keys, the cursor now automatically advances (based on a patch from Rolf Ahrenberg). - Updated the Polish OSD texts and the fontosd-iso8859-2.c file (thanks to Jaroslaw Swierczynski). - Disabled the "buffer reserve" in Transfer Mode. Last chance to complain if you really need it - it will be completely removed in the next version. If you are experiencing problems with a/v running out of sync, try the latest driver and firmware (if you are using a full featured DVB card). - Switching channels with the Up/Down or Channel+/Channel- keys now works a lot faster when the repeat function kicks in, by not actually switching the channel every time, but rather only displaying the channel info and doing the final switch when the key is released. - The channel display is now updated _before_ the channel is switched. - Added a missing initialization of 'timeout' in the cDisplayChannel constructor. - Fixed detecting if there can be any useful further input when entering channel numbers (thanks to Thomas Bergwinkl). - Updated the Spanish OSD texts (thanks to Jesus Bravo Alvarez). - Fixed handling the '0' key for switching between the last two channels (thanks to Thomas Bergwinkl).
Diffstat (limited to 'vdr.c')
-rw-r--r--vdr.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/vdr.c b/vdr.c
index bd4f950..1658590 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.238 2006/01/15 13:31:57 kls Exp $
+ * $Id: vdr.c 1.244 2006/01/22 15:59:13 kls Exp $
*/
#include <getopt.h>
@@ -447,7 +447,7 @@ int main(int argc, char *argv[])
// Log file:
if (SysLogLevel > 0)
- openlog("vdr", LOG_PID | LOG_CONS, SysLogTarget);
+ openlog("vdr", LOG_CONS, SysLogTarget); // LOG_PID doesn't work as expected under NPTL
// Check the video directory:
@@ -727,7 +727,7 @@ int main(int argc, char *argv[])
LastChannel = cDevice::CurrentChannel();
LastChannelChanged = time(NULL);
}
- if (time(NULL) - LastChannelChanged >= Setup.ZapTimeout && LastChannel != PreviousChannel[0] && LastChannel != PreviousChannel[1])
+ if (time(NULL) - LastChannelChanged >= Setup.ZapTimeout && LastChannel != PreviousChannel[PreviousChannelIndex])
PreviousChannel[PreviousChannelIndex ^= 1] = LastChannel;
// Timers and Recordings:
if (!Timers.BeingEdited()) {
@@ -822,6 +822,7 @@ int main(int argc, char *argv[])
}
}
break;
+ // Direct main menu functions:
#define DirectMainFunction(function)\
DELETE_MENU;\
if (cControl::Control())\
@@ -855,7 +856,15 @@ int main(int argc, char *argv[])
case kChanUp:
case kChanDn|k_Repeat:
case kChanDn:
- cDevice::SwitchChannel(NORMALKEY(key) == kChanUp ? 1 : -1);
+ if (!Interact)
+ Menu = new cDisplayChannel(NORMALKEY(key));
+ else if (cDisplayChannel::IsOpen()) {
+ Interact->ProcessKey(key);
+ continue;
+ }
+ else
+ cDevice::SwitchChannel(NORMALKEY(key) == kChanUp ? 1 : -1);
+ key = kNone; // nobody else needs to see these keys
break;
// Volume control:
case kVolUp|k_Repeat:
@@ -901,9 +910,7 @@ int main(int argc, char *argv[])
case kRecord:
if (!cControl::Control()) {
if (cRecordControls::Start())
- ;//XXX Skins.Message(mtInfo, tr("Recording"));
- else
- Skins.Message(mtError, tr("No free DVB device to record!"));
+ Skins.Message(mtInfo, tr("Recording started"));
key = kNone; // nobody else needs to see this key
}
break;
@@ -947,8 +954,6 @@ int main(int argc, char *argv[])
case osRecord: DELETE_MENU;
if (cRecordControls::Start())
Skins.Message(mtInfo, tr("Recording started"));
- else
- Skins.Message(mtError, tr("No free DVB device to record!"));
break;
case osRecordings:
DELETE_MENU;
@@ -985,7 +990,7 @@ int main(int argc, char *argv[])
}
else {
// Key functions in "normal" viewing mode:
- if (KeyMacros.Get(key)) {
+ if (key != kNone && KeyMacros.Get(key)) {
cRemote::PutMacro(key);
key = kNone;
}
@@ -999,21 +1004,17 @@ int main(int argc, char *argv[])
}
// Direct Channel Select:
case k1 ... k9:
- Menu = new cDisplayChannel(key);
- break;
// Left/Right rotates trough channel groups:
case kLeft|k_Repeat:
case kLeft:
case kRight|k_Repeat:
case kRight:
- Menu = new cDisplayChannel(NORMALKEY(key));
- break;
// Up/Down Channel Select:
case kUp|k_Repeat:
case kUp:
case kDown|k_Repeat:
case kDown:
- cDevice::SwitchChannel(NORMALKEY(key) == kUp ? 1 : -1);
+ Menu = new cDisplayChannel(NORMALKEY(key));
break;
// Viewing Control:
case kOk: LastChannel = -1; break; // forces channel display