vdr  2.4.0
Classes | Macros | Enumerations | Functions | Variables
recording.h File Reference
#include <time.h>
#include "channels.h"
#include "config.h"
#include "epg.h"
#include "thread.h"
#include "timers.h"
#include "tools.h"
Include dependency graph for recording.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cResumeFile
 
class  cRecordingInfo
 
class  cRecording
 
class  cRecordings
 
class  cRecordingsHandler
 
class  cMark
 
class  cMarks
 
class  cRecordingUserCommand
 
class  cIndexFile
 
class  cFileName
 

Macros

#define FOLDERDELIMCHAR   '~'
 
#define LOCK_RECORDINGS_READ   USE_LIST_LOCK_READ(Recordings)
 
#define LOCK_RECORDINGS_WRITE   USE_LIST_LOCK_WRITE(Recordings)
 
#define LOCK_DELETEDRECORDINGS_READ   USE_LIST_LOCK_READ2(Recordings, DeletedRecordings)
 
#define LOCK_DELETEDRECORDINGS_WRITE   USE_LIST_LOCK_WRITE2(Recordings, DeletedRecordings)
 
#define DEFAULTFRAMESPERSECOND   25.0
 
#define RUC_BEFORERECORDING   "before"
 
#define RUC_STARTRECORDING   "started"
 
#define RUC_AFTERRECORDING   "after"
 
#define RUC_EDITINGRECORDING   "editing"
 
#define RUC_EDITEDRECORDING   "edited"
 
#define RUC_DELETERECORDING   "deleted"
 
#define MAXFRAMESIZE   (KILOBYTE(1024) / TS_SIZE * TS_SIZE)
 
#define MAXVIDEOFILESIZETS   1048570
 
#define MAXVIDEOFILESIZEPES   2000
 
#define MINVIDEOFILESIZE   100
 
#define MAXVIDEOFILESIZEDEFAULT   MAXVIDEOFILESIZEPES
 

Enumerations

enum  eRecordingUsage {
  ruNone = 0x0000, ruTimer = 0x0001, ruReplay = 0x0002, ruCut = 0x0004,
  ruMove = 0x0008, ruCopy = 0x0010, ruSrc = 0x0020, ruDst = 0x0040,
  ruPending = 0x0080, ruCanceled = 0x8000
}
 
enum  eRecordingsSortDir { rsdAscending, rsdDescending }
 
enum  eRecordingsSortMode { rsmName, rsmTime }
 

Functions

void RemoveDeletedRecordings (void)
 
void AssertFreeDiskSpace (int Priority=0, bool Force=false)
 
 DEF_LIST_LOCK (Recordings)
 
 DEF_LIST_LOCK2 (Recordings, DeletedRecordings)
 
cString IndexToHMSF (int Index, bool WithFrame=false, double FramesPerSecond=DEFAULTFRAMESPERSECOND)
 
int HMSFToIndex (const char *HMSF, double FramesPerSecond=DEFAULTFRAMESPERSECOND)
 
int SecondsToFrames (int Seconds, double FramesPerSecond=DEFAULTFRAMESPERSECOND)
 
int ReadFrame (cUnbufferedFile *f, uchar *b, int Length, int Max)
 
char * ExchangeChars (char *s, bool ToFileSystem)
 
bool GenerateIndex (const char *FileName, bool Update=false)
 
bool HasRecordingsSortMode (const char *Directory)
 
void GetRecordingsSortMode (const char *Directory)
 
void SetRecordingsSortMode (const char *Directory, eRecordingsSortMode SortMode)
 
void IncRecordingsSortMode (const char *Directory)
 
void SetRecordingTimerId (const char *Directory, const char *TimerId)
 
cString GetRecordingTimerId (const char *Directory)
 

Variables

int DirectoryPathMax
 
int DirectoryNameMax
 
bool DirectoryEncoding
 
int InstanceId
 
cRecordingsHandler RecordingsHandler
 
eRecordingsSortMode RecordingsSortMode
 

Macro Definition Documentation

◆ DEFAULTFRAMESPERSECOND

#define DEFAULTFRAMESPERSECOND   25.0

Definition at line 351 of file recording.h.

◆ FOLDERDELIMCHAR

#define FOLDERDELIMCHAR   '~'

Definition at line 21 of file recording.h.

◆ LOCK_DELETEDRECORDINGS_READ

#define LOCK_DELETEDRECORDINGS_READ   USE_LIST_LOCK_READ2(Recordings, DeletedRecordings)

Definition at line 308 of file recording.h.

◆ LOCK_DELETEDRECORDINGS_WRITE

#define LOCK_DELETEDRECORDINGS_WRITE   USE_LIST_LOCK_WRITE2(Recordings, DeletedRecordings)

Definition at line 309 of file recording.h.

◆ LOCK_RECORDINGS_READ

#define LOCK_RECORDINGS_READ   USE_LIST_LOCK_READ(Recordings)

Definition at line 306 of file recording.h.

◆ LOCK_RECORDINGS_WRITE

#define LOCK_RECORDINGS_WRITE   USE_LIST_LOCK_WRITE(Recordings)

Definition at line 307 of file recording.h.

◆ MAXFRAMESIZE

#define MAXFRAMESIZE   (KILOBYTE(1024) / TS_SIZE * TS_SIZE)

Definition at line 436 of file recording.h.

◆ MAXVIDEOFILESIZEDEFAULT

#define MAXVIDEOFILESIZEDEFAULT   MAXVIDEOFILESIZEPES

Definition at line 446 of file recording.h.

◆ MAXVIDEOFILESIZEPES

#define MAXVIDEOFILESIZEPES   2000

Definition at line 444 of file recording.h.

◆ MAXVIDEOFILESIZETS

#define MAXVIDEOFILESIZETS   1048570

Definition at line 443 of file recording.h.

◆ MINVIDEOFILESIZE

#define MINVIDEOFILESIZE   100

Definition at line 445 of file recording.h.

◆ RUC_AFTERRECORDING

#define RUC_AFTERRECORDING   "after"

Definition at line 422 of file recording.h.

◆ RUC_BEFORERECORDING

#define RUC_BEFORERECORDING   "before"

Definition at line 420 of file recording.h.

◆ RUC_DELETERECORDING

#define RUC_DELETERECORDING   "deleted"

Definition at line 425 of file recording.h.

◆ RUC_EDITEDRECORDING

#define RUC_EDITEDRECORDING   "edited"

Definition at line 424 of file recording.h.

◆ RUC_EDITINGRECORDING

#define RUC_EDITINGRECORDING   "editing"

Definition at line 423 of file recording.h.

◆ RUC_STARTRECORDING

#define RUC_STARTRECORDING   "started"

Definition at line 421 of file recording.h.

Enumeration Type Documentation

◆ eRecordingsSortDir

Enumerator
rsdAscending 
rsdDescending 

Definition at line 530 of file recording.h.

◆ eRecordingsSortMode

Enumerator
rsmName 
rsmTime 

Definition at line 531 of file recording.h.

◆ eRecordingUsage

Enumerator
ruNone 
ruTimer 
ruReplay 
ruCut 
ruMove 
ruCopy 
ruSrc 
ruDst 
ruPending 
ruCanceled 

Definition at line 28 of file recording.h.

Function Documentation

◆ AssertFreeDiskSpace()

void AssertFreeDiskSpace ( int  Priority = 0,
bool  Force = false 
)

The special Priority value -1 means that we shall get rid of any deleted recordings faster than normal (because we're cutting).

If Force is true, the check will be done even if the timeout hasn't expired yet.

Definition at line 149 of file recording.c.

References cRecording::Delete(), DISKCHECKDELTA, cRecording::IsEdited(), cRecording::IsOnVideoDirectoryFileSystem(), isyslog, cRecording::Lifetime(), cLockFile::Lock(), LOCK_DELETEDRECORDINGS_READ, LOCK_DELETEDRECORDINGS_WRITE, LOCK_RECORDINGS_WRITE, MAXLIFETIME, MINDISKSPACE, mtWarning, cVideoDirectory::Name(), cListObject::Next(), cRecording::Priority(), cSkins::QueueMessage(), cRecording::Remove(), REMOVELATENCY, SECSINDAY, Skins, cRecording::Start(), tr, cRecordings::Update(), and cVideoDirectory::VideoFileSpaceAvailable().

Referenced by main(), cCuttingThread::ProcessSequence(), and cRecordControls::Start().

Here is the caller graph for this function:

◆ DEF_LIST_LOCK()

DEF_LIST_LOCK ( Recordings  )

◆ DEF_LIST_LOCK2()

DEF_LIST_LOCK2 ( Recordings  ,
DeletedRecordings   
)

◆ ExchangeChars()

char* ExchangeChars ( char *  s,
bool  ToFileSystem 
)

Definition at line 585 of file recording.c.

References tCharExchange::a, CharExchange, DirectoryEncoding, esyslog, FOLDERDELIMCHAR, and NeedsConversion().

Referenced by cRecording::cRecording(), cMenuRecordings::DirectoryName(), and cRecording::FileName().

Here is the caller graph for this function:

◆ GenerateIndex()

bool GenerateIndex ( const char *  FileName,
bool  Update = false 
)

Generates the index of the existing recording with the given FileName.

If Update is true, an existing index file will be checked whether it is complete, and will be updated if it isn't. Otherwise an existing index file will be removed before a new one is generated.

Definition at line 2848 of file recording.c.

References cThread::Active(), AddDirectory(), DirectoryOk(), INDEXFILECHECKINTERVAL, INDEXFILESUFFIX, cRecording::IsPesRecording(), cRecording::Name(), and cCondWait::SleepMs().

Referenced by main().

Here is the caller graph for this function:

◆ GetRecordingsSortMode()

void GetRecordingsSortMode ( const char *  Directory)

Definition at line 3099 of file recording.c.

References AddDirectory(), constrain(), cSetup::DefaultSortModeRec, RecordingsSortMode, rsmTime, Setup, and SORTMODEFILE.

Referenced by IncRecordingsSortMode(), and cMenuRecordings::Set().

Here is the caller graph for this function:

◆ GetRecordingTimerId()

cString GetRecordingTimerId ( const char *  Directory)

Definition at line 3147 of file recording.c.

References AddDirectory(), stripspace(), and TIMERRECFILE.

Referenced by TimerStillRecording().

Here is the caller graph for this function:

◆ HasRecordingsSortMode()

bool HasRecordingsSortMode ( const char *  Directory)

Definition at line 3094 of file recording.c.

References AddDirectory(), and SORTMODEFILE.

◆ HMSFToIndex()

int HMSFToIndex ( const char *  HMSF,
double  FramesPerSecond = DEFAULTFRAMESPERSECOND 
)

Definition at line 3058 of file recording.c.

Referenced by cSVDRPServer::CmdPLAY(), and cMark::Parse().

Here is the caller graph for this function:

◆ IncRecordingsSortMode()

void IncRecordingsSortMode ( const char *  Directory)

Definition at line 3118 of file recording.c.

References GetRecordingsSortMode(), RecordingsSortMode, rsmTime, and SetRecordingsSortMode().

Referenced by cMenuRecordings::Sort().

Here is the caller graph for this function:

◆ IndexToHMSF()

cString IndexToHMSF ( int  Index,
bool  WithFrame = false,
double  FramesPerSecond = DEFAULTFRAMESPERSECOND 
)

Definition at line 3042 of file recording.c.

References cString::sprintf().

Referenced by cDvbPlayer::Action(), cReplayControl::ShowProgress(), and cMark::ToText().

Here is the caller graph for this function:

◆ ReadFrame()

int ReadFrame ( cUnbufferedFile f,
uchar b,
int  Length,
int  Max 
)

Definition at line 3076 of file recording.c.

References esyslog, LOG_ERROR, and cUnbufferedFile::Read().

Referenced by cDvbPlayer::Goto(), and cCuttingThread::LoadFrame().

Here is the caller graph for this function:

◆ RemoveDeletedRecordings()

void RemoveDeletedRecordings ( void  )

Definition at line 132 of file recording.c.

References cThread::Active(), DELETEDLIFETIME, LOCK_DELETEDRECORDINGS_READ, cListObject::Next(), REMOVECHECKDELTA, RemoveDeletedRecordingsThread, and cThread::Start().

Referenced by main().

Here is the caller graph for this function:

◆ SecondsToFrames()

int SecondsToFrames ( int  Seconds,
double  FramesPerSecond = DEFAULTFRAMESPERSECOND 
)

Definition at line 3069 of file recording.c.

Referenced by cReplayControl::EditTest(), cReplayControl::MarkJump(), cDvbPlayer::SkipSeconds(), and cReplayControl::TimeSearchProcess().

Here is the caller graph for this function:

◆ SetRecordingsSortMode()

void SetRecordingsSortMode ( const char *  Directory,
eRecordingsSortMode  SortMode 
)

Definition at line 3110 of file recording.c.

References AddDirectory(), SORTMODEFILE, and cString::sprintf().

Referenced by IncRecordingsSortMode().

Here is the caller graph for this function:

◆ SetRecordingTimerId()

void SetRecordingTimerId ( const char *  Directory,
const char *  TimerId 
)

Definition at line 3129 of file recording.c.

References AddDirectory(), dsyslog, LOG_ERROR_STR, and TIMERRECFILE.

Referenced by cRecordControl::cRecordControl(), and cRecordControl::Stop().

Here is the caller graph for this function:

Variable Documentation

◆ DirectoryEncoding

bool DirectoryEncoding

Definition at line 79 of file recording.c.

Referenced by ExchangeChars(), main(), and NeedsConversion().

◆ DirectoryNameMax

int DirectoryNameMax

Definition at line 78 of file recording.c.

Referenced by cRecording::FileName(), and main().

◆ DirectoryPathMax

int DirectoryPathMax

Definition at line 77 of file recording.c.

Referenced by cRecording::FileName(), and main().

◆ InstanceId

int InstanceId

Definition at line 80 of file recording.c.

Referenced by cRecording::cRecording(), and main().

◆ RecordingsHandler

cRecordingsHandler RecordingsHandler

◆ RecordingsSortMode

eRecordingsSortMode RecordingsSortMode