summaryrefslogtreecommitdiff
path: root/vdr.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-01-27 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-01-27 18:00:00 +0100
commit27919ee969866b68fc95b327a047a9989e4b4153 (patch)
tree1857862abf169ff6e9287152cd6fec6a1d9dbc41 /vdr.c
parentb420457467ad0c8ae71f8b985914e85b7a0ff5aa (diff)
downloadvdr-patch-lnbsharing-27919ee969866b68fc95b327a047a9989e4b4153.tar.gz
vdr-patch-lnbsharing-27919ee969866b68fc95b327a047a9989e4b4153.tar.bz2
Version 0.99pre2vdr-0.99pre2
- Fixed setting the OSD size in the 'Confirm' interface call (thanks to Deti Fliegl). - Removed the 'read incomplete section...' error message in the EIT processor. - Fixed channel data for "DW TV" (thanks to Axel Gruber). - Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan Schreiber). - Prepared the OSD functions for multiple overlapping windows. - Removed the check to see whether the system time is running linearly. - Improved performance of SVDRP command entry. - Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to broadcast the correct timestamps for EPG events between 0:00 and 6:00! - Fixed failing watchdog timer if program hangs in OSD activities (thanks to Carsten Koch). - No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and REMOTE=KBD (thanks to Lauri Pesonen). - The "Recordings" menu now displays a hierarchical structure if there are subdirectories for the recordings. This can be controlled through the "RecordingDirs" parameter in the "Setup" menu. See "MANUAL/Replaying a Recording" for details. - Improved speed of setting the Help button texts. - Fixed handling file names that contain single quotes (') or dollar signs ($) in the call to the shutdown command (option '-s') and the recording command (option '-r'). - Improved error handling in the editing process; the resulting file will be deleted if an error occured. - A message is now prompted at the end of the editing process, indicating whether the process succeeded or failed. - Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to Sergei Haller). - A message is now prompted if free disk space becomes low during recording. - The editing process now calls AssertFreeDiskSpace() to remove deleted recordings if the disk becomes full. - The "Main" menu now displays in its title the used disk space (in percent) and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB per minute. - Activating the "Recordings" menu now displays "scanning recordings..." to give the user some feedback in case this takes longer. - Status messages are now displayed centered. - Removed the 'Tools' subdirectory from the VDR archive. All contributed tools can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
Diffstat (limited to 'vdr.c')
-rw-r--r--vdr.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/vdr.c b/vdr.c
index 886b091..5351e40 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
- * $Id: vdr.c 1.89 2001/11/03 12:23:45 kls Exp $
+ * $Id: vdr.c 1.93 2002/01/26 14:07:01 kls Exp $
*/
#include <getopt.h>
@@ -314,7 +314,6 @@ int main(int argc, char *argv[])
int LastChannel = -1;
int PreviousChannel = cDvbApi::CurrentChannel();
time_t LastActivity = 0;
- time_t LinearTime = time(NULL);
int MaxLatencyTime = 0;
bool ForceShutdown = false;
@@ -324,14 +323,6 @@ int main(int argc, char *argv[])
}
while (!Interrupted) {
- // Test if we are running in the Einstein continuum:
- time_t Now = time(NULL);
- time_t LinearDelta = Now - LinearTime;
- if (LinearDelta) {
- if (LinearDelta < 0 || LinearDelta > 300) // assuming nothing will block for more than 5 minutes
- esyslog(LOG_ERR, "ERROR: time warp detected (%d seconds)", LinearDelta);
- LinearTime = Now;
- }
// Handle emergency exits:
if (cThread::EmergencyExit()) {
esyslog(LOG_ERR, "emergency exit requested - shutting down");
@@ -477,7 +468,12 @@ int main(int argc, char *argv[])
}
if (!Menu) {
EITScanner.Process();
- cVideoCutter::Active();
+ if (!cVideoCutter::Active() && cVideoCutter::Ended()) {
+ if (cVideoCutter::Error())
+ Interface->Error(tr("Editing process failed!"));
+ else
+ Interface->Info(tr("Editing process finished"));
+ }
}
if (!*Interact && (!cRecordControls::Active() || ForceShutdown)) {
time_t Now = time(NULL);
@@ -508,7 +504,7 @@ int main(int argc, char *argv[])
int Channel = timer ? timer->channel : 0;
const char *File = timer ? timer->file : "";
char *cmd;
- asprintf(&cmd, "%s %ld %ld %d '%s' %d", Shutdown, Next, Delta, Channel, File, UserShutdown);
+ asprintf(&cmd, "%s %ld %ld %d \"%s\" %d", Shutdown, Next, Delta, Channel, strescape(File, "\"$"), UserShutdown);
isyslog(LOG_INFO, "executing '%s'", cmd);
SystemExec(cmd);
delete cmd;
@@ -518,7 +514,7 @@ int main(int argc, char *argv[])
if (signal(SIGALRM, Watchdog) == SIG_IGN)
signal(SIGALRM, SIG_IGN);
}
- LastActivity = Now; // don't try again too soon
+ LastActivity = time(NULL); // don't try again too soon
continue; // skip the rest of the housekeeping for now
}
}