diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-10-31 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2005-10-31 18:00:00 +0100 |
commit | 99e3c093f404b55683a90e38bbe74e1f51c35316 (patch) | |
tree | ed19caa03a60230d65a210a213d35bf62ed9f55f /videodir.c | |
parent | 88d8d634089bae65bdfea8238a847b7883058072 (diff) | |
download | vdr-patch-lnbsharing-99e3c093f404b55683a90e38bbe74e1f51c35316.tar.gz vdr-patch-lnbsharing-99e3c093f404b55683a90e38bbe74e1f51c35316.tar.bz2 |
Version 1.3.35vdr-1.3.35
- Updated 'sources.conf' (thanks to Philip Prindeville).
- Now using daemon() instead of fork() to run VDR in daemon mode (thanks to
Enrico Scholz).
- Fixed a possible endless loop in a menu with no selectable items if
Setup.MenuScrollWrap is true (thanks to Enrico Scholz).
- Making sure no item is displayed as "current" if Up, Down, Left or Right is
pressed in a menu with no selectable items.
- Added '__attribute__' to functions that use printf() like parameters (thanks
to Darren Salt).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed a leftover 'summary.vdr' in vdr.1 (reported by Christoph Hermanns).
- Added more error messages and line numbers when reading EPG data and info.vdr
(thanks to Peter Bieringer).
- Updated the Danish OSD texts (thanks to Mogens Elneff).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Added missing mutex locks to cCiMenu::Abort() and cCiEnquiry::Abort() (reported
by Marco Schlüßler).
- Fixed lock handling in CAM communication to avoid problems with multiple CAMs
per device or CAMs with more than one smart card.
- Updated the Greek OSD texts (thanks to Dimitrios Dimitrakos).
- Updated the French OSD texts (thanks to Nicolas Huillard).
- Fixed the cFilter example in PLUGINS.html (reported by Patrick Fischer).
- The new class cUnbufferedFile is used for the recording files to avoid
trashing the file system cache (based on a patch by Ralf Müller).
Diffstat (limited to 'videodir.c')
-rw-r--r-- | videodir.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: videodir.c 1.12 2005/08/06 09:53:21 kls Exp $ + * $Id: videodir.c 1.13 2005/10/31 12:07:41 kls Exp $ */ #include "videodir.h" @@ -102,7 +102,7 @@ const char *cVideoDirectory::Adjust(const char *FileName) return NULL; } -int OpenVideoFile(const char *FileName, int Flags) +cUnbufferedFile *OpenVideoFile(const char *FileName, int Flags) { const char *ActualFileName = FileName; @@ -110,7 +110,7 @@ int OpenVideoFile(const char *FileName, int Flags) if (strstr(FileName, VideoDirectory) != FileName) { esyslog("ERROR: %s not in %s", FileName, VideoDirectory); errno = ENOENT; // must set 'errno' - any ideas for a better value? - return -1; + return NULL; } // Are we going to create a new file? if ((Flags & O_CREAT) != 0) { @@ -128,25 +128,26 @@ int OpenVideoFile(const char *FileName, int Flags) if (Dir.Stored()) { ActualFileName = Dir.Adjust(FileName); if (!MakeDirs(ActualFileName, false)) - return -1; // errno has been set by MakeDirs() + return NULL; // errno has been set by MakeDirs() if (symlink(ActualFileName, FileName) < 0) { LOG_ERROR_STR(FileName); - return -1; + return NULL; } ActualFileName = strdup(ActualFileName); // must survive Dir! } } } - int Result = open(ActualFileName, Flags, DEFFILEMODE); + cUnbufferedFile *File = cUnbufferedFile::Create(ActualFileName, Flags, DEFFILEMODE); if (ActualFileName != FileName) free((char *)ActualFileName); - return Result; + return File; } -int CloseVideoFile(int FileHandle) +int CloseVideoFile(cUnbufferedFile *File) { - // just in case we ever decide to do something special when closing the file! - return close(FileHandle); + int Result = File->Close(); + delete File; + return Result; } bool RenameVideoFile(const char *OldName, const char *NewName) |